π³ Docker Guide
Was this page helpful?
Loading OmniRoute...
README Docker section.
docker run -d \ --name omniroute \ --restart unless-stopped \ --stop-timeout 40 \ -p 20128:20128 \ -v omniroute-data:/app/data \ diegosouzapw/omniroute:latest
# Copy and edit .env first cp .env.example .env docker run -d \ --name omniroute \ --restart unless-stopped \ --stop-timeout 40 \ --env-file .env \ -p 20128:20128 \ -v omniroute-data:/app/data \ diegosouzapw/omniroute:latest
# Base profile (no CLI tools) docker compose --profile base up -d # CLI profile (Claude Code, Codex, OpenClaw built-in) docker compose --profile cli up -d
services:
omniroute:
image: diegosouzapw/omniroute:latest
container_name: omniroute
restart: unless-stopped
volumes:
- omniroute-data:/app/data
environment:
- PORT=20128
- NEXT_PUBLIC_BASE_URL=https://your-domain.com
caddy:
image: caddy:latest
container_name: caddy
restart: unless-stopped
ports:
- "80:80"
- "443:443"
command: caddy reverse-proxy --from https://your-domain.com --to http://omniroute:20128
volumes:
omniroute-data:
Cloudflare Quick Tunnel on . The first enable downloads only when needed, starts a temporary tunnel to your current endpoint, and shows the generated URL directly below your normal public URL.
without changing active tunnel state.
. if you want a different transport.
should be allowed to finish so OmniRoute can checkpoint the latest changes back into . The bundled Compose files already set a 40s stop grace period. If you run the image directly, keep .
: Set to if backups are managed externally.
- Data Persistence: Always mount a volume to
to persist your database, keys, and configurations across container restarts.
- Port Configuration: Override
environment variable to change the default port.
reference