Running as a service
oms runs in the foreground and logs to stderr. On Linux, let systemd keep it running.
There is no installer for this yet — you write one small unit file.
As your user
Section titled “As your user”No root needed. The config is the one oms init wrote, in ~/.config/oms/.
Create ~/.config/systemd/user/oms.service:
[Unit]Description=openomsAfter=network-online.target
[Service]WorkingDirectory=%h/.config/omsExecStart=%h/.local/bin/omsRestart=on-failureRestartSec=5
[Install]WantedBy=default.target%h is your home directory. WorkingDirectory puts the server next to its oms.toml
and .env.
Start it, and start it at every boot:
systemctl --user daemon-reloadsystemctl --user enable --now omsloginctl enable-linger "$USER" # keep it running when you are logged outLogs, and status:
journalctl --user -u oms -fsystemctl --user status omsIf the process dies, systemd starts it again after five seconds.
As a system service
Section titled “As a system service”For a machine-wide install, run it as a dedicated user with the config in
/etc/oms/oms.toml (config file locations):
[Unit]Description=openomsAfter=network-online.target postgresql.service
[Service]User=omsWorkingDirectory=/etc/omsExecStart=/usr/local/bin/omsRestart=on-failureRestartSec=5
[Install]WantedBy=multi-user.targetSave it as /etc/systemd/system/oms.service, then
sudo systemctl daemon-reload && sudo systemctl enable --now oms.
Is it running?
Section titled “Is it running?”oms status shows what runs on this machine and where: the OMS and the addresses
of its admin and trader UIs, then Postgres, the login provider, Kafka and each
broker stream.
oms statusconfig /home/you/.config/oms/oms.toml
OMS up http://localhost:3001 admin UI http://localhost:3001/cockpit/ trader UI http://localhost:3001/trade/Postgres up localhost:5432/odsLogin (OIDC) up http://localhost:8090/realms/omsKafka not configuredBroker streams ALPACA live PAPER execution BINANCE down SPOT feed connection resetIt reads the same oms.toml and environment as the server, so run it as the same
user. Postgres, the login provider and Kafka are checked even when the OMS is down;
the broker streams come from the running OMS. It exits 1 when anything configured
is down, so a script or health check can use it.
After an update
Section titled “After an update”oms update replaces the binary but leaves the running process alone. Migrate, then
restart:
oms database migratesystemctl --user restart omsDocker
Section titled “Docker”No Docker image is published yet. Run the binary directly, as above.