Galène
Lightweight videoconferencing server
Galène is a simple, efficient videoconferencing server designed for teaching and online meetings. It is written in Go and runs as a single binary with minimal dependencies.
Key features
- Single binary, no database
- Low resource usage
- Designed for teaching
- Screen sharing and recording
Pros & cons
Strengths
- Extremely simple to deploy
- Efficient on small servers
Trade-offs
- Minimal UI
- Fewer features than larger platforms
Galène replaces
Last reviewed Sep 13, 2026 · 763 words
Galène is what you run when Jitsi feels like deploying an airline to cross the street. It is one Go binary, no database, about 128 MB of RAM at idle, and its entire configuration is a config.json plus one JSON file per meeting room. Juliusz Chroboczek wrote it to teach university courses during 2020, and that origin explains every design choice: it is optimised for one presenter, many listeners, screen sharing, and recording, on hardware a department could afford.
It is an SFU, which is why it is cheap
Galène is a selective forwarding unit. Each participant sends one video stream up; the server forwards copies to everyone else without decoding or mixing anything. CPU use stays low because no transcoding happens, and the cost that does scale is upload bandwidth: a room where 10 people all have cameras on means the server pushes 10 × 9 = 90 stream copies. In a lecture where one person has video and 30 have audio, the server barely notices. Galène applies simulcast and bandwidth estimation so weak clients get lower-quality layers rather than dropping out.
The practical consequence: a 1 vCPU VPS with a 100 Mbit uplink handles a seminar comfortably. Full-mesh tools fall over long before that, and MCU-style mixers need real CPU.
Rooms are files, users are JSON
Create a group by dropping a file into groups/:
{
"users": {
"teacher": {"password": "correct-horse", "permissions": "op"}
},
"wildcard-user": {"password": {"type": "wildcard"}, "permissions": "present"},
"allow-recording": true,
"public": true
}
That gives one operator who can mute, kick, and record, and lets anyone with the room URL join and present. Change present to observe and students can watch but not broadcast until an op promotes them. There is no signup flow, no email verification, no admin panel; you edit a file and Galène picks it up. For a school or a club this is a feature. For a business that wants SSO and audit logs it is a dealbreaker, and Jitsi Meet or BigBlueButton is the right tool.
Recordings land in recordings/ as Matroska files, one per room per session, and the op starts them from the in-call menu. They are not transcoded, so expect a few hundred MB per hour and a step through ffmpeg before sharing.
The two things that break every first install
TLS. Galène serves HTTPS on port 8443 by default and expects data/cert.pem and data/key.pem. Browsers refuse camera access on plain HTTP, so there is no "try it without a cert" option. Either drop in a certificate or run behind a reverse proxy with -insecure and let Caddy terminate TLS; the proxy must forward WebSockets, which Caddy does without extra configuration.
UDP. Media does not travel over the HTTPS port. Galène opens ephemeral UDP ports for WebRTC, and a firewall that only allows 8443 gives you a call where everyone connects and nobody sees anything. Constrain the range and open it:
./galene -http :8443 -turn :1194 -udp-range 50000-50200
The -turn flag starts Galène's built-in TURN relay, which is what rescues participants behind corporate NAT. Open TCP and UDP 1194 for it. If you sit behind a cloud provider's NAT, add -turn with your public address so ICE candidates are correct.
What you give up compared with the big platforms
The UI is plain: a video grid, a chat sidebar, a file-share button, and keyboard shortcuts. There are no breakout rooms, no virtual backgrounds, no dial-in, no calendar integration, no waiting-room UI beyond permission levels, and no mobile app (the web client works on phones). Whiteboards mean sharing a browser tab. The project is around 1,400 stars with a small contributor base, so features arrive when the maintainer wants them.
For the communication category the pattern is clear: Galène for classes, clubs, and family calls where you control both ends; Jitsi when outsiders expect a Zoom-like experience and you have 4 GB to spare for the Prosody and Jicofo stack.
What I'd do
For anything under 30 participants where I own the server: Galène behind Caddy, -udp-range pinned to 200 ports, built-in TURN enabled, one groups file per recurring meeting, and recordings rsynced off the box weekly. It replaces a paid Zoom seat for a teacher or a small team at a cost of roughly one evening and the smallest VPS on the price list. If the participants are customers who will judge you on polish, run Jitsi and accept the weight.
Compare Galène
7 head-to-head comparisons.
Similar chat & communication apps
Chatwoot
Chat & CommunicationOpen-source customer engagement and live-chat platform
Replaces Intercom, Zendesk
SimpleX Chat
Chat & CommunicationPrivate messenger without any user identifiers
Replaces Signal, WhatsApp
Etherpad
Chat & CommunicationReal-time collaborative document editor
Replaces Google Docs
Centrifugo
Chat & CommunicationScalable real-time messaging server for apps and websites
Replaces Pusher, Firebase Realtime Database
Screego
Chat & CommunicationScreen sharing for developers
Typebot
Chat & CommunicationConversational app builder (alternative to Typeform and Landbot)