mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-07-26 09:52:11 +03:00
- Updated .env.example to include optional production ports for API and dashboard. - Modified docker-compose files to utilize dynamic port configuration. - Introduced runtime-env.mjs for centralized port resolution and environment variable management. - Refactored run-next.mjs and run-standalone.mjs to leverage new runtime port handling. - Enhanced route.ts and apiBridgeServer.ts to utilize dynamic ports for improved API integration. - Updated OAuth configuration to reflect changes in port management.
52 lines
2.0 KiB
YAML
52 lines
2.0 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:
|
|
omniroute-prod:
|
|
container_name: omniroute-prod
|
|
build:
|
|
context: .
|
|
target: runner-base
|
|
image: omniroute:prod
|
|
restart: unless-stopped
|
|
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",
|
|
"-e",
|
|
"const p=process.env.DASHBOARD_PORT||process.env.PORT||'20128';fetch('http://127.0.0.1:'+p+'/api/settings').then(r=>{if(!r.ok)throw r.status}).catch(()=>process.exit(1))",
|
|
]
|
|
interval: 30s
|
|
timeout: 5s
|
|
retries: 3
|
|
start_period: 15s
|
|
|
|
volumes:
|
|
omniroute-prod-data:
|
|
name: omniroute-prod-data
|