services: s1ngo: build: . restart: unless-stopped depends_on: - db expose: - "8080" environment: PORT: "8080" WORKERS: ${WORKERS:-4} OPENAI_API_KEY: ${OPENAI_API_KEY:-} # gpt-6-luna (default, budget) or gpt-6-sol (mid-tier). OPENAI_MODEL: ${OPENAI_MODEL:-gpt-6-luna} # FAKE_AGENTS=1 runs everything offline (no yt-dlp, no OpenAI). FAKE_AGENTS: ${FAKE_AGENTS:-0} # Optional: contents of a Netscape cookies.txt to get past # YouTube's datacenter-IP bot checks. YTDLP_COOKIES: ${YTDLP_COOKIES:-} YTDLP_COOKIES_B64: ${YTDLP_COOKIES_B64:-} YTDLP_EXTRA_ARGS: ${YTDLP_EXTRA_ARGS:-} DATABASE_URL: postgres://s1ngo:s1ngo-internal@db:5432/s1ngo?sslmode=disable db: image: postgres:17-alpine restart: unless-stopped environment: POSTGRES_USER: s1ngo POSTGRES_PASSWORD: s1ngo-internal POSTGRES_DB: s1ngo volumes: - s1ngo-pgdata:/var/lib/postgresql/data volumes: s1ngo-pgdata: