Galene 1.2 介绍与选型指南
Galene 视频会议服务器概述、SFU 架构、功能特性、快速开始、适用场景与限制,并与 Jitsi Meet、LiveKit、Janus、BigBlueButton、mediasoup 量化对比(2026-10-25 实查数据)。
Galene 1.2 介绍与选型指南
目标:说明 Galene 是什么、架构如何、能做什么,并与 Jitsi Meet、LiveKit、Janus、BigBlueButton、mediasoup 等同类方案做量化对比,帮助读者决定是否选用 Galene。文中版本、命令与回显已在 Ubuntu 24.04.5 LTS 服务器上基于 Galene 1.2.1(Go 1.27.3)实测通过。
一、环境信息
- 操作系统:Ubuntu 24.04.5 LTS(Noble Numbat),x86_64
- 组件版本:Galene 1.2.1(2026-09-08 发布,1.2 系列的最新修订版)
- 构建工具链:Go 1.27.3 linux/amd64(go.mod 最低要求 Go 1.24.0)
- 媒体栈:Pion WebRTC v4.2.20(纯 Go 实现的 WebRTC 协议栈)
- 默认端口:8443/TCP(HTTPS + WebSocket 信令)、1194/TCP+UDP(内置 TURN 服务)
- 数据目录:
data/(全局配置与令牌)、groups/(会议室定义)、recordings/(录制文件) - 实测资源:单二进制 13MB,空载常驻内存约 6.7MB
二、软件概述
Galene(常写作 Galène)是一个开源的视频会议服务器,由法国 IRIF 研究所的 Juliusz Chroboczek(Babel 路由协议作者)于 2020 年发起,采用 MIT 许可证,官网为 https://galene.org。整个系统用 Go 语言编写,媒体层基于 Pion WebRTC 协议栈。
它的设计目标非常明确:一台普通服务器、一个二进制文件、几分钟内跑起一个功能完整的视频会议系统。与动辄由五六个服务组成的会议全家桶不同,Galene 没有数据库、没有消息队列、没有外部依赖——会议室和用户直接存成 JSON 文件,复制目录即可完成备份。
版本节奏(查询日期 2026-10-25,来源:源码仓库 CHANGES 文件):
| 版本 | 发布日期 | 关键变化 |
|---|---|---|
| 1.0 | 2025-08-09 | 升级到 Pion v4、WHIP 推流、UDP 多路复用、层级令牌 |
| 1.1 | 2026-06-21 | 新增 galenectl initial-setup、全局令牌、JSON 模板建组 |
| 1.2 | 2026-09-05 | 递归/全局令牌、管理接口令牌认证、update-token、安全加固 |
| 1.2.1 | 2026-09-08 | 修复登录页摄像头/麦克风测试未停止的问题、用户流状态图标修正 |
仓库活跃度:GitHub jech/galene 约 1.4k stars,最近一次代码提交在 2026-10-23(查询日期 2026-10-25),维护处于活跃状态。
三、核心架构
Galene 整体是一个 SFU(Selective Forwarding Unit,选择性转发单元):每个参会者把自家的音视频流上行推给服务器,服务器按订阅关系把流转发给其他参会者,不做解码重编码。
💡 技术拓展:实时会议的服务器架构不止 SFU 一种,常见三类对比如下——
架构 原理 服务器开销 适用场景 Mesh(网状) 参会者两两直连,无服务器转发 极低 2~3 人小通话 SFU(选择性转发) 服务器转发各路流,不转码 中低,随人数近线性增长 几人至几十人的会议 MCU(多点控制单元) 服务器把多路流混屏/混音成一路 高(CPU 密集) 超大 webinar、弱终端 Galene 采用 SFU 架构,因此服务器开销低、端到端延迟小,代价是参会人数不可能无限扩展(见「六、适用场景与限制」)。
一个 Galene 实例由以下部分组成:
- galene 主程序:单个 Go 二进制,内嵌 HTTPS Web 服务器(默认 8443)、WebSocket 信令通道(
/ws)、SFU 媒体转发引擎、WHIP 推流端点和管理 API(/galene-api/v0/)。 - 内置 Web 客户端:
static/目录下的浏览器页面,免安装、免 APP,浏览器直接加入会议。 - 内置 TURN 服务器:默认监听 1194/TCP+UDP,用于 NAT/防火墙环境下的媒体中继;可关闭并改用外部 TURN。
- galenectl 管理工具:独立编译的管理端 CLI,通过管理 API 完成建组、建用户、发令牌等操作。
- JSON 文件存储:
groups/*.json存会议室与用户,data/config.json存全局配置,data/var/tokens.jsonl存邀请令牌——没有数据库。
媒体与协议:
- 信令:HTTPS + WebSocket(JSON 消息)。
- 媒体:SRTP over UDP(推荐),UDP 不通时经内置或外部 TURN 中继(TCP/UDP 1194)。
- 视频编码:VP8(默认、全浏览器兼容)、VP9、AV1、H.264;音频编码:Opus(默认,唯一支持录制的音频编码)、G.722、PCMU、PCMA。
- 支持 Simulcast(多码率并发),弱网参会者自动收到低码率流。
四、功能特性
以下是 Galene 1.2 的主要能力清单(均在 1.2.1 实测环境确认存在):
- 多会议室(group):会议室即一个 URL(
/group/<组名>/),支持层级子组;开启auto-subgroups后子组按需自动创建,适合「一门课 20 个小组」这类场景(作者本人就用它督导 40 人规模的课程实习)。 - 音视频与屏幕共享:浏览器一键开关摄像头/麦克风,支持共享整屏或单个窗口;「Blackboard mode」提高分辨率换取帧率,适合板书。
- 会议内聊天:群聊 +
/msg私聊,历史默认保留 4 小时且不落盘(隐私友好)。 - 端到端加密的文件传输:参会者之间点对点传文件,不经过服务器磁盘。
- 服务端录制:会议室开启
allow-recording后,主持人可把会议录制成 WebM 文件存到recordings/。 - 邀请令牌:生成形如
https://<主机>:8443/group/<组名>/?token=XXX的免密邀请链接,可设有效期、可吊销,1.2 起支持覆盖整个组层级的递归令牌。 - 细粒度权限:
op(主持人)/present(可上麦上视频)/message(仅聊天)/observe(仅观看)/caption(字幕)/admin(管理)六档简写。 - 开放会议:通配用户(wildcard user)允许「任意用户名 + 统一口令」甚至「任意用户名 + 任意口令」加入。
- 外部认证对接:通过
authServer/authPortal+ JWK 密钥可把认证委托给 LDAP、OAuth2 等第三方(官方提供galene-ldap与 Python 示例认证服务器)。 - 背景模糊:可选集成 Google MediaPipe,缺失时自动隐藏对应菜单。
- WHIP 推流:1.0 起支持 WHIP 协议,可从 OBS 等软件把一路流推进会议室。
- 管理 API 与 CLI:
/galene-api/v0/REST 风格管理接口(ETag 乐观并发控制)+galenectl命令行工具。
五、快速开始(最小可用示例)
Galene 没有预编译发行包,从源码构建只需一条 go build(完整安装与 systemd 托管见《Ubuntu 24.04 安装 Galene 1.2 指南》)。以下命令在 Ubuntu 24.04 上实测:
# 1. 下载并解压源码(1.2.1,包大小约 880KB)
wget https://github.com/jech/galene/archive/refs/tags/galene-1.2.1.tar.gz
tar xzf galene-1.2.1.tar.gz && cd galene-galene-1.2.1
# 2. 一条命令完成构建(纯 Go、无 CGO,生成约 13MB 单二进制)
CGO_ENABLED=0 go build -ldflags='-s -w'
# 3. 建一个会议室目录并写入最小会议室定义(用户 vimes / 密码 sybil / 主持人权限)
mkdir groups
echo '{"users": {"vimes": {"password":"sybil", "permissions":"op"}}}' > groups/night-watch.json
# 4. 后台启动(默认监听 8443,无证书时自动生成自签名证书)
nohup ./galene &
验证(实测回显):
curl -sk -o /dev/null -w '%{http_code}\n' https://localhost:8443/group/night-watch/
200
返回 200 即表示会议室页面已可访问。浏览器打开 https://<服务器地址>:8443/group/night-watch/,忽略自签名证书警告,用 vimes / sybil 登录即可开会。
⚠️ 注意:国内网络环境下
go build拉取依赖可能超时,先执行go env -w GOPROXY=https://goproxy.cn,direct再构建(本文所有实验均在此配置下完成)。
六、适用场景与限制
适合:
- 中小型团队会议、教学分组讨论:几十人规模、多会议室并行,是 Galene 的设计甜区。
- 注重隐私与数据自管的组织:无数据库、无遥测、聊天记录不落盘、文件传输端到端加密,全部数据就是几个 JSON 文件。
- 资源受限的服务器:实测空载常驻内存约 6.7MB,二进制 13MB,1C1G 的入门 VPS 即可承载日常小组会议。
- 需要快速交付的场合:从下载源码到第一个会议房间可访问,实测 10 分钟内完成。
限制(选型前必须知晓):
- 单节点架构:没有集群、级联或多实例分担能力,单实例能承载的人数受服务器带宽与 CPU 限制,不适合几百上千人的大型 webinar。
- NAT 环境需要额外 TURN:服务器在 NAT 之后时,内置 TURN 拿不到公网地址(实测日志:
TURN: no public addresses/Relay test failed: i/o timeout),必须在公网另设 TURN 服务器并在data/ice-servers.json中配置。 - 无官方移动 APP:移动端走浏览器(界面已做移动端适配)。
- AV1/VP9 兼容性:VP9 与 Safari 不兼容;AV1 仅部分浏览器支持且不支持录制与 SVC。默认 VP8+Opus 是最稳妥组合。
- 无人值守运营能力弱:没有内置监控、计费、报表,需要自行围绕管理 API 建设。
七、同类选型对比
以下数据查询日期均为 2026-10-25(stars 来自 GitHub API / shields.io 实查)。
| 项目 | 架构 | 语言 | 许可证 | GitHub Stars | 部署形态 | 资源占用 | 定位 |
|---|---|---|---|---|---|---|---|
| Galene | SFU | Go | MIT | ≈1.4k | 单二进制 + 静态页 | 极低(实测空载 6.7MB 内存) | 中小会议、教学、自托管 |
| Jitsi Meet | SFU(JVB+Jicofo 多组件) | Java/TS | Apache-2.0 | ≈30.1k | 多服务全家桶,有官方容器镜像 | 中高 | 功能最全的会议套件 |
| LiveKit | SFU | Go | Apache-2.0 | ≈21.8k | 单二进制 + SDK 生态 | 中 | 面向开发者的实时音视频 PaaS 基座 |
| Janus Gateway | WebRTC 网关(插件式) | C | GPL-3.0 | ≈9.2k | 需自行组装插件与信令 | 低 | 模块化协议网关,二次开发底座 |
| BigBlueButton | 全家桶(FreeSWITCH 等十余组件) | Java/TS | LGPL-3.0 | ≈9.3k | 官方专用安装脚本绑定 Ubuntu 版本 | 高(官方建议 4C8G 起步) | 在线课堂(出勤、举手、白板、测验) |
| mediasoup | SFU 库(非完整产品) | C++/Node | ISC | ≈7.4k | 需自写信令与业务层 | 低 | 嵌入自有产品的媒体引擎 |
选型建议(按「如果…则…」):
- 如果只想要一个几分钟跑起来、维护省心的中小团队会议系统——选 Galene,这也是本文系列的场景。
- 如果需要开箱即用的完整会议套件(共享日历式房间、拨号接入、YouTube 直播推流)且不在乎多组件运维——选 Jitsi Meet。
- 如果是开发自有音视频产品(社交 App、互动直播、机器人参会)——选 LiveKit 或 mediasoup,它们本质是给开发者用的 SDK/引擎。
- 如果做在线教育且需要课堂管理功能(考勤、分组讨论室管理、板书回放)——选 BigBlueButton,但要接受它对服务器配置和系统版本的硬要求。
- 如果需要对接 SIP/PSTN、做协议转换网关——选 Janus。
💡 说明:Galene 的短板(无集群、社区规模小)与长板(极简、极省资源、隐私友好)是同一体两面。选型时先确认会议规模上限,再决定是否为「用不上的扩展性」付出运维成本。
八、参考链接
- 官网与 FAQ:https://galene.org、https://galene.org/faq.html
- 源码仓库与发布页:https://github.com/jech/galene
- 官方文档(随源码分发):
galene-install.md(安装)、galene.md(使用与管理)、galene-api.md(管理 API)、galene-client.md/galene-protocol.md(客户端与协议) - 社区:Galene 邮件列表 galene@lists.galene.org(https://lists.galene.org)
- 站内相关文档:《Ubuntu 24.04 安装 Galene 1.2 指南》https://www.quzuo.net/document/JmXRH0x02qtd、《Galene 1.2 Docker Compose 部署指南》https://www.quzuo.net/document/8hoLi6NGyKYn、《Galene 1.2 配置参数详解》https://www.quzuo.net/document/FKTseOpRUdt6、《Galene 1.2 常用 CLI 命令与工具详解》https://www.quzuo.net/document/WNefkRAeTIcR