From 37428594892b6d390375292b0596158fd8049217 Mon Sep 17 00:00:00 2001 From: zwitschi Date: Tue, 11 Aug 2026 15:01:55 +0200 Subject: [PATCH] docs: align CD env vars with deployment guide and add gitea secrets reference --- .gitea/workflows/cd.yml | 27 +++++++++++++++++++++ docs/DEPLOYMENT.md | 54 ++++++++++++++++++++++++++++++----------- 2 files changed, 67 insertions(+), 14 deletions(-) diff --git a/.gitea/workflows/cd.yml b/.gitea/workflows/cd.yml index fd64605..c73d8c6 100644 --- a/.gitea/workflows/cd.yml +++ b/.gitea/workflows/cd.yml @@ -33,15 +33,42 @@ jobs: - name: Prepare environment run: | cat > .env << 'EOF' + # Database & Redis DATABASE_URL="${{ secrets.DATABASE_URL }}" REDIS_URL=redis://redis:6379/0 + + # Playout PLAYLIST_PATH=/app/playlist/playlist.txt HLS_SEGMENT_DURATION=6 HLS_WINDOW_SIZE=24 LOG_LEVEL=info + + # Cloudflare R2 (required for HLS segment sync) + R2_ACCESS_KEY_ID="${{ secrets.R2_ACCESS_KEY_ID }}" + R2_SECRET_ACCESS_KEY="${{ secrets.R2_SECRET_ACCESS_KEY }}" + R2_BUCKET_NAME="${{ secrets.R2_BUCKET_NAME }}" + R2_ENDPOINT="${{ secrets.R2_ENDPOINT }}" + R2_REGION=auto + + # Cloudflare + CLOUDFLARE_API_TOKEN="${{ secrets.CLOUDFLARE_API_TOKEN }}" + CLOUDFLARE_ACCOUNT_ID="${{ secrets.CLOUDFLARE_ACCOUNT_ID }}" + MEDIA_DOMAIN=${{ secrets.MEDIA_DOMAIN }} + + # Frontend public URLs + VITE_PUBLIC_APP_URL=${{ secrets.VITE_PUBLIC_APP_URL }} + VITE_PUBLIC_WS_URL=${{ secrets.VITE_PUBLIC_WS_URL }} + VITE_PUBLIC_HLS_URL=${{ secrets.VITE_PUBLIC_HLS_URL }} + VITE_PUBLIC_ADMIN_DEFAULT_MODERATOR=${{ secrets.VITE_PUBLIC_ADMIN_DEFAULT_MODERATOR }} + VITE_PUBLIC_ADMIN_DEFAULT_ROOM=${{ secrets.VITE_PUBLIC_ADMIN_DEFAULT_ROOM }} + VITE_PUBLIC_ADMIN_MODERATION_LOG_LIMIT=50 + + # Admin auth ADMIN_USERNAME="${{ secrets.ADMIN_USERNAME }}" ADMIN_PASSWORD="${{ secrets.ADMIN_PASSWORD }}" ADMIN_SESSION_TTL_HOURS=12 + + # Nginx NGINX_PORT=80 EOF diff --git a/docs/DEPLOYMENT.md b/docs/DEPLOYMENT.md index 6d0acd2..30e5b74 100644 --- a/docs/DEPLOYMENT.md +++ b/docs/DEPLOYMENT.md @@ -131,22 +131,48 @@ No code changes needed in the pipeline. See `DEPLOYMENT.md` Production Deploymen ## Environment File -Use .env with at least: +Use `.env` with at least: -- CI_REGISTRY_URL -- CI_REGISTRY_NAMESPACE -- CHAT_PORT -- NGINX_PORT -- DATABASE_URL (if overridden) -- REDIS_URL (if overridden) -- ADMIN_USERNAME -- ADMIN_PASSWORD -- VITE_PUBLIC_APP_URL -- VITE_PUBLIC_WS_URL -- VITE_PUBLIC_HLS_URL -- Cloudflare/R2 variables when media sync is enabled +- `DATABASE_URL` — PostgreSQL connection string +- `REDIS_URL` — Redis connection string +- `ADMIN_USERNAME` / `ADMIN_PASSWORD` — admin dashboard credentials +- `ADMIN_SESSION_TTL_HOURS` — session expiry (default 12) +- `VITE_PUBLIC_APP_URL` / `VITE_PUBLIC_WS_URL` / `VITE_PUBLIC_HLS_URL` — frontend URLs -See .env.example and SETUP.md for full variable reference. +**Cloudflare R2 (required for HLS segment sync to edge):** + +- `R2_ACCESS_KEY_ID` / `R2_SECRET_ACCESS_KEY` — R2 write credentials +- `R2_BUCKET_NAME` — bucket name (e.g. `linearvoid-media`) +- `R2_ENDPOINT` — S3-compatible endpoint URL +- `R2_REGION` — set to `auto` + +**Cloudflare (optional, for Workers/Pages):** + +- `CLOUDFLARE_API_TOKEN` / `CLOUDFLARE_ACCOUNT_ID` +- `MEDIA_DOMAIN` — split media domain (e.g. `media.linearvoid.tv`) + +See `.env.example` and `SETUP.md` for full variable reference. + +### Gitea Secrets + +The CD workflow (`cd.yml`) injects sensitive values from Gitea secrets into the `.env` file at deploy time. The following secrets must be configured in the Gitea repository: + +| Secret Name | Description | +| ------------------------- | ------------------------------------ | +| `DATABASE_URL` | PostgreSQL connection string | +| `ADMIN_USERNAME` | Admin dashboard username | +| `ADMIN_PASSWORD` | Admin dashboard password | +| `R2_ACCESS_KEY_ID` | Cloudflare R2 access key | +| `R2_SECRET_ACCESS_KEY` | Cloudflare R2 secret key | +| `R2_BUCKET_NAME` | R2 bucket name | +| `R2_ENDPOINT` | R2 S3-compatible endpoint URL | +| `R2_ADMIN_ACCESS_KEY_ID` | R2 admin access key (optional) | +| `R2_ADMIN_SECRET_ACCESS_KEY` | R2 admin secret key (optional) | +| `R2_ADMIN_ENDPOINT` | R2 admin endpoint (optional) | +| `CLOUDFLARE_API_TOKEN` | Cloudflare API token (optional) | +| `CLOUDFLARE_ACCOUNT_ID` | Cloudflare account ID (optional) | +| `CI_REGISTRY_USER` | Gitea container registry username | +| `CI_REGISTRY_TOKEN` | Gitea container registry token | ## Pull-and-Run Deployment