Mobilizon 介绍与选型指南

Mobilizon 5.2.4 认知篇:Framasoft 联邦化活动与群组管理平台的定位、Elixir/OTP26+PostgreSQL/PostGIS 架构(无 Redis)、功能与联邦能力实测、资源占用(~526MiB)、社区状态与 Gancio/Meetable/Framadate 量化选型对比及纠偏清单(实测日期 2026-11-02)

MobilizonMobilizonActivityPub联邦平台自托管活动管理2026/11/02

Mobilizon 介绍与选型指南

定位一句话:Mobilizon 是 Framasoft 出品的自托管、联邦化(ActivityPub)活动与群组管理平台,用 Elixir/Phoenix 编写、以 PostgreSQL+PostGIS 为唯一持久化依赖,面向"多个组织/群组在一套实例上发布活动、跨实例互相订阅传播"的场景。本文基于 Mobilizon 5.2.4(2026-11-02 实测取证)给出功能面、架构、资源占用、社区状态与量化选型对比。部署实操见同专栏《Mobilizon Docker Compose 部署指南》,参数与 CLI 分别见《Mobilizon 5.2.4 配置参数详解》《Mobilizon 5.2.4 常用 CLI 命令与工具详解》。

一、Mobilizon 是什么

Mobilizon 由法国非营利组织 Framasoft(Framadate、PeerTube 同一家族)开发,目标是替代 Meetup/Eventbrite 类中心化活动平台。核心对象模型:

对象说明
Instance(实例)一个自托管站点,有名称、描述、注册策略、管理员
Person(个人)用户账号,拥有一个 profile actor(@username)
Group(群组)由成员管理的组织实体(如"某某协会"),是活动的主要发布主体
Event(活动)归属于某个 actor(个人或群组),含时间、地点(地理编码)、图片、参与设置
Participant(参与者)对活动的参与记录,带角色(CREATOR/MODERATOR/ADMINISTRATOR/PARTICIPANT/REJECTED…)与确认状态

与"活动日历"类工具(Gancio 等)最大的差异在于:群组是一等公民 + 整个对象模型都是 ActivityPub actor,即活动、群组、个人都能被 Mastodon、PeerTube 等联邦网络关注与转发。

功能清单(5.2.4)

  • 活动管理:创建/编辑/取消活动,单场与系列活动,参与者管理与审批,参与名单导出(实测配置项支持 CSV / PDF / ODS 三种格式,见 config.exs 模板 exports 段)。
  • 群组协作:多管理员、成员角色(ADMIN/MODERATOR)、群组页与活动列表;实测 GraphQL 里群组活动可见性/加入选项枚举 EventJoinOptions={EXTERNAL,FREE,INVITE,RESTRICTED}。
  • 联邦:实例可被 PeerTube/Mastodon 关注,支持 Relay(中继订阅,mobilizon_ctl relay follow/accept 实测存在);.well-known/nodeinfo、webfinger、actor/outbox 全链实测通过。
  • 媒体:本地上传器(可配远程),孤儿媒体清理任务,图片处理过滤器(Dedupe/Optimize)。
  • 地理编码:可插拔地址服务(Nominatim/Addok/Photon/GoogleMaps/MapQuest/Mimirsbrunn/Pelias/Hat),PostGIS 支撑附近活动查询。
  • 反垃圾:Akismet 与 Keyword 关键词反垃圾(5.2.4 新增,docs configure 页明确标注 "Added in Mobilizon 5.2.4"),另有 maintenance.detectspam 任务。
  • 管理面:Web 管理后台 + GraphQL API(/api)+ mobilizon_ctl CLI;实例名/描述/注册开关等可在管理 UI 内配置,config 文件仅作 fallback。
  • 其他:实例级公开 feeds(enable_instance_feeds)、全局搜索、匿名参与、可选 Matomo/Sentry 前端分析、Web Push。

二、版本与镜像现状(2026-11-02 实查)

  • 最新稳定版:5.2.4;预发布 5.2.5-RC.1(镜像 tag 已出现,不建议生产)。
  • 镜像 tag 实测列表(docker.1ms.run/v2/kaihuri/mobilizon/tags/list):5.1.4, 5.1.5, 5.2.0, 5.2.1-beta1, 5.2.2, 5.2.3, 5.2.3-arm64, 5.2.4, 5.2.4-amd64, 5.2.4-arm64, 5.2.5-RC.1(+amd64/arm64), latest。
  • 纠偏①(重要):官方文档 "Further Reading" 仍写 framasoft/mobilizon,但该 Docker Hub 镜像已废弃——实测镜像源上 framasoft/mobilizon 所有 tag 均 404;现行镜像为 kaihuri/mobilizon(文档正文首句即 "run the kaihuri/mobilizon docker image")。
  • 纠偏②:Mobilizon 没有 Redis 依赖,只需 PostgreSQL(≥15,带 PostGIS)。后台任务队列用 Oban(跑在 PG 上),这是它与 PeerTube/Mastodon 等 AP 项目的一个显著运维差异(少一个中间件)。
  • 版本佐证链:docs.mobilizon.org configure 页 "Added in Mobilizon 5.2.4"、epiktistes.com 2026-06 发布帖、镜像内 VERSION=5.2.4 三路交叉一致。

三、技术架构

层实现实测证据
语言/运行时Elixir 1.16.3 / OTP 26(erts-14.2.5.15)容器日志与镜像内版本目录
Web 服务器Bandit 1.12.0(纯 Erlang,非 Cowboy)启动行 Running Mobilizon.Web.Endpoint with Bandit 1.12.0 at 0.0.0.0:4000
Web 框架Phoenix(Mobilizon.Web)—
APIGraphQL,路径 /api实测 login/createEvent/joinEvent 全链
后台任务Oban(PostgreSQL 队列:search/mailers/background/default + periodic workers)日志 Oban peer became leader
数据库PostgreSQL 15 + PostGIS 3.4扩展实测:postgis, postgis_topology, postgis_tiger_geocoder, fuzzystrmatch, pg_trgm, unaccent, plpgsql
前端Vue SPA(构建产物随镜像)GET / 返回 2499B SPA 壳,<title> 渲染实例名
邮件Swoosh SMTPconfig 模板 Mobilizon.Web.Email.Mailer
认证Guardian JWT(accessToken/refreshToken)GraphQL login 实测返回 sub "User:1"

架构血统:Mobilizon 脱胎于 PeerTube 代码族——实测活动 outbox 的 @context 里同时出现 schema.org(sc:)、mz: 扩展与 joinpeertube.org/ns#,是这一历史的直接证据。

联邦协议面(实测):

  • /.well-known/nodeinfo → 2.0/2.1 links;software=Mobilizon 5.2.4,protocols=[activitypub],openRegistrations=true,services.outbound=[atom1.0]。
  • /.well-known/webfinger?resource=acct:g25admin@… → subject/aliases/self + ostatus subscribe template(/interact?uri={uri},即 Mastodon 可从活动页直接关注)。
  • Accept: application/activity+json 请求 /events/<uuid> → 返回标准 AS Event 对象(attributedTo 指向群组 actor)。

四、资源占用与部署形态

  • 官方 FAQ 口径:1 CPU / 512MB 内存即可运行(小实例)。
  • 实测(本批次 5.2.4 compose 双容器,空载+少量数据):docker stats 显示 mobilizon 353MiB + db 173MiB ≈ 526MiB,与 FAQ 口径吻合;镜像体积 mobilizon 2.16GB + postgis 844MB。
  • 持久化只有两样:PG 数据卷 + uploads 目录(备份 = PG dump + /etc/mobilizon/config.exs + uploads,FAQ 明确)。
  • 安装路径三选一:
    1. Docker Compose(推荐,官方 compose 仓库 framagit.org/kaihuri/mobilizon-docker,entrypoint 自动等待 DB→建扩展→migrate→启动,实测零手工迁移);
    2. Release 二进制 + systemd(mobilizon_ctl instance gen 交互生成 config.exs 与建库 SQL);
    3. 从源码编译(Elixir/mix,不推荐常规用户)。
  • 反向代理官方提供 nginx/apache 模板(镜像内 /support/ 实测存在)。

五、社区与项目状态(查询日期 2026-11-02)

  • 主仓库在 Framagit(Framasoft 自有 Git 平台)。纠偏③:GitHub 上 JoinMobilizon/Mobilizon 已不可达(api.github.com 返回 404),搜索仅见 2021 年的陈旧 fork(如 burning-timber/mobilizon-docker)——查 issue/star 数据不要再去 GitHub。
  • 文档站 docs.mobilizon.org 活跃:首页 Last update 2026-10-05,configure/reference 页 2026-09-18,docker 安装页 2026-05-07。
  • Framasoft 官方演示实例 mobilizon.fr 在线(搜索快照含 2026-10/11 活动),可直接体验。
  • 生态位:Framasoft "CHATONS" 去中心化产品矩阵成员(Framadate=投票、Mobilizon=活动、PeerTube=视频),法语社区活跃、中英社区相对小。

六、选型对比

6.1 与同赛道自托管组件量化对比

维度Mobilizon 5.2.4Gancio 1.28.2(专栏 1356)Meetable(专栏 1368)Framadate 1.1.19(专栏 1350)
定位群组+活动+联邦社区活动日历/发布会议/聚会聚合站投票排期
技术栈Elixir/OTP26Node.jsPHP/LaravelPHP
数据库PostgreSQL+PostGISSQLiteMariaDB(+Redis)MySQL
ActivityPub 联邦原生(actor/relay/nodeinfo 全链)无无(webmention/iCal)无
群组/多组织者一等公民弱(单一日历)中(host 概念)无
参与者管理/导出角色+审批+CSV/PDF/ODS报名字段有限RSVP无
地理检索PostGIS 附近查询基础基础无
内存实测~526MiB(双容器)低(Node+SQLite)中(四容器)低
适合组织化、需跨站传播个人/小社区轻量日历极客聚会聚合凑时间

互链:Gancio 认知篇见 《Gancio 介绍与选型指南》;Meetable 见 《Meetable 介绍与选型指南》;Framadate 见 《Framadate 1.1.19 介绍与选型指南》。

6.2 与中心化服务对比

Mobilizon 自托管Meetup/Eventbrite
数据主权完全自有平台所有
触达可借联邦网络(Mastodon 用户即受众)平台内流量
成本一台 VPS + 运维抽成/订阅费
报名支付无内建支付有

6.3 选择建议

  • 选 Mobilizon:协会/社群/活动组织需要多群组协作发布、希望活动被 Mastodon/PeerTube 网络看到、需要参与者名单管理与导出、接受 Elixir+PG 运维面。
  • 不选:只要一个轻量活动日历(Gancio 更省);只要投票凑时间(Framadate/Bitpoll);需要支付售票(转 Eventbrite/自研);服务器内存 <1GB 且并发紧张(对比之下 Gancio 更合适)。
  • 日历同步需求(CalDAV)不属于 Mobilizon 赛道,见 Radicale/Baïkal 类方案。

七、上手前必须知道的坑(本批次实测纠偏汇总)

  1. 镜像名:用 kaihuri/mobilizon,别按旧文档拉 framasoft/mobilizon(已 404)。
  2. 没有 Redis:任何"Mobilizon 需要 Redis"的描述都是过时/错误,依赖只有 PG+PostGIS。
  3. CLI 名字:管理工具是 mobilizon_ctl(不是 mobilizon.cli);Release 安装初始化用 mobilizon_ctl instance gen,Docker 路径 entrypoint 自动 migrate。
  4. CLI 子命令与文档不一致:文档写 media.clean_orphan,5.2.4 实测为 media.cleanorphan;文档 CLI 页未列的 maintenance.testemails、relay.accept 实测存在;任务书设想的 geoip、addresses 任务不存在。
  5. GitHub 不是主仓库:issue/star/版本发布以 Framagit 与 docs.mobilizon.org 为准。
  6. GraphQL 分页字段是 total/elements(不是 Spring 风格 content/totalElements);createEvent 必须 organizerActorId 且组织者需有群组权限(个人直接代发群组活动会被拒)。
  7. arm64 部署:官方文档建议用 nickblah/postgis 替代 postgis 官方镜像。

八、小结

Mobilizon 是自托管活动管理里唯一把"群组组织 + 活动 + ActivityPub 联邦"做全的成熟方案:5.2.4 版本线活跃(docs 更新至 2026-10)、资源门槛低(~512MB)、运维依赖极简(只有 PG)。代价是 Elixir 技术栈在排障资料上的社区规模不如 PHP/Node 系。若你的场景是"组织对外发活动、希望被联邦网络传播",它是当前首选;下一步实操请读《Mobilizon Docker Compose 部署指南》。


取证说明:本文全部实测数据来自 2026-11-02 在 Ubuntu 24.04 / Docker 环境部署的 kaihuri/mobilizon:5.2.4-amd64 实例(HTTP/GraphQL/CLI/联邦全链路验证),网络受限环境下镜像经 docker.1ms.run 拉取;官方文档快照与取证细节见批次 evidence 记录。

Mobilizon 介绍与选型指南 - Quzuo