84 lines
1.8 KiB
Markdown
84 lines
1.8 KiB
Markdown
|
|
# 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>`
|