xpltd
|
c9ad4fc5d0
|
R021/R022/R026: Docker, CI/CD, deployment example
Dockerfile (multi-stage):
- Stage 1: Node 22 builds frontend (npm ci + npm run build)
- Stage 2: Python 3.12 installs backend deps
- Stage 3: Slim runtime with ffmpeg + deno (yt-dlp needs both)
- Non-root user (mediarip), healthcheck, PYTHONUNBUFFERED
- Volumes: /downloads (media), /data (SQLite DB)
docker-compose.example.yml:
- Caddy reverse proxy with automatic TLS via Let's Encrypt
- Separate Caddyfile.example for domain configuration
- Health-dependent startup ordering
- Environment variables for admin setup
CI/CD (.github/workflows/):
- ci.yml: backend lint+test, frontend typecheck+test, Docker smoke
build. Runs on PRs and pushes to main.
- publish.yml: multi-platform build (amd64+arm64), pushes to
ghcr.io/xpltd/media-rip on v*.*.* tags. Semantic version tags
(v1.0.0 → latest + 1.0.0 + 1.0 + 1). Auto GitHub Release.
.dockerignore: excludes dev artifacts, .gsd/, node_modules/, .venv/
|
2026-03-19 06:57:25 -05:00 |
|