omni CLI manages self-hosted Omni Docker Compose deployments. v1 supports Docker Compose only.
Install
Install the latest release with the install script:$XDG_BIN_HOME when set, otherwise $HOME/.local/bin. Make sure that directory is on your PATH.
Install a specific release or choose a different install directory:
.sha256 file when present.
You can also download the binary manually from the Omni GitHub release assets:
omni-linux-x86_64omni-linux-arm64omni-macos-x86_64omni-macos-arm64omni-windows-x86_64.exe
PATH and make it executable on Unix:
Upgrade
Run from your Omni Docker Compose install directory, or pass--install-dir:
omni upgrade uses the latest stable GitHub release. To target a specific release:
- downloads the target release’s
omni-docker-compose.tar.gzand verifiesomni-docker-compose.tar.gz.sha256when present; - backs up
.envand managed deployment files under.omni/backups/<timestamp>/; - updates managed files such as
docker/docker-compose.yml,.env.example, andCaddyfile; - updates
OMNI_VERSIONin.envto the release image tag; - warns about variables missing from
.envand prompts you to append new values; - warns about variables in your
.envthat no longer appear in.env.example; - runs
docker compose pullanddocker compose up -d --remove-orphans; - runs a doctor summary.
Managed Compose files and customization
Omni’s Compose files are vendor-managed release assets. The CLI replaces these files during upgrades instead of attempting to merge YAML. This keeps upgrades predictable because service definitions, anchors, profiles, health checks, and image tags often change together. Do not customizedocker/docker-compose.yml directly. Put local changes in user-owned override files instead, for example:
docker/docker-compose.override.ymldocker-compose.override.yml
.omni/managed-files.json. On the first CLI-managed upgrade, if that manifest does not exist yet, the CLI compares against the currently configured release when possible and otherwise treats changed existing managed files conservatively as local edits.
Environment variables
.env.example is the canonical template for a release. During upgrade, the CLI preserves your existing .env values, updates OMNI_VERSION, and prompts for variables that exist in the target .env.example but not in your .env.
Missing variables are warnings, not hard errors, because not every variable is required in every deployment.
Preview env changes without upgrading:
Doctor
Run diagnostics:doctor checks local deployment files, Docker and Docker Compose availability, Compose service state, container health, image tags, service health endpoints, connector-manager source/connector status where reachable, recent sync run status, and recent logs for suspicious errors.