# TuxiNet StreamHub v2.1 Enterprise (Clean Build) Første enterprise-udgave af StreamHub med: - PostgreSQL - Flask backend - MediaMTX auth via backend - Admin + streamer roller - 1 streamer = 1 stream - SMTP2GO mailflow - Force password change ved første login - Password reset via mail - Branding med `bg.png`, `logo.png`, `videooffline.png` ## Status Denne første udgave er lavet som en **ren base**, så du kan starte rent uden de gamle v2-filer. ### Implementeret - Datamodel låst til PostgreSQL - Admin-login og streamer-login - Admin kan oprette streamer + stream i samme flow - Streamer ser kun egen stream - MediaMTX auth-route - Status fra MediaMTX API - Mail helper til onboarding og reset - Force password change flow - Forgot/reset password flow - Offline player image i UI - Enterprise login design ### Delvist scaffoldet / klar til næste iteration - Action/bot layer (`kick publisher`, `restart service`) er scaffoldet som placeholder - Mere avancerede live-metrics kan udvides senere - Fuldt migrationsflow med Alembic kan tilføjes senere ## Hurtig opstart ```bash cp .env.example .env nano .env docker compose build --no-cache docker compose up -d ``` Åbn derefter: - Web: `http://IP` eller dit reverse proxied domæne - MediaMTX API: internt på `http://mediamtx:9997` ## Første admin-bruger Backend opretter automatisk admin-brugeren ud fra `.env`: - `ADMIN_USERNAME` - `ADMIN_EMAIL` - `ADMIN_PASSWORD` ## SMTP2GO Sæt i `.env`: ```env SMTP_HOST=mail.smtp2go.com SMTP_PORT=2525 SMTP_USERNAME=noreplay@tuxinet.dk SMTP_PASSWORD=DIN_SMTP2GO_ADGANGSKODE MAIL_FROM=noreplay@tuxinet.dk ``` ## MediaMTX ingest-formater ### OBS - Server: `rtmp://dit-domæne:1935/` - Key: `` ### Larix / Streamlabs fallback - URL: `rtmp://dit-domæne:1935` - Key: `/` ### Query-token - `rtmp://dit-domæne:1935/?token=`