First Upload

This commit is contained in:
2026-03-23 19:44:54 +01:00
commit c6d8eab720
35 changed files with 1304 additions and 0 deletions
+83
View File
@@ -0,0 +1,83 @@
# 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/<slug>`
- Key: `<token>`
### Larix / Streamlabs fallback
- URL: `rtmp://dit-domæne:1935`
- Key: `<slug>/<token>`
### Query-token
- `rtmp://dit-domæne:1935/<slug>?token=<token>`