MCPSERV.CLUB
Galene

Galene

Self-Hosted

Self-hosted WebRTC videoconferencing server

Active(91)
1.2kstars
0views
Updated 11 days ago

Overview

Discover what makes Galene powerful

Galene is a **self‑hosted WebRTC video‑conferencing server** written in Go that prioritizes low resource consumption while delivering a full feature set. Its design centers on a lightweight media gateway that accepts inbound WebRTC streams, mixes them in software, and forwards the composite to all participants. The server is fully portable across Linux (amd64/arm64/armv7/mips), macOS, and Windows, making it suitable for campus servers, edge devices, or cloud VMs. Unlike some alternatives that rely on heavy media server frameworks (e.g., Jitsi Videobridge), Galene keeps its binary footprint small and its CPU usage modest, which is why it runs comfortably on a single core even with dozens of simultaneous attendees.

Language & Runtime

Media Layer

Transport

Storage

Overview

Galene is a self‑hosted WebRTC video‑conferencing server written in Go that prioritizes low resource consumption while delivering a full feature set. Its design centers on a lightweight media gateway that accepts inbound WebRTC streams, mixes them in software, and forwards the composite to all participants. The server is fully portable across Linux (amd64/arm64/armv7/mips), macOS, and Windows, making it suitable for campus servers, edge devices, or cloud VMs. Unlike some alternatives that rely on heavy media server frameworks (e.g., Jitsi Videobridge), Galene keeps its binary footprint small and its CPU usage modest, which is why it runs comfortably on a single core even with dozens of simultaneous attendees.

Technical Stack

  • Language & Runtime: Go 1.x, compiled with CGO_ENABLED=0 for a static binary.
  • Media Layer: Uses the Pion WebRTC library, providing low‑level access to RTP/RTCP handling and DTLS/SRTP encryption.
  • Transport: HTTPS/TLS for control signaling, UDP/TCP for media transport; the server negotiates ICE candidates with browsers.
  • Storage: No external database is required; configuration and user data are stored in JSON files (groups/*.json).
  • Front‑end: A vanilla JavaScript client bundled with the server, consuming the custom galene-protocol over WebSockets.

Core Capabilities

  • Group‑based rooms: Defined by JSON files under groups/, each room can specify users, permissions (op, mod, view), and bandwidth limits.
  • Administrative API: A REST‑style HTTP API (galene-api.md) exposes endpoints for creating/destroying rooms, listing participants, and retrieving statistics.
  • Client Protocol: The galene-protocol.md describes a lightweight JSON‑over‑WebSocket protocol that handles signaling, media control, and chat.
  • Recording & Archiving: Built‑in support for recording streams to disk, with optional transcoding hooks.
  • Security: TLS/DTLS encryption for all traffic; no end‑to‑end encryption by default, but the architecture allows custom extensions.

Deployment & Infrastructure

Galene’s minimal dependencies mean it can run as a single binary on a variety of infrastructures:

  • Bare‑metal / VPS: Requires only an open port (default 8443) and a TLS certificate.
  • Containerization: A lightweight Docker image is available; the binary can be run in a stateless container with persistent volumes for configuration and recordings.
  • Scalability: Horizontal scaling is achieved by running multiple Galene instances behind a load balancer, each handling distinct rooms. The statelessness of the API allows session stickiness or round‑robin distribution without state replication.
  • Resource Footprint: Benchmarks report <30 MiB RAM and <10 % CPU under typical lecture loads, enabling deployment on low‑cost hardware (e.g., Raspberry Pi clusters).

Integration & Extensibility

  • Plugin Hooks: While Galene does not expose a formal plugin system, its configuration files and API allow developers to write external services that interact with the server (e.g., auth backends, analytics dashboards).
  • Webhooks: The administrative API can trigger HTTP callbacks on room events, facilitating integration with LMS or notification systems.
  • Custom Clients: The galene-client.md guide details how to build alternative front‑ends (mobile, desktop) by consuming the same protocol.
  • Open Source Licensing: MIT license gives full freedom to modify or embed Galene in proprietary products.

Developer Experience

  • Configuration: Straightforward JSON files; no complex schema or migrations.
  • Documentation: Comprehensive Markdown docs covering installation, administration, client protocol, and API; inline comments in the source aid understanding.
  • Community: Active GitHub repository with issue tracking; contributors from academia (Université de Paris, Sorbonne) provide production‑grade support.
  • Testing: The codebase includes unit tests for media handling and API endpoints, ensuring reliability when extending or modifying the server.

Use Cases

  1. Academic Lectures: Universities host live classes with minimal latency and low server cost, leveraging Galene’s low‑resource profile.
  2. Corporate Meetings: Small to medium enterprises deploy Galene on internal servers for secure video calls without relying on cloud services.
  3. Conferences & Webinars: Event organizers use Galene to stream sessions to large audiences while keeping control over recording and archiving.
  4. Edge Computing: IoT or remote sites run Galene on ARM devices to provide local video conferencing without internet bandwidth constraints.

Advantages Over Alternatives

  • Performance: Pion’s efficient WebRTC stack delivers low latency and high throughput with fewer cores.
  • Simplicity: No need for external media servers or complex signaling; the binary is self‑contained.
  • Extensibility: Open JSON configs and a clear API make it easy to integrate with existing authentication or monitoring systems.
  • Licensing & Cost: MIT license and minimal infrastructure costs make Galene attractive for open‑source projects or organizations with strict compliance requirements.

In summary, Galene offers developers a compact, well‑documented, and highly configurable WebRTC server that can be deployed quickly on a wide range of hardware. Its focus on resource efficiency, combined with a clean API and

Open SourceReady to get started?

Join the community and start self-hosting Galene today