Upload files to "/"

This commit is contained in:
2026-03-22 23:15:50 +00:00
commit 88915b082b
3 changed files with 190 additions and 0 deletions
+132
View File
@@ -0,0 +1,132 @@
# 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