Download deploy/docker-compose.dev.yml from cjovs/su2a: direct link, hf CLI and curl.
- Browser
- Download file 4.46 kB
-
https://huggingface.co/spaces/cjovs/su2a/resolve/main/deploy/docker-compose.dev.yml
- Command line
-
hf download hf://spaces/cjovs/su2a/deploy/docker-compose.dev.yml
-
curl -L -o docker-compose.dev.yml https://huggingface.co/spaces/cjovs/su2a/resolve/main/deploy/docker-compose.dev.yml
4.46 kB
| # ============================================================================= | |
| # Sub2API Docker Compose - Local Development Build | |
| # ============================================================================= | |
| # Build from local source code for testing changes. | |
| # | |
| # Usage: | |
| # cd deploy | |
| # docker compose -f docker-compose.dev.yml up --build | |
| # ============================================================================= | |
| services: | |
| sub2api: | |
| build: | |
| context: .. | |
| dockerfile: Dockerfile | |
| container_name: sub2api-dev | |
| restart: unless-stopped | |
| ports: | |
| - "${BIND_HOST:-127.0.0.1}:${SERVER_PORT:-8080}:8080" | |
| volumes: | |
| - ./data:/app/data | |
| environment: | |
| - AUTO_SETUP=true | |
| - SERVER_HOST=0.0.0.0 | |
| - SERVER_PORT=8080 | |
| - SERVER_MODE=debug | |
| - RUN_MODE=${RUN_MODE:-standard} | |
| - DATABASE_HOST=postgres | |
| - DATABASE_PORT=5432 | |
| - DATABASE_USER=${POSTGRES_USER:-sub2api} | |
| - DATABASE_PASSWORD=${POSTGRES_PASSWORD:?POSTGRES_PASSWORD is required} | |
| - DATABASE_DBNAME=${POSTGRES_DB:-sub2api} | |
| - DATABASE_SSLMODE=disable | |
| - REDIS_HOST=redis | |
| - REDIS_PORT=6379 | |
| - REDIS_PASSWORD=${REDIS_PASSWORD:-} | |
| - REDIS_DB=${REDIS_DB:-0} | |
| - ADMIN_EMAIL=${ADMIN_EMAIL:-admin@sub2api.local} | |
| - ADMIN_PASSWORD=${ADMIN_PASSWORD:-} | |
| - JWT_SECRET=${JWT_SECRET:-} | |
| - TOTP_ENCRYPTION_KEY=${TOTP_ENCRYPTION_KEY:-} | |
| - TZ=${TZ:-Asia/Shanghai} | |
| # OpenAI HTTP upstream protocol/timeout | |
| - GATEWAY_OPENAI_RESPONSE_HEADER_TIMEOUT=${GATEWAY_OPENAI_RESPONSE_HEADER_TIMEOUT:-0} | |
| - GATEWAY_OPENAI_HTTP2_ENABLED=${GATEWAY_OPENAI_HTTP2_ENABLED:-true} | |
| - GATEWAY_OPENAI_HTTP2_ALLOW_PROXY_FALLBACK_TO_HTTP1=${GATEWAY_OPENAI_HTTP2_ALLOW_PROXY_FALLBACK_TO_HTTP1:-true} | |
| - GATEWAY_OPENAI_HTTP2_FALLBACK_ERROR_THRESHOLD=${GATEWAY_OPENAI_HTTP2_FALLBACK_ERROR_THRESHOLD:-2} | |
| - GATEWAY_OPENAI_HTTP2_FALLBACK_WINDOW_SECONDS=${GATEWAY_OPENAI_HTTP2_FALLBACK_WINDOW_SECONDS:-60} | |
| - GATEWAY_OPENAI_HTTP2_FALLBACK_TTL_SECONDS=${GATEWAY_OPENAI_HTTP2_FALLBACK_TTL_SECONDS:-600} | |
| - GATEWAY_IMAGE_STREAM_DATA_INTERVAL_TIMEOUT=${GATEWAY_IMAGE_STREAM_DATA_INTERVAL_TIMEOUT:-900} | |
| - GATEWAY_IMAGE_STREAM_KEEPALIVE_INTERVAL=${GATEWAY_IMAGE_STREAM_KEEPALIVE_INTERVAL:-10} | |
| - GATEWAY_IMAGE_CONCURRENCY_ENABLED=${GATEWAY_IMAGE_CONCURRENCY_ENABLED:-false} | |
| - GATEWAY_IMAGE_CONCURRENCY_MAX_CONCURRENT_REQUESTS=${GATEWAY_IMAGE_CONCURRENCY_MAX_CONCURRENT_REQUESTS:-0} | |
| - GATEWAY_IMAGE_CONCURRENCY_OVERFLOW_MODE=${GATEWAY_IMAGE_CONCURRENCY_OVERFLOW_MODE:-reject} | |
| - GATEWAY_IMAGE_CONCURRENCY_WAIT_TIMEOUT_SECONDS=${GATEWAY_IMAGE_CONCURRENCY_WAIT_TIMEOUT_SECONDS:-30} | |
| - GATEWAY_IMAGE_CONCURRENCY_MAX_WAITING_REQUESTS=${GATEWAY_IMAGE_CONCURRENCY_MAX_WAITING_REQUESTS:-100} | |
| depends_on: | |
| postgres: | |
| condition: service_healthy | |
| redis: | |
| condition: service_healthy | |
| networks: | |
| - sub2api-network | |
| healthcheck: | |
| test: ["CMD", "wget", "-q", "-T", "5", "-O", "/dev/null", "http://localhost:8080/health"] | |
| interval: 30s | |
| timeout: 10s | |
| retries: 3 | |
| start_period: 30s | |
| postgres: | |
| image: postgres:18-alpine | |
| container_name: sub2api-postgres-dev | |
| restart: unless-stopped | |
| volumes: | |
| - ./postgres_data:/var/lib/postgresql/data | |
| environment: | |
| - POSTGRES_USER=${POSTGRES_USER:-sub2api} | |
| - POSTGRES_PASSWORD=${POSTGRES_PASSWORD:?POSTGRES_PASSWORD is required} | |
| - POSTGRES_DB=${POSTGRES_DB:-sub2api} | |
| - PGDATA=/var/lib/postgresql/data | |
| - TZ=${TZ:-Asia/Shanghai} | |
| networks: | |
| - sub2api-network | |
| healthcheck: | |
| test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-sub2api} -d ${POSTGRES_DB:-sub2api}"] | |
| interval: 10s | |
| timeout: 5s | |
| retries: 5 | |
| start_period: 10s | |
| redis: | |
| image: redis:8-alpine | |
| container_name: sub2api-redis-dev | |
| restart: unless-stopped | |
| volumes: | |
| - ./redis_data:/data | |
| command: > | |
| sh -c ' | |
| redis-server | |
| --save 60 1 | |
| --appendonly yes | |
| --appendfsync everysec | |
| ${REDIS_PASSWORD:+--requirepass "$REDIS_PASSWORD"}' | |
| environment: | |
| - TZ=${TZ:-Asia/Shanghai} | |
| - REDISCLI_AUTH=${REDIS_PASSWORD:-} | |
| networks: | |
| - sub2api-network | |
| healthcheck: | |
| test: ["CMD", "redis-cli", "ping"] | |
| interval: 10s | |
| timeout: 5s | |
| retries: 5 | |
| start_period: 5s | |
| networks: | |
| sub2api-network: | |
| driver: bridge | |