Multi-tenant platform: per-streamer overlay/sender links + CI/CD
Some checks failed
CI/CD Pipeline / build-and-deploy (push) Failing after 2s

Streamers log in with Google on a new landing page and get a
dashboard with two auto-generated, permanent links: one for their
OBS/StreamLabs Browser Source, one to share with viewers. Messages
are now scoped to the right streamer via Socket.IO rooms instead of
broadcasting globally. Streamer records and tokens are persisted in
SQLite (node:sqlite) so links survive restarts/redeploys.

Also adds a Forgejo Actions pipeline mirroring t2sTelegramBot's:
build, smoke-test, push to the local registry, then deploy to the
prod host over SSH.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
vrubelroman 2026-07-01 15:53:07 +00:00
parent 7882db1f37
commit 9c91966730
14 changed files with 444 additions and 34 deletions

View file

@ -1,15 +1,17 @@
PORT=3000
# OAuth 2.0 Client ID (Web application) from https://console.cloud.google.com/apis/credentials
# Authorized JavaScript origins must include the origin you open sender.html from,
# e.g. http://localhost:3000 for local dev.
GOOGLE_CLIENT_ID=
# Authorized JavaScript origins must include every origin the app is served from
# (e.g. http://localhost:3000 for local dev, plus your production domain).
# The value below is a placeholder so `docker-compose build` / CI smoke tests can
# boot the container; replace with the real Client ID for actual logins to work.
GOOGLE_CLIENT_ID=placeholder-client-id.apps.googleusercontent.com
# Random long string, used to sign the session cookie. Generate with:
# node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
SESSION_SECRET=
SESSION_SECRET=placeholder-session-secret-change-me
# Microsoft Edge Read Aloud voice used for TTS (free, no API key needed).
# Same engine as t2sTelegramBot uses. List of voices: `npx edge-tts-node --list-voices` (if available)
# or see https://github.com/Migushthe2nd/MsEdgeTTS
# Default Microsoft Edge Read Aloud voice used for TTS (free, no API key needed,
# same engine as t2sTelegramBot). Used for newly created streamers; each
# streamer's own voice is stored in the database and can be changed later.
TTS_VOICE=ru-RU-DmitryNeural