Upload files to "/"
This commit is contained in:
@@ -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: **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
|
||||
Reference in New Issue
Block a user