main
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-routingbackend: auth, admin, DB, status, hooks, UIcaddy: 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
cd /opt
mkdir -p /opt/streamhub
cd /opt/streamhub
# kopier alle filer hertil
cp .env.example .env
nano .env
Sæt mindst:
SECRET_KEYADMIN_PASSWORDPUBLIC_BASE_URLMEDIA_PUBLIC_HLS_BASE
4) Start stacken
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/tcp443/tcp1935/tcpfor RTMP ingest
Internt bruges også:
8888/tcpHLS (bag Caddy via/hls/*)9997/tcpMediaMTX API kun lokalt
7) OBS anbefalinger til DJ stream
- Audio sample rate: 48 kHz
- Channels: Stereo
- Audio bitrate: 256–320 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
Languages
Python
56.4%
HTML
30.5%
CSS
10.8%
Shell
1.2%
Dockerfile
1.1%