Galene is a videoconference server that is easy to host and that requires very moderate server resources. It was originally designed for lectures, conferences and student tutorials, but later turned out to be useful for traditional meetings. Galene has been used in production at two major universities (Université de Paris and Sorbonne Université) for lectures, practicals, seminars, and for staff meetings. It has been used to host a number of conferences (including SOCS'2020, JFLA'2021 and LibrePlanet?2024).
Galene's server side is implemented in Go, and uses the Pion implementation of WebRTC. The server is portable: it is tested on Linux/amd64 and Linux/arm64, and also runs on Linux/armv7, Linux/mips (OpenWRT), Mac?OS?X, and Windows. The default client is implemented in Javascript, and works on recent versions of all major web browsers, both on desktop and mobile (but see the FAQ for caveats with specific browsers).
While traffic is encrypted and authenticated from sender to server and again from server to receiver, Galene does not perform end-to-end encryption: anyone who controls the server might, in principle, be able to access the data being exchanged. For best privacy, you should install your own, self-hosted server (either manually or through Yunohost).
Galene's is not the only self-hosted WebRTC server. High-quality
alternatives include
Janus and
Jitsi.
Galene is free and open source software, subject to the MIT licence. Galene's development was previously supported by Nexedi, and is currently being supported by NLNet's NGI0Core program.
Go to https://galene.org:8443 and choose public. You may log in with an empty password. If you need a slightly more private group, type public/whatever in the dialog box, for whatever value of whatever.
In order to invite other users, click on your username in the left pane and choose Invite user.
git clone https://github.com/jech/galene
The simplest way to install a self-hosted instance of Galene is to install it through Yunohost.
Minimal manual installation:
Now point your browser at
<https:/localhost:8443/group/night-watch/
>,
ignore the unknown certificate warning, and log in with
username vimes and password sybil. For full installation
instructions, please see the
file galene-install.md in the Galene
sources.
For contributing to Galene, pleae see Contributing below.
Mailing list archives, Atom feed.
Please subscribe to the <galene@lists.galene.org> mailing list. This list is both for user questions and development of Galene.
These packages are provided by users, and have not necessarily been verified by Galene's author.
Client libraries ("SDKs"):
The Galene protocol is documented and stable, it should therefore be easy enough to write a client library for your favourite programming language.
The server is complete, and implements a number of fairly advanced features:
The web browser frontend has a lot of features, but the UI is somewhat clunky:
There is an audio-only native Android client for Galene. The web client is usually a better choice, but the native client supports screensharing, which is not possible in a mobile browser. The client is expected to work on all devices running Android?6 or later.
For a typical lecture (100 students), Galene needs roughly 1/4 of a CPU core.
For one-to-many communication (lectures), the behaviour is linear, and Galene should be able to serve about 300 participants per core. For many-to-many communication (meetings), the behaviour is quadratic (the server load grows as the square of the number of participants), expect to be able to handle on the order of 20 participants in a single meeting on one core, 40 on four cores (and of course way more if some participants don't switch their camera on — we've had staff meetings with forty participants or so, but only a few had their cameras switched on at a given time).
The failure mode is reasonable: when the server is overloaded, the videos freeze. The server recovers as soon as users start switching their cameras off.
Galene assumes that the server is trusted: all media is decrypted by the server and reencrypted before it is sent to the clients. This is, as far as I know, unavoidable with DTLS-SRTP, the security mechanism used by WebRTC (yes, I know about insertable streams). On the other hand, since the client is not trusted, any bugs in the client code should in principle not create security issues. Thus, it is reasonable to build user-friendly clients using unscrutable Javascript frameworks.
Galene has been subjected to a security review by Radically Open Security, funded by NLnet. Penetration test report.
Galene is distributed under the MIT licence. All contributions to Galene will be published under the MIT licence. No CLA is required. For technical discussions, please consider contacting us on the mailing list in preference to GitHub.
You may contribute either by sending patches to the mailing list, or by submitting pull requests to the GitHub repository.
Respecting the user's privacy is an important goal of Galene, and contributions that reduce the user's privacy will not be accepted. Galene loads almost instantaneously, even on a slow connection; if your contribution requires a heavy-weight library, it will most probably be rejected (unless the library is loaded lazily).