From a3ae2c422dfab570822d510f151126fe1e11399c Mon Sep 17 00:00:00 2001 From: diegosouzapw Date: Wed, 20 May 2026 09:47:53 -0300 Subject: [PATCH] fix(docker): restore cliproxyapi sidecar profile MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The cliproxyapi sidecar (service + named volume + DOCKER_GUIDE.md docs) was accidentally dropped in 3ff3e3dd1, a commit whose message only mentioned a ChatPlayground guard. Restore the pre-removal version of docker-compose.yml and docs/guides/DOCKER_GUIDE.md from 49fe356b9 — re-adds the `cliproxyapi` profile on port 8317 and the cliproxyapi-data volume while preserving the docs YAML frontmatter. --- docker-compose.yml | 27 +++++++++++++++++++++++++++ docs/guides/DOCKER_GUIDE.md | 19 +++++++++++++------ 2 files changed, 40 insertions(+), 6 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index c0b28a307e..0b5a762837 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -6,11 +6,14 @@ # base → minimal image, no CLI tools # cli → CLIs installed inside the container (portable) # host → runner-base + host-mounted CLI binaries (Linux-first) +# cliproxyapi → CLIProxyAPI sidecar on port 8317 # # Usage: # docker compose --profile base up -d # docker compose --profile cli up -d # docker compose --profile host up -d +# docker compose --profile cliproxyapi up -d +# docker compose --profile cli --profile cliproxyapi up -d # # Before first run, copy .env.example → .env and edit your secrets. # ────────────────────────────────────────────────────────────────────── @@ -127,6 +130,30 @@ services: profiles: - host + # ── Profile: cliproxyapi (CLIProxyAPI as sidecar) ───────────────── + cliproxyapi: + container_name: cliproxyapi + image: ghcr.io/router-for-me/cliproxyapi:v6.9.7 + restart: unless-stopped + ports: + - "${CLIPROXYAPI_PORT:-8317}:${CLIPROXYAPI_PORT:-8317}" + volumes: + - cliproxyapi-data:/root/.cli-proxy-api + environment: + - PORT=${CLIPROXYAPI_PORT:-8317} + - HOST=0.0.0.0 + healthcheck: + test: + ["CMD", "wget", "--spider", "-q", "http://127.0.0.1:${CLIPROXYAPI_PORT:-8317}/v1/models"] + interval: 30s + timeout: 5s + retries: 3 + start_period: 10s + profiles: + - cliproxyapi + volumes: + cliproxyapi-data: + name: cliproxyapi-data redis-data: name: omniroute-redis-data diff --git a/docs/guides/DOCKER_GUIDE.md b/docs/guides/DOCKER_GUIDE.md index e66d0867b1..913b583725 100644 --- a/docs/guides/DOCKER_GUIDE.md +++ b/docs/guides/DOCKER_GUIDE.md @@ -64,17 +64,23 @@ docker compose --profile cli up -d # Host profile (Linux-first; mounts host CLI binaries read-only) docker compose --profile host up -d + +# Combine CLI + CLIProxyAPI sidecar +docker compose --profile cli --profile cliproxyapi up -d ``` ## Available Profiles -OmniRoute ships three Compose profiles. Pick the one that matches your environment. +OmniRoute ships four Compose profiles. Pick the one that matches your environment. -| Profile | Service | When to use | Command | -| ---------------- | ---------------- | --------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------- | -| `base` (default) | `omniroute-base` | Headless server / minimal runtime, no provider CLIs bundled | `docker compose --profile base up -d` | -| `cli` | `omniroute-cli` | Agentic workflows that call `omniroute providers/setup/doctor` and bundled CLIs (Codex, Claude Code, Droid, OpenClaw) | `docker compose --profile cli up -d` | -| `host` | `omniroute-host` | Linux hosts that want `network_mode`-like access to host CLIs by mounting `~/.local/bin`, `~/.codex`, `~/.claude`, etc. read-only | `docker compose --profile host up -d` | +| Profile | Service | When to use | Command | +| ---------------- | ---------------- | --------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------- | +| `base` (default) | `omniroute-base` | Headless server / minimal runtime, no provider CLIs bundled | `docker compose --profile base up -d` | +| `cli` | `omniroute-cli` | Agentic workflows that call `omniroute providers/setup/doctor` and bundled CLIs (Codex, Claude Code, Droid, OpenClaw) | `docker compose --profile cli up -d` | +| `host` | `omniroute-host` | Linux hosts that want `network_mode`-like access to host CLIs by mounting `~/.local/bin`, `~/.codex`, `~/.claude`, etc. read-only | `docker compose --profile host up -d` | +| `cliproxyapi` | `cliproxyapi` | Run the [CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI) sidecar on port `8317` for upstream CLI proxying | `docker compose --profile cliproxyapi up -d` | + +> Multiple profiles can be combined: `docker compose --profile cli --profile cliproxyapi up -d`. ## Redis Sidecar @@ -161,6 +167,7 @@ Beyond the defaults documented in [ENVIRONMENT.md](../reference/ENVIRONMENT.md), | `OMNIROUTE_MEMORY_MB` | Node heap ceiling (`NODE_OPTIONS=--max-old-space-size`) baked into the image | `256` (set in Dockerfile) | | `DASHBOARD_PORT` / `API_PORT` | Override exposed ports for dashboard (20128) and API (20129) | `20128` / `20129` | | `PROD_DASHBOARD_PORT` | Host-side dashboard port for `docker-compose.prod.yml` | `20130` | +| `CLIPROXYAPI_PORT` | Host-side port for the `cliproxyapi` sidecar | `8317` | ## Docker Compose with Caddy (HTTPS Auto-TLS)