INCIPIT
This software is being built with the sole purpose of me using it with my friends, I don't care if it does not fit your intended use case and I do not plan on ever making any money or similar with it so keep that in mind if you want to use it.
A modern, self-hosted streaming platform with RTMP streaming, screensharing, voice chat, and text chat. A teamspeak/discord open source alternative.
Perfect for small self-hosted communities
Pre-built applications are available in Releases:
- ๐ค Android APK - Install on Android devices
- ๐ฅ๏ธ Windows -
.exeinstaller and portable version - ๐ง Linux -
.AppImageand.debpackages - ๐ macOS -
.dmginstaller
- ๐ฎ RTMP Streaming - OBS integration with HLS playback (inline theater mode + popout window)
- ๐ค WebRTC Voice Chat - P2P voice communication with echo cancellation & noise suppression
- ๐ฌ Text Chat - Real-time messaging with per-channel history (100 messages in-memory)
- ๐ฌ Video Player Controls - Play/pause, volume, fullscreen, keyboard shortcuts (Space/F/M/C/Arrows)
- ๐ฅ Multi-Channel - Separate text, voice, and stream channels
- ๐ Role System - Superuser, admin, moderator, streamer, and user roles
- ๐ฑ Responsive Design - Mobile-friendly interface
cd ops
docker compose up -dchmod +x deploy-vps.sh
sudo ./deploy-vps.shchmod +x deploy-gcp.sh
./deploy-gcp.sh# 1. Install Docker
curl -fsSL https://get.docker.com | sudo sh
sudo apt install -y docker-compose-plugin
# 2. Clone/upload your code
cd /opt/datasetto
# 3. Configure environment
cd ops
cp .env.example .env
nano .env # Edit SERVER_URL, HLS_BASE_URL, SUPERUSER_SECRET
# 4. Deploy
docker compose -f docker-compose.prod.yml up -dServer Requirements (few users + streamer):
- 2 vCPU, 2-4GB RAM, 10-40GB SSD
Prefer a native-feeling desktop window? Check out the new Electron workspace under desktop/.
cd desktop
npm install
npm run dev # launches Vite + Electron side-by-side
npm run build # packages production installers (requires client build)See desktop/README.md for full details on development and packaging.
- Open OBS Studio โ Settings โ Stream
- Service: Custom
- Server:
rtmp://YOUR_SERVER/live - Stream Key: Get from web interface (e.g.,
main-stream+ABC123xyz456...) - Start Streaming
- Open web interface
- Enter your display name
- Click on a stream channel (๐บ)
- Click "Theater Mode" to watch inline or "Pop Out" for resizable window
- Use chat to talk with viewers
- Click on a voice channel (๐)
- Click "Join Voice"
- Adjust settings in the sidebar:
- Mute/Deafen controls
- Push-to-talk (optional)
- Echo cancellation, noise suppression
- Mic/speaker device selection
- Space/K - Play/Pause
- F - Fullscreen
- M - Mute/Unmute
- C - Toggle Chat
- โ/โ - Volume ยฑ10%
sudo ufw allow 80,443/tcp # HTTP/HTTPS (includes HLS)
sudo ufw allow 1935/tcp # RTMP
sudo ufw allow 4000/tcp # Backend API# View logs
docker compose -f ops/docker-compose.prod.yml logs -f
# Resource usage
docker stats
# Check stream health
curl http://localhost/hls/CHANNEL_NAME.m3u8# Backup environment
cp /opt/datasetto/ops/.env ~/backup/.env.backup
# Update application
cd /opt/datasetto
git pull
docker compose -f ops/docker-compose.prod.yml build --no-cache
docker compose -f ops/docker-compose.prod.yml up -dGNU AGPLv3 - See root LICENSE file
# Quick production deployment on Ubuntu/Debian VPS
chmod +x deploy-vps.sh
sudo ./deploy-vps.sh
# Or for Google Cloud Platform
chmod +x deploy-gcp.sh
./deploy-gcp.sh