Galene: Videoconference server, in Go, easy to host, MIT

homarp1 pts0 comments

Galene videoconference server

Galene videoconference server

Galene is a videoconference server that is easy to host and<br>that requires very moderate server resources. It was originally designed<br>for lectures, conferences and student tutorials, but later turned out to<br>be useful for traditional meetings. Galene has been used in production at<br>two major universities (Université de Paris<br>and Sorbonne Université) for lectures, practicals,<br>seminars, and for staff meetings. It has been used to host a number of<br>conferences (including SOCS'2020, JFLA'2021 and LibrePlanet 2024).

Galene's server side is implemented<br>in Go, and uses<br>the Pion implementation of WebRTC. The<br>server is portable: it is tested on Linux/amd64 and Linux/arm64, and also<br>runs on Linux/armv7, Linux/mips<br>(OpenWRT), Mac OS X, and Windows. The<br>default client is implemented in Javascript, and works on recent versions<br>of all major web browsers, both on desktop and mobile (but see<br>the FAQ for caveats with specific browsers).

While traffic is encrypted and authenticated from sender to server and<br>again from server to receiver, Galene does not perform end-to-end<br>encryption: anyone who controls the server might, in principle, be able to<br>access the data being exchanged. For best privacy, you should install<br>your own, self-hosted server (either manually or through<br>Yunohost).

Galene's is not the only self-hosted WebRTC server. High-quality<br>alternatives include<br>Janus and<br>Jitsi.

Galene is free and open source software, subject to the<br>MIT<br>licence. Galene's development was previously supported by<br>Nexedi, and is currently being supported<br>by NLNet's NGI0Core<br>program.

Demo

Go to https://galene.org:8443<br>and choose public. You may log in with an empty password. If<br>you need a slightly more private group, type public/whatever in<br>the dialog box, for whatever value of whatever.

In order to invite other users, click on your username in the left pane<br>and choose Invite user.

Source code

git clone https://github.com/jech/galene

Installation

The simplest way to install a self-hosted instance of Galene is to<br>install it through Yunohost.

Minimal manual installation:

git clone https://github.com/jech/galene<br>cd galene<br>CGO_ENABLED=0 go build -ldflags='-s -w'<br>mkdir groups<br>echo '{"users": {"vimes":{"password":"sybil", "permissions":"op"}}}' > groups/night-watch.json<br>./galene &

Now point your browser at<br>https:/localhost:8443/group/night-watch/>,<br>ignore the unknown certificate warning, and log in with<br>username vimes and password sybil. For full installation<br>instructions, please see the<br>file galene-install.md in the Galene<br>sources.

Documentation

README;<br>installation instructions;<br>usage and administration<br>frequently asked questions (FAQ);<br>recent changes;<br>Galene's protocol;<br>writing frontends (see also this<br>minimal<br>client);<br>administrative API for managing groups and users;;<br>documentation of the Javascript client<br>library;<br>documentation of the Go client library.

For contributing to Galene, pleae<br>see Contributing below.

Mailing list

Mailing list archives,<br>Atom feed.

Please subscribe to the<br>galene@lists.galene.org> mailing list. This list is both for user<br>questions and development of Galene.

Community-provided packages

These packages are provided by users, and have not necessarily been<br>verified by Galene's author.

Yunohost;

Arch Linux;<br>FreeBSD.

Related software

Client libraries

Client libraries ("SDKs"):

client<br>library for JavaScript and TypeScript (JavaScript SDK);

human-readable documentation,<br>reference documentation,<br>example;<br>client library for Go<br>(Go SDK); reference documentation, examples.

The Galene protocol is documented<br>and stable, it should therefore be easy enough to write a client library<br>for your favourite programming language.

Specialised clients

Galene-stream<br>is an RTMP (and not only) frontend for Galene. It can be used with OBS<br>Studio.<br>Command-line<br>file transfer through Galene. This is only required for transferring<br>very large files, file transfer works reasonably well from the web<br>interface for files up to a few GB.<br>Android client for Galene. Does chat, audio<br>and screensharing (which no Android browser can do). For video, please<br>use the web client, which works fine on mobile.<br>Speech-to-text for<br>Galene (transcription and automatic captioning/subtitling). See<br>some galene-stt benchmarks and transcripts.<br>Experimental SIP bridge<br>for Galene (traditional VoIP support).

Authentication services

LDAP integration for<br>Galene using<br>third-party authorisation.<br>Sample<br>authorisation server written in Python for Galene's<br>third-party authorisation.

Alternate frontends and management software

Pyrite<br>is an experimental web client (a replacement for the default client)<br>based on the Vue framework, currently on hold and out of date.<br>Openfire-galene-plugin<br>integrates Galene into the Openfire collaboration server.<br>Galene<br>Manager is a Galene plugin for WordPress. Also<br>available from the WordPress plugin directory.

Features

Server features

The server is complete, and...

galene server client documentation linux library

Related Articles