Hubzilla 11.4.2 介绍与选型指南

Hubzilla 11.4.2 定位、Zot 联邦架构、渠道/权限模型、功能特性与 Fediverse 同类平台选型对比,含 MIT 许可、版本节奏与实测限制清单(PHP 8.3 + MariaDB 11 环境实测)

HubzillaHubzillaZot联邦平台PHP 应用Ubuntu24.042026/11/02

Hubzilla 介绍与选型指南

目标:回答「Hubzilla 是什么、架构怎么组织、能做什么、适合谁、和 Mastodon/Friendica 等同类平台怎么选」。本文所有版本号、表数量、协议响应、许可声明均来自 Hubzilla 11.4.2 在 Ubuntu 24.04 宿主机(PHP 8.3.36 + Apache/2.4.69 + MariaDB 11.8.9)实测环境的一手采集,社区信息检索日期 2026-11-02。

一、环境信息

项目实测值
Hubzilla11.4.2(boot.php 中 STD_VERSION 常量实测为 '11.4.2')
数据库版本标记config[system][db_version] = 1265(安装完成后实测)
tag 提交时间2026-10-20T06:47:18Z(commit 95a57660bf2a,经 gitlab.com/fork/hubzilla/core tags API 实查)
运行时PHP 8.3.36 + Apache/2.4.69 (Debian)
数据库MariaDB 11.8.9-MariaDB-ubu2404,业务库 hubzilla,安装后实测 83 张表
源码包core-11.4.2.tar.gz,74.7 MB / 14560 个文件
开源许可MIT(LICENSE 文件实测,Copyright (c) 2019 Hubzilla Community)
站点协议Zot(核心),另提供 ActivityPub/Diaspora/OStatus 等接入
演示站点http://10.89.72.10:8148(单节点,`directory_mode` 实测调为 STANDALONE=256)
演示账号admin / q1w2e3r4

⚠️ 网络说明:本文实测期间官方源码站 framagit.org 从本机直连与代理均超时不可用,源码 tar 包实际改由 gitlab.com/fork/hubzilla/core 镜像(代理 192.168.1.72:7897)下载;截至写作时该降级仍然有效,选型评估若需查 framagit 上的 Issues/CI 状态请预留网络渠道。

二、软件概述

2.1 项目定位

Hubzilla 官方 README(README.md,实测原文)将其定义为:

"Hubzilla is a general purpose communication server integrated with a web publishing system and a decentralised permission system."

拆开看,它是三类系统的合体:

  1. 通用通信服务器:站内/跨站的帖子流(stream)、私信(mail)、聊天(chat)、评论与点赞;
  2. Web 发布系统:个人网站/页面(webpages)、Wiki、相册(photos)、文件存储(disk/storage)、日历(calendar)、笔记(notes)——实测 app/ 目录内置 33 个系统应用(affinity、bookmarks、calendar、carddav、channel、chat、connections、directory、notes、oauth、photos、post、search、storage、webpages 等,ls app/ 实测清单);
  3. 去中心化权限系统:内容可见性由发布者本地的权限目录(permcat)决定,跨服务器、跨协议同样生效——这是 Hubzilla 与多数联邦平台最大的差异点。

官方口号式的表述是「社交网络 + 云存储 + 博客/论坛 + CMS,全部在一个统一的隐私框架内,且完全去中心化」。用户可以在 A 服务器注册渠道(channel),随后把渠道**克隆(clone)/托管(host)**到 B 服务器,连接关系与数据跟随渠道迁移,实现「换服务器不丢社交关系」。

2.2 版本节奏与社区活跃度

实测 CHANGELOG 文件头部与 gitlab tags API 得到的近期发布节奏(检索日期 2026-11-02):

版本发布日期性质
11.02026-01-30大版本(DB build 升级到 12xx 系列)
11.22026-03-26功能小版本
11.42026-08-07功能版本(DBA upsert、时区可选日志、fetchable lists 等)
11.4.12026-09-09修复版(settings 回归、pubcrawl/gallery 修复)
11.4.22026-10-20当前最新稳定版(文章评论显示、事件地点存储等 9 项修复)

解读:11.x 系列保持「约 2 个月一个功能版本、修复版随发」的节奏,11.4.2 距 11.4 仅 2 个月,说明维护活跃;CHANGELOG 中 11.4 起条目按 Features/Fix 分组,工程化程度较高。项目由 Hubzilla Community 志愿维护(README "Who Are We?" 一节),无单一商业公司背书,选型时应把「志愿者社区维护」列入可持续性风险项。

2.3 技术栈与开源许可

  • 语言/框架:PHP(无独立前端框架,Smarty 风格模板 + view/ 主题目录),入口 index.php + 路由模块 Zotlabs/Module/*.php(实测目录含 Admin.php、Setup.php、Regate.php 等数百个模块文件);
  • 数据库:MariaDB/MySQL(db_type=0)或 PostgreSQL(db_type=1,实测 .htconfig.php 注释),驱动 mysqli/pdo_mysql;
  • PHP 扩展需求:intl、gd(jpeg/freetype)、mysqli、pdo_mysql、zip、gmp——实测自建镜像 docker-php-ext-install intl gd mysqli pdo_mysql zip gmp 安装通过后安装向导环境检查全绿;
  • 许可:MIT。实测 LICENSE 前 8 行:
Copyright (c) 2019 Hubzilla Community

All rights reserved.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell

💡 技术拓展:自由软件许可常见选项对比——

许可传染性商用限制典型项目
MIT / BSD无几乎无Hubzilla、Friendica(AGPL 除外)
GPL v3强(衍生必须开源)闭源衍生不可Mastodon(实为 AGPL)
AGPL v3强 + 网络服务条款SaaS 化必须开源Mastodon、Mattermost

本文对象 Hubzilla 采用 MIT:可闭源二开、可商用分发,是同类联邦平台中许可最宽松的一档,对「企业内部私有社交/协作平台二开」友好。

三、核心架构

3.1 整体架构与进程形态

Hubzilla 是经典 PHP 单体应用 + CLI 工具集 + 守护进程三层结构:

Apache (mod_rewrite 路由) ──► index.php ──► Zotlabs/Module/<页面>.php
                                   │
                                   ├─► include/*.php(auth/account/network 等函数库)
                                   ├─► Zotlabs/Lib/*(Mailer、Config、QueueWorker 等类库)
                                   ├─► DB: MariaDB/PostgreSQL(实测 83 张表,含 config/pconfig/account/channel 等)
                                   └─► 文件系统 store/(照片缩略图、附件,实测 storageconv 默认 filesystem)

CLI:util/config、util/pconfig、util/addons、util/update_db 等(详见 CLI 篇)
守护:Zotlabs/Daemon/Master.php 统一调度 Cron/Poller/Deliver/Expire 等队列任务

实测安装完成后 docker exec hubzilla-11.4.2-db mariadb -uroot -pq1w2e3r4 -e "select count(*) from information_schema.tables where table_schema='hubzilla'" → 83。

3.2 渠道(Channel)模型与去中心化权限

Hubzilla 的身份单位不是「用户」而是渠道(channel):

  • account 表存登录凭据(实测注册后 account_id=4, account_roles=4096 即 ADMIN 位);
  • channel 表存渠道本体(实测 channel_id=2, channel_address=admin, channel_account_id=4);
  • 一个账号可建多个渠道,渠道可克隆到多台服务器(hubloc 表记录渠道在各节点的部署位置);
  • 权限体系:pconfig 表 perm_limits 分类实测为每个权限位(view_stream/send_stream/post_wall/chat/delegate 等 17 项)设置了上限值(如 post_wall=128),站点默认权限串实测 config[system][perms] 含 view_stream … delegate 17 项。

权限目录(permission group)在本地渠道定义,发布内容时绑定权限组;跨服务器投递时由 Zot 协议把权限判定所需的数据一并传递,远端按发布者本地策略执行可见性——这就是 README 所说 "permissions work completely invisibly - even with channels on different servers" 的实现路径。

3.3 联邦协议层:Zot

Hubzilla 原生协议是 Zot(实测 network_to_name() 函数库中 NETWORK_ZOT 与 ActivityPub/Diaspora/OStatus 等并列),核心特征:

  • 基于 RSA 密钥对签名(实测 config 表 pubkey/prvkey 为 4096 位 RSA;site_crypto 默认加密套件清单实测源码 include/crypto.php L185 共 9 项,首两项 aes256ctr.oaep、camellia256cfb.oaep);
  • 支持服务端代投:离线渠道的消息由本服务器排队(outq 表,管理面板实测「Message queues」计数),上线后补投;
  • 支持渠道跨服务器迁移后的连接关系保持。

💡 技术拓展:Fediverse 主要联邦协议对比——

协议采用平台签名/安全模型离线投递权限粒度
ZotHubzilla(原生)、Red MatrixRSA 信道签名 + 加密算法协商支持(代投队列)发布者本地权限组跨站生效
ActivityPub (W3C)Mastodon、Pixelfed、LemmyHTTP 签名(RSASSA-PKCS1)队列重试收件人集合枚举(to/cc)
Diaspora*Diaspora*、pod 联邦公钥签名 XML有限公开/有限/私密三级
OStatus/Atom旧版 GNU SocialSalmon/PuSH弱粗

本文平台 Hubzilla 以 Zot 为核心、同时经 adapter 模块接入 ActivityPub 等网络;选型时若目标对端只有 Mastodon,需确认 Hubzilla 的 ActivityPub 适配层已启用(管理面板 feature flag)。

实测对外端点(curl 一手回显):

$ curl -s http://10.89.72.10:8148/.well-known/host-meta
<?xml version="1.0" encoding="UTF-8"?>
<XRD xmlns="http://docs.oasis-open.org/ns/xri/xrd-1.0">
  <Link rel="lrdd" template="http://10.89.72.10/xrd/?uri={uri}" type="application/xrd+xml" />
</XRD>

$ curl -s "http://10.89.72.10:8148/xrd/?uri=acct%3Aadmin%4010.89.72.10" | head -8
<?xml version="1.0" encoding="UTF-8"?>
<XRD xmlns="http://docs.oasis-open.org/ns/xri/xrd-1.0">
  <Subject>acct:admin@10.89.72.10</Subject>
  <Alias>http://10.89.72.10/channel/admin</Alias>
  <Alias>http://10.89.72.10/~admin</Alias>
  <Link rel="http://schemas.google.com/g/2010#updates-from" type="application/atom+xml" href="http://10.89.72.10/ofeed/admin" />
  <Link rel="http://webfinger.net/rel/profile-page" type="text/html" href="http://10.89.72.10/channel/admin" />
  <Link rel="http://portablecontacts.net/spec/1.0" href="http://10.89.72.10/poco/admin" />

$ curl -s http://10.89.72.10:8148/api/z/1.0/version
"11.4.2"

实测同时确认:/.well-known/webfinger(JRD 形式)返回空、/.well-known/nodeinfo 与 /statistics 返回 404——Hubzilla 走 XRD 传统发现路径,不提供 Mastodon 生态惯用的 nodeinfo 统计端点,接入第三方实例统计聚合工具前需知悉。

3.4 目录服务器与站点角色

Hubzilla 的「实例发现」依赖目录服务器体系,boot.php 实测定义四种模式常量(DIRECTORY_MODE_NORMAL/SECONDARY/PRIMARY/STANDALONE,位标志组合,STANDALONE=0x0100=256):

模式含义适用
NORMAL(默认)目录客户端,自动寻找目录服务器普通个人站
SECONDARY目录缓存/镜像区域镜像
PRIMARY主目录服务器(每 realm 一个)运营公共目录
STANDALONE (256)离线/私有网络,不依赖外部目录企业内网、隔离环境

实测默认 directory_server 指向 https://hub.netzgemeinde.eu(boot.php 中 DIRECTORY_FALLBACK_MASTER 常量硬编码 + 首次引导写入 DB),该值可在管理面板或 util/config system directory_server 修改。

四、功能特性

4.1 内容形态与社交能力

实测 app/ 33 个系统应用覆盖的能力面:

  • 社交流:post/stream(发帖、评论、点赞、转发),chat 聊天室;
  • 发布:webpages(个人网站页面)、notes(长文/文章)、photos(相册)、calendar(日历事件)、wikka/wiki(维基);
  • 协作与存储:disk 文件管理 + storage 配额(dmkdir/storageconv 实测工具支撑)、carddav/dav(通讯录与日历的 CalDAV/CardDAV 端点,实测 Zotlabs/Module/Dav.php、Cdav.php);
  • 账号与连接:connections(连接管理)、directory(目录检索)、invite(邀请注册)、oauth/oauth2(第三方授权登录)、tokens(应用密码);
  • 数据主权:uexport(用户数据导出)、渠道克隆/托管(util/connect 实测 usage:util/connect channel_id|channel_address channel[@hub])。

4.2 隐私与访问控制

  • 站点访问策略实测四值:ACCESS_PRIVATE / ACCESS_PAID / ACCESS_TIERED / ACCESS_FREE,向导默认写入 ACCESS_PRIVATE(.htconfig.php 实测),即默认「注册可进但不公开列目录」;
  • 注册策略三值:REGISTER_OPEN / REGISTER_APPROVE / REGISTER_CLOSED(实测向导写入 REGISTER_OPEN);
  • 渠道级权限组 + 权限位上限(pconfig.perm_limits 实测);
  • 邮件验证开关 verify_email 实测默认 1(开启),可经 util/config system verify_email 0 关闭。

4.3 扩展机制:addon 与主题

  • addon 插件:独立仓库分发,核心源码包不含 addon/ 目录(实测 ls addon 报 No such file or directory)——需先用 util/add_addon_repo <repo_url> <nickname> 添加插件仓库、util/addons install <name> 安装(实测 usage 输出);管理面板支持逐项启停;
  • 主题:默认 redbasic(实测 .htconfig.php theme='redbasic'、allowed_themes=redbasic),主题仓库经 util/add_theme_repo 添加;
  • hook 体系:Zotlabs/Lib/Mailer.php L60 实测通过 call_hooks('email_send', $this->params) 允许插件接管发信——即存在邮件插件(如 PHPMailer/SMTP 插件)可替换默认 mail() 通道。

五、快速开始(最小可用路径)

5.1 官方硬性要求

实测安装向导第一步的环境检查项(浏览器访问 /admin 安装入口后逐项打勾):

  1. PHP ≥ 8.0(实测 8.3.36),扩展 intl/gd/mysqli/pdo_mysql/zip/gmp;
  2. Apache mod_rewrite 可用(a2enmod rewrite + .htaccess,实测向导提示 Url rewrite 检查通过);
  3. MySQL/MariaDB 或 PostgreSQL 服务端与账号;
  4. 站点根目录可写(安装向导需生成 .htconfig.php,实测生成成功);
  5. 一个可用的邮件发送通道(实测为注册流程硬依赖,见 6.2)。

5.2 两条官方安装路径

  • 路径 A:传统 LAMP 手工安装——解压源码到 Web 根目录、建库、浏览器访问站点走 4 步安装向导(数据库→站点设置→管理员→完成),官方文档 doc/en/Installation_using_docker.md 与 install/INSTALL.txt 均有描述;
  • 路径 B:Docker——官方文档明确推荐社区镜像 ghcr.io/skprg/hubzilla-docker(实测 doc/en/Installation_using_docker.md 原文);若需完全掌控运行时,也可基于 php:8.3-apache 自建镜像。

本专栏的完整 Compose 编排(含 MariaDB 与本地邮件测试通道)实测过程见 《Hubzilla Docker Compose 部署指南》。

5.3 初始化要点(两路径通用)

实测安装向导第 4 步成功页原文两条关键提示:

  1. Installation succeeded!——.htconfig.php 已生成;
  2. IMPORTANT: You will need to [manually] setup a scheduled task for the poller——Hubzilla 不自带定时任务,必须手工配置 cron 运行 php Zotlabs/Daemon/Master.php Cron,否则收信投递、过期清理、每日任务全部停摆(实测命令回显 rc=0 静默成功)。

注册管理员渠道实测走 /register → /regate/<hex>a 两步(ZAR 注册流程,输入 6 位 acpin 确认),成功后实测 account_id=4、account_roles=4096(ADMIN)、channel_address=admin。登录名可用渠道昵称(实测 admin 登录 302 成功;直接填注册邮箱因 account_email 存内部标识而失败,属已知行为)。

六、适用场景与限制

6.1 适用场景

  1. 个人数字主权:一个渠道 = 社交 + 博客 + 网盘 + 维基 + 日历,替代多个 SaaS;
  2. 小团队私有协作站:MIT 许可可闭源二开,STANDALONE 目录模式可完全离线运行;
  3. 联邦枢纽:经 Zot/ActivityPub/Diaspora 适配层与多网络互通;
  4. 渠道托管服务:运营公共 hub 为他人托管渠道(ACCESS_TIERED/ACCESS_PAID 商业模型内建)。

6.2 已知限制(实测为证)

  1. 注册硬依赖邮件成功:实测无 MTA 时 send_reg_confirmation_email_from_register() 失败导致账号创建整体回滚(zar.log 实录 ZAR1238E Account creation error),必须配好 SMTP/MTA 才能完成注册——这是新站最常见的卡点;
  2. 管理面板对公网有隐性依赖:/admin 摘要页实测调用 get_repository_version() 抓取 framagit.org 原始文件且默认 curl 连接超时 30 秒,网络不可达时页面挂起 25-40 秒(实测复现),需调低 curl_connecttimeout 或放行出网;
  3. 无 nodeinfo/statistics 公开统计端点(实测 404),实例监控需走自建脚本或 API;
  4. addon 不在核心包:addon/ 实测为空目录,插件需另配仓库源;
  5. 官方主站网络可达性差:实测期间 framagit.org 直连与两路代理均超时,源码与 Issue 跟踪需走 gitlab.com 镜像;
  6. 学习曲线陡:渠道/克隆/权限目录概念多,管理员需要理解 Zot 拓扑才能用好联邦能力。

七、同类选型对比

7.1 Fediverse 主流自托管平台量化对比(信息检索日期 2026-11-02)

维度Hubzilla 11.4.2Friendica 2026.05MastodonLemmy
许可MIT(实测 LICENSE)AGPL-3.0AGPL-3.0(网络条款敏感)AGPL-3.0
语言/运行时PHP 8.3 + MariaDB/PGPHP 8.x + MariaDBRuby + PostgreSQLRust + PostgreSQL
核心协议Zot(+AP/Diaspora 适配)ActivityPub + Zot 兼容层ActivityPubActivityPub
内容形态社交流+博客+维基+网盘+日历+聊天社交流+论坛+事件+相册短帖+长文(Article)+媒体论坛(社区)+链接聚合+评论
身份模型渠道可多服务器克隆/迁移账号+多昵称单实例账号单实例账号
跨站权限发布者本地权限组跨站生效部分(权限组)to/cc 收件人枚举社区级
版本节奏(实测/实查)~2 个月/版(11.0→11.4.2 九个月五版)约季度版高频(月级)月级
管理复杂度高(cron+邮件+目录模式需理解)中中(Sidekiq/Redis 多进程)低-中

解读:Hubzilla 的差异化在渠道可迁移 + 跨站权限 + MIT 许可三点;代价是功能面大而概念多、初始化依赖邮件与 cron 的配置成本最高。纯时间线社交选 Mastodon,论坛化选 Lemmy,「全家桶 + 数据主权」才选 Hubzilla。Friendica 与 Hubzilla 同属 red 系(同为 PHP/MariaDB、兼容 Zot 工具链),部署体验最接近,可参考 《Friendica 介绍与选型指南》。

7.2 「如果…则…」选型建议

  • 需要一个平台承载社交+网盘+维基+日历且团队有 PHP 运维能力 → Hubzilla;
  • 需要闭源二开或企业内部私有部署(许可不可传染)→ Hubzilla(MIT)是同类中唯一宽松许可的主流选项;
  • 只需要时间线 + 与 Mastodon 生态互通 → Mastodon 更轻;
  • 想要 red 系体验但不需要渠道克隆 → Friendica 上手更快;
  • 目标是论坛/链接聚合 → Lemmy。

7.3 版本兼容矩阵小结(实测)

依赖官方要求实测验证版本
PHP≥ 8.0(11.x 系列)8.3.36 全绿
数据库MySQL 5.7+/MariaDB 10.3+ 或 PostgreSQL 9.5+MariaDB 11.8.9(83 表建库成功)
Web 服务器Apache(mod_rewrite)/nginxApache 2.4.69
升级路径11.0+ 可直接更新至 11.4.2(util/update_db 实测 DB up to date: 1265)—

八、参考链接

Hubzilla 11.4.2 介绍与选型指南 - Quzuo