services: codex-oauth-proxy: image: ghcr.io/icebear0828/codex-proxy:latest restart: unless-stopped ports: - "18889:8080" environment: - NODE_ENV=production - PORT=8080 - CODEX_HOME=/codex-auth volumes: - codex_oauth_proxy_data:/app/data - ${CODEX_OAUTH_HOME:-${HOME}/.config/cc-litellm/codex-oauth}:/codex-auth:ro chatgpt-browser-proxy: build: context: ./chatgpt_browser_proxy restart: unless-stopped ports: - "18080:8080" - "55155:8080" environment: - CHATGPT_BROWSER_MODEL=${CHATGPT_BROWSER_MODEL:-chatgpt-browser} - CHATGPT_BROWSER_JS_MODEL=${CHATGPT_BROWSER_JS_MODEL:-chatgpt-browser-js} - CHATGPT_BROWSER_JS_API_MODE=${CHATGPT_BROWSER_JS_API_MODE:-conversation} - CHATGPT_BROWSER_JS_UPSTREAM_MODEL=${CHATGPT_BROWSER_JS_UPSTREAM_MODEL:-auto} - CHATGPT_BROWSER_JS_API_URL=${CHATGPT_BROWSER_JS_API_URL:-https://chatgpt.com/backend-api/conversation} - CHATGPT_BROWSER_WS_URL=${CHATGPT_BROWSER_WS_URL:-embedded} - CHATGPT_BROWSER_WS_TOKEN=${CHATGPT_BROWSER_WS_TOKEN:-gemini-coder-vscode} - CHATGPT_BROWSER_EXTENSION_WS_TOKEN=${CHATGPT_BROWSER_EXTENSION_WS_TOKEN:-gemini-coder} - CHATGPT_BROWSER_API_KEY=${CHATGPT_BROWSER_API_KEY:-sk-chatgpt-browser-local} - CHATGPT_BROWSER_REQUEST_TIMEOUT=${CHATGPT_BROWSER_REQUEST_TIMEOUT:-300} - CHATGPT_BROWSER_CONNECT_TIMEOUT=${CHATGPT_BROWSER_CONNECT_TIMEOUT:-10} - CHATGPT_BROWSER_PING_INTERVAL=${CHATGPT_BROWSER_PING_INTERVAL:-10} - CHATGPT_BROWSER_NEW_SESSION_PER_REQUEST=${CHATGPT_BROWSER_NEW_SESSION_PER_REQUEST:-0} - CHATGPT_BROWSER_COMPACT_EVERY=${CHATGPT_BROWSER_COMPACT_EVERY:-30} - CHATGPT_BROWSER_SESSION_STATE_PATH=${CHATGPT_BROWSER_SESSION_STATE_PATH:-/data/session_state.json} - CHATGPT_BROWSER_TARGET_BROWSER_ID=${CHATGPT_BROWSER_TARGET_BROWSER_ID:-} volumes: - chatgpt_browser_state:/data litellm: image: ghcr.io/berriai/litellm:main-latest restart: always depends_on: chatgpt-browser-proxy: condition: service_started codex-oauth-proxy: condition: service_started litellm-db: condition: service_healthy ports: - "4000:4000" environment: - AZURE_AI_FOUNDRY_API_KEY=${AZURE_AI_FOUNDRY_API_KEY} - AZURE_AI_FOUNDRY_KIMI_API_BASE=${AZURE_AI_FOUNDRY_KIMI_API_BASE} - AZURE_AI_FOUNDRY_NANO_API_BASE=${AZURE_AI_FOUNDRY_NANO_API_BASE} - AZURE_AI_FOUNDRY_API_VERSION=${AZURE_AI_FOUNDRY_API_VERSION} - AZURE_AI_API_KEY=${AZURE_AI_API_KEY} - AZURE_AI_API_BASE=${AZURE_AI_API_BASE} - LITELLM_MASTER_KEY=${LITELLM_MASTER_KEY} - DISABLE_ADMIN_UI=${DISABLE_ADMIN_UI:-false} - UI_USERNAME=${UI_USERNAME:-local} - UI_PASSWORD=${UI_PASSWORD:-sk-proxy-local} - DATABASE_URL=${DATABASE_URL:-postgresql://litellm:litellm-local@litellm-db:5432/litellm} - ZAI_API_KEY=${ZAI_API_KEY} - OPENROUTER_API_KEY=${OPENROUTER_API_KEY} - OR_SITE_URL=${OR_SITE_URL:-http://localhost:4000} - OR_APP_NAME=${OR_APP_NAME:-cc-litellm} - CHATGPT_BROWSER_API_BASE=${CHATGPT_BROWSER_API_BASE:-http://chatgpt-browser-proxy:8080/v1} - CHATGPT_BROWSER_API_KEY=${CHATGPT_BROWSER_API_KEY:-sk-chatgpt-browser-local} - CHATGPT_BROWSER_API_DIRECT_BASE=${CHATGPT_BROWSER_API_DIRECT_BASE:-http://codex-oauth-proxy:8080/v1} - CHATGPT_BROWSER_API_DIRECT_KEY=${CHATGPT_BROWSER_API_DIRECT_KEY:-pwd} volumes: - ./config.yaml:/app/config.yaml command: [ "--config", "/app/config.yaml", "--port", "4000" ] litellm-db: image: postgres:16-alpine restart: unless-stopped environment: - POSTGRES_DB=litellm - POSTGRES_USER=litellm - POSTGRES_PASSWORD=${LITELLM_POSTGRES_PASSWORD:-litellm-local} volumes: - litellm_db_data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U litellm -d litellm"] interval: 5s timeout: 3s retries: 20 volumes: chatgpt_browser_state: codex_oauth_proxy_data: litellm_db_data: