Rumo

Free, self-hosted video meetings. No accounts, no per-seat pricing, no third-party platform.

MIT License Self-hosted Docker ready
Rumo landing page
Rumo meeting grid view with host controls Rumo admin settings panel

What it does

Built with WebRTC for peer-to-peer audio/video, Socket.IO for signaling and real-time chat/host controls, React on the frontend, and Postgres for room state.

Video and audio calls

Adaptive quality, screen sharing, and background blur, all peer-to-peer over WebRTC.

Guest access

Enter a name and join. No account required. Whoever creates a room, or is first to join it, becomes its host.

Host controls

Mute or remove participants, promote co-hosts, lock private rooms behind a waiting room, transfer host mid-call.

Real-time chat

Rate-limited chat alongside the call, delivered over the same Socket.IO connection.

Configurable branding

Change the name, logo, tagline, and accent color from an admin panel in the browser, or a JSON file. No rebuild required.

Built-in i18n

Every UI string lives in one lang.json. Add a language by adding a column, not a new system.

One-command HTTPS

Point a domain at your server and the installer sets up a reverse proxy with a free, auto-renewing certificate.

How it works

No accounts, no external identity provider, and nothing to configure just to let people talk.

1. Create a room

A guest hits "Start meeting." The backend generates a room and a shareable link. Nothing is stored about who created it beyond a display name.

2. Share the link

Anyone with the link enters a name and joins. The first person into an empty room becomes its host.

3. Talk directly

Audio/video flows peer-to-peer over WebRTC. The server only relays signaling (offers, answers, ICE candidates), chat, and host-control events over Socket.IO, it never sees your media.

Quick start

Requires Docker and Docker Compose.

git clone https://github.com/BrahmjotSingh0/rumo.git
cd rumo
./install.sh      # Windows: .\install.ps1

That checks for Docker, generates .env with random secrets, and starts everything. It also asks for an optional domain name to set up free HTTPS automatically. Once it's running, open /admin to set your logo, name, and colors.

Documentation

Everything also lives in the repository itself.