一个基于 Fedify 构建的多租户 ActivityPub 服务器,用于 Ghost。该服务使独立网站能够直接将内容发布到 Fediverse,实现向开放社交网络的网络发布。
所有发往 /.ghost/activitypub/*、/.well-known/webfinger 和 /.well-known/nodeinfo 的请求通过 nginx 代理到该 ActivityPub 服务。其他所有请求则转发到 Ghost。此设置仅在 macOS 上使用 Docker for Mac 和 OrbStack 进行过测试。
tailscale funnel 80 或 ngrok http 80 暴露本地80 端口(不是 2368!),nginx 将在此端口运行ghost/core/config.local.json 路径下创建 config.local.json 文件,配置如下:{
"url":
}
yarn dev && yarn logsyarn dev[!NOTE] AI 助手参考:详见 AGENTS.md,包含完整代码示例指导。
开发者参考:详见/adr目录中的架构决策记录,了解详细设计 rationale。
本服务遵循领域驱动设计(Domain-Driven Design),并采用以下特定模式:
src/
├── account/ # 不可变实体
├── post/ # 正在迁移为不可变实体
├── activity-handlers/ # 基于类的处理器
├── http/api/ # REST 控制器
├── core/ # 共享工具
└── dispatchers.ts # 遗留文件 - 不要在此添加内容
[!WARNING] 1. 数据库查找必须使用 SHA256 哈希 (ADR-0009)
- 禁止使用
where('ap_id', apId)- 它会静默返回空结果!- 必须使用
whereRaw('ap_id_hash = UNHEX(SHA2(?, 256))', [apId])- 适用于:
ap_id、domain(需配合 LOWER)、ap_inbox_url(需配合 LOWER)
[!IMPORTANT] 2. 结果类型需使用辅助函数
- 使用
isError(result)、getValue(result)、getError(result)- 禁止直接解构,如
[error, value]
[!IMPORTANT] 3. 服务必须使用仓库
- 视图可直接查询数据库(读取优化)
- 服务必须通过仓库访问数据(写入路径)
[!IMPORTANT] 4. 依赖注入名称必须匹配
- 参数
accountService→ 注册为'accountService'- 参数
db→ 注册为'db'
[!WARNING] 5. 避免以下反模式
- 向
dispatchers.ts添加内容 → 应创建新的处理器类- 使用
AccountType→ 应使用Account实体- 在服务中直接查询数据库 → 应使用仓库
- 对 AP ID 进行字符串比较 → 应使用哈希查找
有关演示正确模式的完整代码示例,请参见 AGENTS.md。
我们使用 Biome 进行代码格式化和 linting。
如果使用 VS Code,可安装 Biome 扩展获取行内反馈。
要启用保存时自动格式化,需将默认格式化程序设置为 Biome 并在 VS Code 设置中启用 Format on Save。
yarn test 在 Docker Compose 环境中执行测试。docker compose run migrate 或 docker compose run migrate-testing 分别针对开发或测试数据库运行 up 迁移。
如需运行其他命令,可执行 docker compose exec -it migrate /bin/bash 或 docker compose exec -it migrate-testing /bin/bash - 这将进入包含 migrate 二进制文件的 shell,同时提供 MYSQL_DB 环境变量,其格式适用于作为 migrate 二进制文件的 -database 参数。
Copyright (c) 2013-2026 Ghost Foundation - 基于 MIT 许可发布。Ghost 及 Ghost 徽标是 Ghost Foundation Ltd. 的商标。有关可接受使用方式的信息,请参见我们的商标政策。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
不支持 push
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务