Spaces:
Running
Running
| services: | |
| init-config: | |
| image: python:3.13-alpine | |
| container_name: chatgpt2api-warp-init | |
| working_dir: /app | |
| volumes: | |
| - ./config.json:/app/config.json | |
| - ./scripts:/app/scripts:ro | |
| environment: | |
| CHATGPT2API_CONFIG_FILE: /app/config.json | |
| CHATGPT2API_PROXY_RUNTIME_ENABLED: ${CHATGPT2API_PROXY_RUNTIME_ENABLED:-true} | |
| CHATGPT2API_PROXY_RUNTIME_EGRESS_MODE: ${CHATGPT2API_PROXY_RUNTIME_EGRESS_MODE:-single_proxy} | |
| CHATGPT2API_PROXY_RUNTIME_PROXY_URL: ${CHATGPT2API_PROXY_RUNTIME_PROXY_URL:-http://privoxy:8118} | |
| CHATGPT2API_PROXY_RUNTIME_RESOURCE_PROXY_URL: ${CHATGPT2API_PROXY_RUNTIME_RESOURCE_PROXY_URL:-} | |
| CHATGPT2API_PROXY_RUNTIME_SKIP_SSL_VERIFY: ${CHATGPT2API_PROXY_RUNTIME_SKIP_SSL_VERIFY:-false} | |
| CHATGPT2API_PROXY_RUNTIME_RESET_STATUS_CODES: ${CHATGPT2API_PROXY_RUNTIME_RESET_STATUS_CODES:-403} | |
| CHATGPT2API_PROXY_RUNTIME_CLEARANCE_ENABLED: ${CHATGPT2API_PROXY_RUNTIME_CLEARANCE_ENABLED:-true} | |
| CHATGPT2API_PROXY_RUNTIME_CLEARANCE_MODE: ${CHATGPT2API_PROXY_RUNTIME_CLEARANCE_MODE:-flaresolverr} | |
| CHATGPT2API_PROXY_RUNTIME_CLEARANCE_TIMEOUT_SEC: ${CHATGPT2API_PROXY_RUNTIME_CLEARANCE_TIMEOUT_SEC:-60} | |
| CHATGPT2API_PROXY_RUNTIME_CLEARANCE_REFRESH_INTERVAL: ${CHATGPT2API_PROXY_RUNTIME_CLEARANCE_REFRESH_INTERVAL:-3600} | |
| CHATGPT2API_PROXY_RUNTIME_WARM_UP_ON_START: ${CHATGPT2API_PROXY_RUNTIME_WARM_UP_ON_START:-false} | |
| CHATGPT2API_PROXY_RUNTIME_BROWSER: ${CHATGPT2API_PROXY_RUNTIME_BROWSER:-chrome} | |
| CHATGPT2API_PROXY_RUNTIME_USER_AGENT: ${CHATGPT2API_PROXY_RUNTIME_USER_AGENT:-} | |
| CHATGPT2API_FLARESOLVERR_URL: ${CHATGPT2API_FLARESOLVERR_URL:-http://flaresolverr:8191} | |
| command: ["python3", "/app/scripts/init_proxy_config.py"] | |
| restart: "no" | |
| warp-proxy: | |
| image: caomingjun/warp:latest | |
| container_name: chatgpt2api-warp-proxy | |
| restart: unless-stopped | |
| environment: | |
| WARP_SLEEP: "2" | |
| # 可选:填写 Cloudflare WARP+ License Key | |
| # WARP_LICENSE_KEY: ${WARP_LICENSE_KEY:-} | |
| cap_add: | |
| - NET_ADMIN | |
| - SYS_MODULE | |
| sysctls: | |
| net.ipv6.conf.all.disable_ipv6: 0 | |
| net.ipv4.conf.all.src_valid_mark: 1 | |
| ports: | |
| - "127.0.0.1:${WARP_SOCKS_PORT:-40000}:1080" | |
| healthcheck: | |
| test: ["CMD-SHELL", "python3 -c \"import socket; s=socket.create_connection(('127.0.0.1', 1080), 5); s.close()\""] | |
| interval: 30s | |
| timeout: 5s | |
| retries: 5 | |
| start_period: 30s | |
| privoxy: | |
| image: vimagick/privoxy:latest | |
| container_name: chatgpt2api-privoxy | |
| restart: unless-stopped | |
| depends_on: | |
| warp-proxy: | |
| condition: service_started | |
| volumes: | |
| - ./scripts/privoxy-warp.conf:/etc/privoxy/config:ro | |
| ports: | |
| - "127.0.0.1:${PRIVOXY_PORT:-40080}:8118" | |
| healthcheck: | |
| test: ["CMD-SHELL", "nc -z 127.0.0.1 8118 || exit 1"] | |
| interval: 30s | |
| timeout: 5s | |
| retries: 5 | |
| start_period: 10s | |
| flaresolverr: | |
| image: ghcr.io/flaresolverr/flaresolverr:latest | |
| container_name: chatgpt2api-flaresolverr | |
| restart: unless-stopped | |
| environment: | |
| LOG_LEVEL: ${FLARESOLVERR_LOG_LEVEL:-info} | |
| TZ: ${TZ:-Asia/Shanghai} | |
| ports: | |
| - "127.0.0.1:${FLARESOLVERR_PORT:-8191}:8191" | |
| healthcheck: | |
| test: ["CMD-SHELL", "curl -fsS http://127.0.0.1:8191/ >/dev/null"] | |
| interval: 30s | |
| timeout: 10s | |
| retries: 5 | |
| start_period: 30s | |
| app: | |
| build: | |
| context: . | |
| dockerfile: Dockerfile | |
| image: chatgpt2api:warp | |
| container_name: chatgpt2api-warp | |
| restart: unless-stopped | |
| depends_on: | |
| init-config: | |
| condition: service_completed_successfully | |
| privoxy: | |
| condition: service_started | |
| flaresolverr: | |
| condition: service_started | |
| ports: | |
| - "${CHATGPT2API_PORT:-3000}:80" | |
| volumes: | |
| - ./data:/app/data | |
| - ./config.json:/app/config.json | |
| environment: | |
| STORAGE_BACKEND: ${STORAGE_BACKEND:-json} | |
| DATABASE_URL: ${DATABASE_URL:-} | |
| CHATGPT2API_AUTH_KEY: ${CHATGPT2API_AUTH_KEY:-} | |
| CHATGPT2API_BASE_URL: ${CHATGPT2API_BASE_URL:-} | |