chatgpt2api / docker-compose.warp.yml
li2895's picture
Update to v1.7.0 with HuggingFace adaptation
c47ec10
Raw
History Blame Contribute Delete
4.07 kB
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:-}