From 29688869753d7bc9f1d25db27b9fccc8f11266e1 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Sun, 18 Oct 2026 08:14:20 -0700 Subject: live: live streams sent from the app — the browser's recording over a WebSocket (on 443, through Cloudflare: no ports to open), ffmpeg to 2 s HLS (H.264 720p, AAC), a live window and the whole stream (its recording), viewers counted, a dropped sender resuming the same stream, NIP-98 + coinos-name owners only, 3 at once, 4 h each, recordings kept a week. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_013ZDf1cyCQLkfjftYhymZAg --- compose.yml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'compose.yml') diff --git a/compose.yml b/compose.yml index df0d2d1..d48ab2f 100644 --- a/compose.yml +++ b/compose.yml @@ -5,6 +5,7 @@ # $STATE/names/config.json $STATE/names/data/ (names.db) # $STATE/nwcpush/config.json $STATE/nwcpush/data/ # $STATE/blossom/data/ +# $STATE/live/data/ (streams and their recordings) services: names: image: oven/bun:1.3.14 @@ -57,6 +58,26 @@ services: networks: [net] restart: unless-stopped + # live streams sent from the app (live/server.js). ffmpeg comes with the + # vmedia image (vmedia/Dockerfile: `docker build -t vmedia vmedia/` on the host). + live: + image: vmedia + container_name: live + working_dir: /app + command: bun live/server.js + environment: + LIVE_DATA: /data + LIVE_PORT: "8795" + LIVE_BASE: https://v3.coinos.io/live + NAMES_URL: http://names:8798 + volumes: + - .:/app:ro + - ${STATE}/live/data:/data + cpus: 4 + mem_limit: 2g + networks: [net] + restart: unless-stopped + networks: net: external: true -- cgit v1.2.3