mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-05-22 19:57:07 +00:00
Same root cause as commit 49fe356b9: ChatPlayground filtered models
with m.id.startsWith(...) which crashed on null/undefined ids returned
by /v1/models (synthetic combo entries). Apply the same defensive guard
and dedupe used in the parent page.
65 lines
2.4 KiB
YAML
65 lines
2.4 KiB
YAML
# ──────────────────────────────────────────────────────────────────────
|
|
# OmniRoute — Docker Compose (Production Snapshot)
|
|
# ──────────────────────────────────────────────────────────────────────
|
|
#
|
|
# Isolated production instance running on port 20130.
|
|
# Keeps the app running while you continue developing locally.
|
|
#
|
|
# Usage:
|
|
# docker compose -f docker-compose.prod.yml up -d --build
|
|
# docker compose -f docker-compose.prod.yml down
|
|
# docker compose -f docker-compose.prod.yml logs -f
|
|
# ──────────────────────────────────────────────────────────────────────
|
|
|
|
services:
|
|
# ── Redis (Rate Limiter Backend) ──────────────────────────────────
|
|
redis:
|
|
image: redis:8.6.2-alpine
|
|
container_name: omniroute-redis-prod
|
|
restart: unless-stopped
|
|
volumes:
|
|
- redis-prod-data:/data
|
|
command: redis-server --save 60 1 --loglevel warning
|
|
healthcheck:
|
|
test: ["CMD", "redis-cli", "ping"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 3
|
|
|
|
omniroute-prod:
|
|
container_name: omniroute-prod
|
|
depends_on:
|
|
redis:
|
|
condition: service_healthy
|
|
build:
|
|
context: .
|
|
target: runner-cli
|
|
image: omniroute:prod
|
|
restart: unless-stopped
|
|
stop_grace_period: 40s
|
|
env_file: .env
|
|
environment:
|
|
- NODE_ENV=production
|
|
- PORT=${PORT:-20128}
|
|
- DASHBOARD_PORT=${DASHBOARD_PORT:-${PORT:-20128}}
|
|
- API_PORT=${API_PORT:-20129}
|
|
- API_HOST=${API_HOST:-0.0.0.0}
|
|
- HOSTNAME=0.0.0.0
|
|
- DATA_DIR=/app/data
|
|
ports:
|
|
- "${PROD_DASHBOARD_PORT:-20130}:${DASHBOARD_PORT:-${PORT:-20128}}"
|
|
- "${PROD_API_PORT:-20131}:${API_PORT:-20129}"
|
|
volumes:
|
|
- omniroute-prod-data:/app/data
|
|
healthcheck:
|
|
test: ["CMD", "node", "healthcheck.mjs"]
|
|
interval: 30s
|
|
timeout: 5s
|
|
retries: 3
|
|
start_period: 15s
|
|
|
|
volumes:
|
|
omniroute-prod-data:
|
|
name: omniroute-prod-data
|
|
redis-prod-data:
|
|
name: redis-prod-data
|