适用于Ghost的多租户ActivityPub服务器,基于Fedify构建。此服务使独立网站能够将其内容直接发布到联邦宇宙(Fediverse),实现向开放社交网络的网络发布。
所有发往 /.ghost/activitypub/*、/.well-known/webfinger 和 /.well-known/nodeinfo 的请求通过nginx代理到此ActivityPub服务。所有其他请求转发至Ghost。此设置仅在macOS上使用Docker for Mac和OrbStack测试过。
/.ghost/activitypub/* /.well-known/webfinger /.well-known/nodeinfo
Install from sourcetailscale funnel 80 或 ngrok http 80 暴露本地80端口(不是2368!),nginx将在此端口运行tailscale funnel 80 或 ngrok http 80 暴露本地80端口(不是2368!),nginx将在此端口运行
tailscale funnel 80 ngrok http 80ghost/core/config.local.json 下创建 config.local.json 文件,配置如下:{
"url":
}ghost/core/config.local.json 下创建 config.local.json 文件,配置如下:
config.local.json ghost/core/config.local.json{
"url":
}
yarn dev && yarn logsyarn dev && yarn logs
yarn dev && yarn logsyarn dev。如果已在本地运行Ghost,请确保重启它!yarn dev
yarn dev[!NOTE] AI助手:请参阅AGENTS.md获取包含代码示例的全面指南。开发人员:请参阅
/adr中的架构决策记录了解详细原理。
AI助手:请参阅AGENTS.md获取包含代码示例的全面指南。开发人员:请参阅 /adr 中的架构决策记录了解详细原理。
/adr
本服务遵循领域驱动设计,采用以下特定模式:
src/
├── account/ # 不可变实体
├── post/ # 正在迁移为不可变
├── activity-handlers/ # 基于类的处理器
├── http/api/ # REST控制器
├── core/ # 共享工具
└── dispatchers.ts # 遗留文件 - 请勿在此添加内容
[!WARNING] 1. 数据库查找必须使用SHA256哈希(ADR-0009)
where('ap_id', apId) - 它会静默返回空结果!
where('ap_id', apId)whereRaw('ap_id_hash = UNHEX(SHA2(?, 256))', [apId])
whereRaw('ap_id_hash = UNHEX(SHA2(?, 256))', [apId])ap_id、domain(带LOWER)、ap_inbox_url(带LOWER)
ap_id domain ap_inbox_url[!WARNING] 2. 结果类型需要辅助函数
isError(result)、getValue(result)、getError(result)
isError(result) getValue(result) getError(result)[error, value]
[error, value][!WARNING] 3. 服务必须使用仓储
[!WARNING] 4. 依赖注入名称必须匹配
accountService → 注册为 'accountService'
accountService 'accountService'db → 注册为 'db'
db 'db'[!WARNING] 5. 避免这些反模式:
dispatchers.ts 添加内容 → 创建新的处理器类
dispatchers.tsAccountType → 使用Account实体
AccountType Account有关演示正确模式的完整代码示例,请参阅AGENTS.md。
我们使用Biome进行代码格式化和Linting。
如果使用VS Code,可安装Biome扩展以获取内联反馈。
要启用保存时自动格式化,需将默认格式化程序设置为Biome,并在VS Code设置中启用“保存时格式化”。
Biome Format on Save
yarn test 在Docker Compose堆栈中执行测试。
yarn testdocker compose run migrate 或 docker compose run migrate-testing 分别对开发或测试数据库运行 up 迁移。
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 - 这将进入一个shell,其中包含 migrate 二进制文件以及格式正确的 MYSQL_DB 环境变量,可用作 migrate 二进制文件的 -database 参数。
docker compose exec -it migrate /bin/bash docker compose exec -it migrate-testing /bin/bash migrate MYSQL_DB -database migrate
Copyright (c) 2013-2026 Ghost Foundation - 基于MIT许可发布。Ghost及Ghost徽标是Ghost Foundation Ltd.的商标。有关可接受使用的信息,请参阅我们的商标政策。
适用于Ghost的多租户ActivityPub服务器,基于Fedify构建。此服务使独立网站能够将其内容直接发布到联邦宇宙(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中的架构决策记录了解详细原理。
本服务遵循领域驱动设计,采用以下特定模式:
src/
├── account/ # 不可变实体
├── post/ # 正在迁移为不可变
├── activity-handlers/ # 基于类的处理器
├── http/api/ # REST控制器
├── core/ # 共享工具
└── dispatchers.ts # 遗留文件 - 请勿在此添加内容
1. 数据库查找必须使用SHA256哈希 (ADR-0009)
where('ap_id', apId) - 它会静默返回空结果!whereRaw('ap_id_hash = UNHEX(SHA2(?, 256))', [apId])ap_id、domain(带LOWER)、ap_inbox_url(带LOWER)2. 结果类型需要辅助函数
isError(result)、getValue(result)、getError(result)[error, value]3. 服务必须使用仓储
4. 依赖注入名称必须匹配
accountService → 注册为 'accountService'db → 注册为 'db'5. 避免这些反模式:
dispatchers.ts 添加内容 → 创建新的处理器类AccountType → 使用Account实体有关演示正确模式的完整代码示例,请参阅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 - 这将进入一个shell,其中包含 migrate 二进制文件以及格式正确的 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 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务