From 11d48c8e0d3f9d0286a554845861c16cf66dd54e Mon Sep 17 00:00:00 2001 From: Zwitschi Date: Wed, 2 Sep 2026 20:59:57 +0200 Subject: [PATCH] chore(env): update PLAYOUT_PORT to 8081 and normalize line endings --- .env.example | 3 ++- CHANGELOG.md | 2 ++ docker-compose.prod.yml | 2 +- docker-compose.yml | 2 +- docs/COOLIFY.md | 2 +- 5 files changed, 7 insertions(+), 4 deletions(-) diff --git a/.env.example b/.env.example index e4eef59..109906b 100644 --- a/.env.example +++ b/.env.example @@ -49,9 +49,10 @@ DATABASE_URL=postgres://linearvoid:linearvoid@db:5432/linearvoid?sslmode=disable REDIS_URL=redis://redis:6379/0 # Service Ports (for local docker-compose) +# Coolify env: 80/443 (Traefik proxy), 8000 (dashboard/Portainer), 8080 taken. PLAYOUT_PORT=8081 CHAT_PORT=3000 -NGINX_PORT=80 +NGINX_PORT=8082 # Playout configuration PLAYLIST_PATH=/app/playlist/playlist.txt diff --git a/CHANGELOG.md b/CHANGELOG.md index 651e350..b7dde77 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,8 @@ ### Changed +- **Coolify host-port de-collision**: Published playout on host port `8081` (`${PLAYOUT_PORT:-8081}:8081`) and moved the nginx host port from `8080`/`80` to a free `8082` (`${NGINX_PORT:-8082}:80`) in both `docker-compose.yml` and `docker-compose.prod.yml`, so no service binds ports reserved by the Coolify environment (Traefik proxy `80`/`443`, dashboard/Portainer `8000`, and the taken `8080`). `NGINX_PORT` default in `.env.example` updated from `80` to `8082`. + - **Docs condensed and de-Windows'd**: Removed Windows/PowerShell-specific instructions from the docs and condensed the longest documents into tighter, bash-first guides — `SETUP.md`, `DEPLOYMENT.md`, `API.md`, `MONITORING.md`, `STREAMING.md`, `COOLIFY.md`, `incident-runbook.md`, `operations/scaling-performance-playbook.md`, `architecture/README.md`, and the Prometheus metrics inventory. `scripts/loadtest/README.md` now documents the bash load-test helpers. - **System messages no longer persisted**: The chat backend no longer stores `system`-type messages; chat history and the admin chat-log table only contain real chat messages (moderation actions remain in the audit log). - **Reconnect grace period**: Disconnects schedule a delayed "left" announcement (5s); a reconnect within 5s cancels it and skips "joined", eliminating join/leave spam on brief reconnects. diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index 1112dc0..3da4a77 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -58,7 +58,7 @@ services: container_name: linearvoid-nginx restart: unless-stopped ports: - - "${NGINX_PORT:-8080}:80" + - "${NGINX_PORT:-8082}:80" volumes: - ./data/hls:/srv/hls:ro networks: diff --git a/docker-compose.yml b/docker-compose.yml index 8757c53..d5d48b9 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -66,7 +66,7 @@ services: container_name: linearvoid-nginx restart: unless-stopped ports: - - "${NGINX_PORT:-8080}:80" + - "${NGINX_PORT:-8082}:80" volumes: - ./frontend/dist:/srv/frontend:ro - ./data/hls:/srv/hls:ro diff --git a/docs/COOLIFY.md b/docs/COOLIFY.md index e6ff822..4f9b545 100644 --- a/docs/COOLIFY.md +++ b/docs/COOLIFY.md @@ -109,7 +109,7 @@ mkdir -p data/playlist data/media data/hls data/chat ### Domains and proxy 1. Assign the **nginx** service a public domain (e.g. `linearvoid.tv`); Traefik terminates TLS and forwards to `nginx`. -2. Set **Ports Exposes** so Traefik targets the nginx port (`80` inside container, mapped from `${NGINX_PORT:-8080}:80`). +2. Set **Ports Exposes** so Traefik targets the nginx port (`80` inside container, mapped from `${NGINX_PORT:-8082}:80`). 3. Do **not** publicly expose playout (`8081`) or chat (`3000`) health ports — keep them internal and route through nginx. 4. For `media.linearvoid.tv`, keep serving HLS from the R2 custom domain (per SETUP.md) rather than routing through Coolify, so segments stay on Cloudflare's edge cache.