Files
2026-03-22 23:15:50 +00:00

133 lines
3.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# TuxiNet StreamHub v1
Et komplet, selvhostet streaming-kontrolpanel til **Ubuntu LXC i Proxmox** med **Docker Compose**, **MediaMTX**, **Flask backend** og **Caddy reverse proxy**.
## Hvad den kan i v1
- Opret streams med navn, slug og token
- Start/stop adgang til at publicere
- Login til admin og streamer-roller
- HLS preview direkte i panelet
- Twitch/YouTube chat embed pr. stream
- Status: live/offline, opløsning, FPS, codec, lydkanaler, sample rate, bitrate hvis ffprobe kan aflæse det
- MediaMTX auth via HTTP mod backend
- Hooks fra MediaMTX til backend ved stream ready / not ready
- Simpelt mørkt webinterface
## Vigtige noter
- **Lyd**: Designet til stereo-AAC workflows. Mono markeres i UI som advarsel.
- **Lav forsinkelse**: v1-preview bruger **LL-HLS/HLS** for stabilitet. MediaMTX WebRTC-porte er eksponeret til senere udbygning.
- **Start stream** betyder i v1: streamen åbnes for publishing. Serveren kan ikke fjernstarte OBS på en anden maskine.
- **Stop stream** betyder i v1: publishing nægtes ved auth, og streamen markeres utilgængelig i panelet. Hvis du senere vil kunne *kikke* sessions mere aggressivt, kan det udvides via MediaMTX Control API.
## Arkitektur
- `mediamtx`: ingest + preview/media-routing
- `backend`: auth, admin, DB, status, hooks, UI
- `caddy`: reverse proxy + webadgang
## 1) LXC i Proxmox
Anbefalet:
- Ubuntu 24.04 LTS
- 2 vCPU minimum
- 4 GB RAM minimum
- 20 GB disk minimum
- Fast IP
- Nesting **enabled**
- Keyctl **enabled**
Hvis Docker i unprivileged LXC driller, så brug enten:
- privileged LXC til denne ene container, eller
- en lille Ubuntu VM i stedet
## 2) Installer Docker i LXC
Kør `scripts/install_docker_ubuntu.sh` som root.
## 3) Klargør projektet
```bash
cd /opt
mkdir -p /opt/streamhub
cd /opt/streamhub
# kopier alle filer hertil
cp .env.example .env
nano .env
```
Sæt mindst:
- `SECRET_KEY`
- `ADMIN_PASSWORD`
- `PUBLIC_BASE_URL`
- `MEDIA_PUBLIC_HLS_BASE`
## 4) Start stacken
```bash
docker compose build
docker compose up -d
```
## 5) Login
Standard admin-bruger hentes fra `.env`:
- brugernavn: `ADMIN_USERNAME`
- kodeord: `ADMIN_PASSWORD`
## 6) Router / firewall
Åbn som minimum:
- `80/tcp`
- `443/tcp`
- `1935/tcp` for RTMP ingest
Internt bruges også:
- `8888/tcp` HLS (bag Caddy via `/hls/*`)
- `9997/tcp` MediaMTX API kun lokalt
## 7) OBS anbefalinger til DJ stream
- Audio sample rate: **48 kHz**
- Channels: **Stereo**
- Audio bitrate: **256320 kbps AAC**
- Keyframe interval: **2 sek**
- Video: fx 1920x1080 / 30 eller 50 FPS alt efter setup
## 8) URL'er
Admin/UI:
- `https://ditdomæne/`
Preview HLS via Caddy:
- `https://ditdomæne/hls/<slug>/index.m3u8`
RTMP publish:
- `rtmp://ditdomæne:1935/<slug>?token=<token>`
## 9) Begrænsninger i v1
- Preview er HLS/LL-HLS, ikke fuld WebRTC-player endnu
- Session-kick er ikke tvunget ind i UI endnu
- Ingen transcoding-profiler
- Ingen 2FA
- Ingen multi-node / HA
## 10) Senere udbygning
- WebRTC preview med dedikeret spiller
- OBS WebSocket integration
- Push til Twitch/YouTube fra panelet
- Bedre real-time metrics via websocket
- Per-stream roller og share links