docs: align CD env vars with deployment guide and add gitea secrets reference
This commit is contained in:
1 parent
27c74f1663
commit
3742859489
2 files changed
+67
-14
No files matched your search
@@ -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
|
||||
|
||||
|
||||
+40
-14
@@ -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
|
||||
|
||||
|
||||
Reference in new issue
Block a user