Skip to content

FilippoLeone/datasetto

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

159 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

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.

image

๐ŸŽฎ Datasetto

A modern, self-hosted streaming platform with RTMP streaming, screensharing, voice chat, and text chat. A teamspeak/discord open source alternative.

Docker Node.js TypeScript

Perfect for small self-hosted communities

๐Ÿ“ฅ Downloads

Pre-built applications are available in Releases:

  • ๐Ÿค– Android APK - Install on Android devices
  • ๐Ÿ–ฅ๏ธ Windows - .exe installer and portable version
  • ๐Ÿง Linux - .AppImage and .deb packages
  • ๐ŸŽ macOS - .dmg installer

โœจ Features

Core Features

  • ๐ŸŽฎ 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

๐Ÿš€ Quick Start

Local Development

cd ops
docker compose up -d

Production Deployment

VPS Deployment (Ubuntu/Debian)

chmod +x deploy-vps.sh
sudo ./deploy-vps.sh

GCP Deployment

chmod +x deploy-gcp.sh
./deploy-gcp.sh

Manual Deployment

# 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 -d

Server Requirements (few users + streamer):

  • 2 vCPU, 2-4GB RAM, 10-40GB SSD

๐Ÿ—๏ธ Architecture

Stack: nginx-rtmp โ†’ Node.js (Express + Socket.IO) โ†’ TypeScript (Vite + HLS.js + WebRTC)

๐Ÿ–ฅ๏ธ Desktop App (Electron)

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.


๐ŸŽฎ How to Use

1. Stream with OBS

  1. Open OBS Studio โ†’ Settings โ†’ Stream
  2. Service: Custom
  3. Server: rtmp://YOUR_SERVER/live
  4. Stream Key: Get from web interface (e.g., main-stream+ABC123xyz456...)
  5. Start Streaming

2. Watch & Chat

  1. Open web interface
  2. Enter your display name
  3. Click on a stream channel (๐Ÿ“บ)
  4. Click "Theater Mode" to watch inline or "Pop Out" for resizable window
  5. Use chat to talk with viewers

3. Voice Chat

  1. Click on a voice channel (๐Ÿ”Š)
  2. Click "Join Voice"
  3. Adjust settings in the sidebar:
    • Mute/Deafen controls
    • Push-to-talk (optional)
    • Echo cancellation, noise suppression
    • Mic/speaker device selection

Video Player Controls

  • Space/K - Play/Pause
  • F - Fullscreen
  • M - Mute/Unmute
  • C - Toggle Chat
  • โ†‘/โ†“ - Volume ยฑ10%

Firewall Ports

sudo ufw allow 80,443/tcp    # HTTP/HTTPS (includes HLS)
sudo ufw allow 1935/tcp      # RTMP
sudo ufw allow 4000/tcp      # Backend API

Monitoring

# 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 & Updates

# 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 -d

๐Ÿ“„ License

GNU AGPLv3 - See root LICENSE file


๐Ÿš€ Ready to Deploy?

# 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

About

An application for streaming and voice with friends

Resources

License

Stars

Watchers

Forks

Packages

No packages published