Skip to content

Installation

openoms ships as one oms binary. Install it with one command, or build it from source.

oms is a single executable: the server, the web cockpit and the command-line tool in one file. It needs no runtime, and the cockpit is embedded. Its only outside dependency is a PostgreSQL 16 database, which oms init can start for you in Docker.

Terminal window
curl -fsSL https://openoms.dev/install.sh | sh

The install script downloads the latest release for your platform, checks it against the release’s SHA256SUMS, and puts it in ~/.local/bin. It needs no sudo and starts nothing. Read install.sh on GitHub before you pipe it into a shell. When it finishes, it offers to run oms init.

To check that oms was installed:

Terminal window
oms --version

If ~/.local/bin is not on your PATH, the install script asks before adding it to ~/.zshrc, ~/.bashrc (~/.bash_profile on macOS) or fish’s config.fish. Say yes and open a new terminal.

If you said no, use another shell, or ran the script without a terminal, add it yourself:

Terminal window
export PATH="$HOME/.local/bin:$PATH"

For any other platform. You need Rust (stable), cmake with a C++ compiler (the embedded FIX engine is C++), OpenSSL 3 (brew install openssl@3 on macOS) and Node 22 for the cockpit.

Terminal window
git clone https://github.com/maxkuttner/openoms.git && cd openoms
(cd cockpit && npm ci && npm run build) # build the cockpit first: it is embedded
cargo build --release
cp target/release/oms ~/.local/bin/

A binary built without the cockpit bundle serves a 404 at /cockpit/.

Once installed, oms upgrades itself:

Terminal window
oms update

oms update --check only reports whether a newer release exists. A binary a package manager or container owns refuses to overwrite itself and names the command to use:

Installed with Upgrade
Homebrew brew upgrade openoms
Docker Compose docker compose pull && docker compose run --rm oms database migrate && docker compose up -d
From source git pull, then rebuild

After upgrading outside Docker, apply new database migrations; see Updating.

Terminal window
curl -fsSL https://openoms.dev/install.sh | OMS_VERSION=v0.4.0 sh

From source: git checkout v0.4.0, then build as above.

An installed oms can also move to a specific release, older or newer:

Terminal window
oms update --version v0.4.0

Every release is on the GitHub releases page. Download a tarball, check it against SHA256SUMS, and put oms on your PATH.

  • SHA256SUMS: checksums for both tarballs. Verify with shasum -a 256 -c SHA256SUMS --ignore-missing.
Platform Architecture Minimum
macOS Apple Silicon (arm64) macOS on M1 or newer
Linux x86_64 glibc and OpenSSL 3 (Ubuntu 22.04, Debian 12 or newer)
Anything else any build from source

The server also needs PostgreSQL 16, either your own or one oms init starts in Docker.

Terminal window
rm ~/.local/bin/oms

Outside Docker, this leaves your configuration and data. To remove those too:

Terminal window
rm -r ~/.config/oms # config and master key
docker rm -f oms-postgres && docker volume rm oms-pgdata # only if oms init started Postgres in Docker