Galene¶
Galène is a videoconferencing server that is easy to deploy (just copy a few files and run the binary) and that requires moderate server resources. It was originally designed for lectures and conferences (where a single speaker streams audio and video to hundreds or thousands of users), but later evolved to be useful for student practicals (where users are divided into many small groups), and meetings (where a few dozen users interact with each other).
Galène reached version 1.0 in August 2025 (with 1.1 in development), marking its maturity as a production-ready platform.
Docker¶
https://github.com/deburau/galene-docker
Alt UI¶
https://github.com/kaisansoft/pyrite (OLD, unmaintained)
Galene vs. Livekit¶
Last updated: March 2026
Key Differences and Comparison
| Feature | Galene | LiveKit |
|---|---|---|
| Primary Focus | Self-hosted video conferencing with low operational overhead | Scalable, production-grade, real-time communication platform |
| Architecture | Single-server SFU (with integrated TURN server) | Distributed, multi-node architecture |
| Scalability | Good (single server, UDP multiplexing since 1.0) | Highly scalable (designed for many rooms/participants) |
| Complexity | Lower (simpler codebase) | Higher (more features, more complex) |
| Features | - Video conferencing (audio, video, screen sharing) - Text chat with moderation - Group management - Recording to disk (WebM) - Token-based authentication (JWT, stateful, RSA/RS256) - Hierarchical and global tokens - Advanced bandwidth estimation (BWE) - Simulcast and SVC (Scalable Video Coding) - Integrated TURN server - WHIP ingress protocol - Background blur - Peer-to-peer file transfer - Administrative HTTP API - CORS support - galenectl CLI admin tool |
All of Galene’s core features, plus: - Scalable Forwarding Unit (SFU) model - Dynamic forwarding and quality adjustments - Load balancing and routing - Egress (recording, streaming) services - Ingress (pre-encoding) services - Webhook events - Extensive SDK support (many languages/platforms) - Client-side adaptive streaming - Advanced server-side configuration options - Prometheus metrics - Advanced logging |
| Dependencies | Minimal (Pion WebRTC v4) | More dependencies (Redis, routing services, etc.) |
| Deployment | Easy, single-server setup; galenectl initial-setup for bootstrapping |
More complex, requires infrastructure setup (e.g., Redis) |
| Target User | Self-hosting enthusiasts, small-to-medium organisations, developers needing a lightweight SFU with an admin API | Developers building production applications, businesses needing distributed scalability |
| Licensing | MIT License | Apache License 2.0 |
Code-Level Observations
-
Signal Handling (Galene’s
main.go,rtpconn/rtpconn.govs. LiveKit’sservice/signal.go):- Galene: Uses a custom WebSocket-based signaling protocol. Signal messages are plain JSON. The code directly handles offer/answer and ICE candidate exchange.
- LiveKit: Uses a dedicated
SignalServerandSignalClientwith Protocol Buffers (protobuf) for structured messaging. Leverages PSRPC for internal communication. This makes message definitions explicit, versioned, and easier to manage in a distributed system.
-
RTP Handling (Galene’s
rtpconn/rtpconn.govs. LiveKit’ssfupackage):- Galene: Manages RTP packets with robust jitter buffer management and sophisticated packet reordering/loss handling, comparable to LiveKit. Since 1.0, uses Pion v4 and supports UDP multiplexing for better port utilisation.
- LiveKit: Has a robust
sfupackage with:DownTrack: Manages sending RTP to a subscriber, including quality adjustments, bandwidth estimation, and keyframe requests.Buffer: Sophisticated buffering, reordering, and NACK handling for incoming RTP packets.RTPMunger: Handles sequence number and timestamp adjustments needed for forwarding, codec parameters, and other RTP-related operations.StreamTracker: Manages the availability of streams (for simulcast/SVC).
-
Bandwidth Estimation (BWE) (Galene’s
rtpconnvs. LiveKit’ssfu/bwe):- Galene: Implements advanced BWE, with an estimator that is arguably more refined than LiveKit’s.
- LiveKit: Uses a combination of sender-side and receiver-side BWE, including:
- REMB (Receiver Estimated Maximum Bitrate) processing.
- Transport-Wide Congestion Control (TWCC) feedback handling.
- Custom congestion control logic based on packet loss, jitter, and RTT.
- Support for probing to find available bandwidth.
-
Media Processing (Galene’s
codecspackage vs. LiveKit’ssfu,buffer, and codec-specific packages):- Galene: Extensive codec support (VP8, VP9, H.264, AV1, Opus, etc.), including dedicated code for handling codec-specific features like VP8/VP9/AV1 keyframe detection and H.264 NALU handling. Also supports client-side filters including background blur (using MediaPipe).
- LiveKit: Also provides extensive codec support and dedicated code for handling codec-specific features.
-
Data Channels and File Transfer:
- Galene: Supports peer-to-peer file transfer via WebRTC data channels (
/sendfilecommand, since v0.5). The protocol was reworked in v0.6 and v0.95, and since 1.1 usesbinaryType=blobto support files larger than available memory. - LiveKit: Uses a dedicated
datachannelpackage, with rate limiting and buffer management, showing focus on reliability and scalability for data channels beyond basic conferencing.
- Galene: Supports peer-to-peer file transfer via WebRTC data channels (
-
Scalability (Galene’s single server vs. LiveKit’s routing/multi-node):
- Galene: All logic is designed for a single instance, but offers good performance within its scope. UDP multiplexing (since 1.0) improves resource usage on a single node.
- LiveKit: The
routingpackage,LocalRouter, andRedisRouterclearly show a design for distributing load across multiple nodes. The room allocation and node selection strategies are crucial for scaling.
-
Telemetry and Monitoring (LiveKit’s
telemetryandprometheuspackages):- Galene: Limited built-in telemetry. Exports stats as JSON at
/stats.html. - LiveKit: Comprehensive metrics collection and reporting with Prometheus, analytics events, and structured logging.
- Galene: Limited built-in telemetry. Exports stats as JSON at
-
Configuration and Administration:
- Galene: JSON-based configuration with
config.jsonfor global settings and per-group JSON files. Since 0.9, provides a full administrative HTTP REST API (/galene-api/) for programmatic management. ThegalenectlCLI (since 0.95, significantly expanded in 1.0/1.1) supports initial setup, user/token management, JSON templates, and group configuration. CORS is configurable viaallowOrigin/allowAdminOrigin. - LiveKit: Uses a more complex configuration system (YAML-based) for tuning various aspects of the system, reflecting the larger number of features and distributed settings.
- Galene: JSON-based configuration with
-
Authentication and Extensibility:
- Galene: Supports multiple authentication methods: password-based (bcrypt or plaintext), stateless JWT tokens (with ECDSA and RSA/RS256), stateful tokens (“invitations”), and third-party token-based authentication. Since 1.0/1.1, supports hierarchical tokens (scoped to group hierarchies), global tokens, and include-subgroups capabilities for JWTs. The admin API allows programmatic user and permission management.
- LiveKit: Provides a flexible, SDK-driven model for permissions and token generation, with broader integration options across languages/platforms.
-
Ingress (WHIP):
- Galene: Implements the WHIP protocol (since 0.8) for ingesting media from external sources. Since 1.0, supports ETags and ICE restarts for WHIP.
- LiveKit: Provides dedicated ingress services with broader protocol support and pre-encoding capabilities.
In Summary
The fundamental difference remains one of scope and design goals:
-
Galene (now at v1.0) prioritises simplicity and ease of deployment for self-hosted video conferencing, while offering sophisticated media handling, advanced BWE, and — since recent versions — a full admin API, CLI tooling, flexible token-based authentication, and WHIP ingress. It is well-suited for individuals, small-to-medium organisations, and developers who need a capable SFU without the operational complexity of a distributed system.
-
LiveKit is a more comprehensive platform aimed at building scalable, production-ready, real-time communication applications. It includes all the necessary components for managing large numbers of rooms and participants, optimising media quality, and handling network conditions in a distributed environment, along with extensive multi-language SDK support.
The feature gap between the two has narrowed significantly. LiveKit’s main advantages are distributed scalability, multi-language SDKs, and richer egress/ingress services. Galene’s main advantages are minimal dependencies, trivial deployment, and a self-contained architecture that is easy to operate and reason about. The choice depends on whether you need distributed scalability and broad SDK integration (LiveKit) or a lightweight, self-hostable solution that covers most conferencing needs out of the box (Galene).
Page last modified: 2026-04-01 19:31:08