YouTube playback relied on manual changes inside the running container (deno install + /etc/yt-dlp.conf) that would be lost on any recreate. Make it permanent and reproducible: - Dockerfile.backend: install pinned deno 2.8.3 as yt-dlp's JS runtime and write a system-wide /etc/yt-dlp.conf enabling the EJS challenge solver (--js-runtimes deno, --remote-components ejs:github, --force-ipv4). Replaces the unreliable node-based config. - .gitea/workflows/build-backend.yml: build Dockerfile.backend and push git.qomar.pw/omar/ts6-manager/backend:latest (amd64). Needs REGISTRY_TOKEN. - docker-compose.yml: pull backend from the Gitea registry; frontend/sidecar stay on upstream clusterzx images. Mount ./secrets read-only for optional YouTube cookies via YT_COOKIE_FILE. - gitignore/dockerignore: never commit cookies (live Google session). - DEPLOY.md: deployment + CI notes. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1.4 KiB
Deploy (omar fork)
This fork bakes the YouTube playback fix into the backend image so it survives
container/host restarts. The fix: deno JS runtime + a system-wide /etc/yt-dlp.conf
that enables yt-dlp's EJS challenge solver (--remote-components ejs:github,
--js-runtimes deno, --force-ipv4). See Dockerfile.backend.
How images are built
Gitea Actions (.gitea/workflows/build-backend.yml) builds Dockerfile.backend on
every push to main and pushes it to the Gitea registry:
git.qomar.pw/omar/ts6-manager/backend:latest
frontend and sidecar use the upstream clusterzx/ts6-manager:* public images
unchanged.
Required repo secret: REGISTRY_TOKEN — a Gitea PAT with scope write:package
(Settings → Applications → Generate New Token). Optional REGISTRY_USERNAME
(defaults to omar).
Deploy on the server
cd /opt/ts6-manager
# 1. Provide config (JWT_SECRET etc.)
cp .env.example .env && $EDITOR .env
# 2. (Optional) YouTube cookies — a Netscape-format export. Skippable: playback
# works without them via the EJS solver. NEVER commit this file.
mkdir -p secrets
cp /path/to/youtube-cookies.txt secrets/youtube-cookies.txt
# 3. Pull & run
docker login git.qomar.pw # once, with a read:package token
docker compose pull
docker compose up -d
Update to a fresh build later with docker compose pull && docker compose up -d.