feat: package docker deployment and publish flow

This commit is contained in:
theshy
2026-04-22 16:20:03 +08:00
parent 055474360e
commit 2146687dc6
178 changed files with 24318 additions and 20855 deletions

49
.env.example Normal file
View File

@ -0,0 +1,49 @@
# Web/API port exposed on the host.
BILIUP_NEXT_PORT=8000
# Image used by both api and worker. Override this when using a versioned tag
# or a private registry image, for example 192.168.1.100:25490/biliup-next:20260420.
BILIUP_NEXT_IMAGE=biliup-next:local
# Worker polling interval in seconds.
WORKER_INTERVAL=5
# Container timezone.
TZ=Asia/Shanghai
# Optional container outbound proxy. In Docker Desktop/WSL, host.docker.internal
# points to the Windows host; set this to your local proxy port.
# These values are also passed as Docker build args for apt/pip/npm.
# HTTP_PROXY=http://host.docker.internal:7897
# HTTPS_PROXY=http://host.docker.internal:7897
# ALL_PROXY=http://host.docker.internal:7897
# NO_PROXY=localhost,127.0.0.1,api,worker
#
# Docker build-time proxy. Separate names avoid being overridden by host
# HTTP_PROXY/HTTPS_PROXY when Compose interpolates build args.
# DOCKER_BUILD_HTTP_PROXY=http://host.docker.internal:7897
# DOCKER_BUILD_HTTPS_PROXY=http://host.docker.internal:7897
# DOCKER_BUILD_ALL_PROXY=http://host.docker.internal:7897
# DOCKER_BUILD_NO_PROXY=localhost,127.0.0.1,api,worker
# Required for Groq transcription. Prefer this env var over writing the key
# directly into config/settings.json.
GROQ_API_KEY=
# Optional key pool. Use a JSON array; keys here are tried before GROQ_API_KEY.
# GROQ_API_KEYS=["gsk_xxx","gsk_yyy"]
# Optional for the Codex song detector when you do not mount an existing
# Codex login state into runtime/codex.
OPENAI_API_KEY=
# Bilibili collection IDs.
# A: live full-video collection
# B: live split/pure-song collection
COLLECTION_SEASON_ID_A=7196643
COLLECTION_SEASON_ID_B=7196624
# Optional explicit config overrides. The generic format is:
# BILIUP_NEXT__GROUP__FIELD=value
#
# BILIUP_NEXT__PUBLISH__RETRY_SCHEDULE_MINUTES=[15,5,5,5,5]
# BILIUP_NEXT__PUBLISH__RATE_LIMIT_RETRY_SCHEDULE_MINUTES=[15,30,60]