Viibestream

Self-hosted, browser-native live video streaming.

  • Python
  • JavaScript
  • Apps & Tools

Viibestream is a self-hosted live streaming platform that runs entirely in the browser. Broadcast from your camera and mic — or share a video file — and viewers watch instantly, with no plugins, native apps, or third-party services in the loop. You own the server, the stream, and the data.

Features

  • Broadcast from camera + mic, or stream a video file straight from the browser
  • Public viewer page with autoplay, mute/unmute, volume and fullscreen
  • Real-time chat with @-mentions, emoji reactions and replies
  • Voice talk-back — viewers can be heard via voice-activity detection
  • Moderation — per-person mute, participant roster, and IP bans
  • Admin dashboard with role-based access (admin / streamer / viewer)
  • Hardened — bcrypt passwords, CSRF protection, rate limiting, optional Turnstile captcha

Tech stack

Flask 3 · Flask-SocketIO · SQLAlchemy/SQLite · vanilla JS (MediaRecorder / MediaSource) · Gunicorn · Docker.

Getting started

# Uses the published image hyprlab/viibestream:latest
mkdir viibestream && cd viibestream
# create docker-compose.yml + .env with a generated SECRET_KEY
docker compose up -d
# sign in at /auth/login with your bootstrap credentials

Pick an HTTPS strategy (reverse proxy, self-signed TLS, or localhost) — camera/mic capture requires a secure context.

Project status

Actively maintained and released under the AGPL-3.0 license. Part of the Viibeware family of self-hosted apps.

Follow the build

I write about self-hosting, Linux, and the tools I make. New posts land on the blog.