PigeonBox 独立部署应用:纯后端薄壳入口(main.go)+ 配置模板 + Dockerfile。不含业务代码——业务全部来自 pigeonbox/core 库。
0.9.0 起"内嵌前端"模式已剔除:前端由同版本的
pigeonbox/frontendnginx 镜像分离提供;core 对缺失的./static优雅降级(探针/API 全正常,SPA 路径 404),单跑也安全。
🗂️ PigeonBox 生态成员仓 · 总览与部署见 装配仓 pigeonbox · 架构图集
打 v* tag 后 CI 自动构建多架构镜像推 ghcr,前后端镜像同版本发布:
| 镜像 | 说明 |
|---|---|
ghcr.io/pigeonbox/server |
纯后端 API(监听 :12345,仅业务) |
ghcr.io/pigeonbox/frontend |
nginx-unprivileged 静态资源 + API 反代(对外统一入口) |
自托管推荐形态:compose 或 Helm 起前后端双容器,frontend 承接全部对外流量(见 charts 与 hub 仓 docs/DEPLOY-COMPOSE.md)。
├── cmd/server/main.go # 信号处理 + bootstrap.Bootstrap() 拉起 core
├── cmd/pb/ # 官方 CLI 客户端(文本/文件分享、本地导入、我的分享管理、p2p 设备直传;API Key 认证)
├── configs/ # config.yaml / config.example.yaml / config.prod.yaml
├── Dockerfile # 两阶段:go-builder → runtime(Go 依赖经 module proxy 拉正式版本)
├── .p2pc-version # 随包 p2pc(设备直传)版本真相源(发布列车管理,勿手改)
└── Makefile
依赖 sibling 目录(checkout 到同一父目录,replace 链互指;或直接用 hub 仓的 go.work):
pigeonbox/ # 工作区根
├── contracts/ # github.com/pigeonbox/contracts
├── core/ # github.com/pigeonbox/core
└── server/ # 本仓库
make run # 起服务(默认 :12345,sqlite)
make test构建上下文是工作区根(仅消费 server/ 子目录;core/contracts 经 go.mod 正式版本从 module proxy 解析,无需本地 replace 链):
docker build -f server/Dockerfile -t pigeonbox-server .. # 在 server/ 内执行
# 或 make docker-buildDockerfile 构建参数 P2PC_VERSION 按 TARGETARCH 从
p2p Releases 拉取 p2pc-<triple>
二进制(附 sha256 校验)装入镜像 /app/p2pc;版本真相源为本仓 .p2pc-version
(发布列车管理)。P2PC_VERSION 缺省为空时跳过安装,镜像优雅降级(设备直传
不可用,其余功能不受影响)。
运行期由 core p2px 域服务调度(spawn /app/p2pc 子进程做数据面),仅
standalone 部署模式可用;管理入口在 admin「系统配置 → P2P」分区的 direct
子段(启用开关/收文件目录/白名单发送根/配额/二进制路径),操作台为独立的
「设备直传」页(含联邦推送邀请面板:待收/认领/推送)。
官方 CLI pb 覆盖直传管理面:pb p2p 八支子命令(status/tasks/send/recv/
cancel/invites/accept/push),走 admin API Key 通道(服务端 AdminOrAdminKey
复核 admin 角色);联邦实例间推送邀请经 pb p2p push <目标地址> <口令> [附言]
或 Web 控制台「设备直传」页操作。
两者是 core 的并列消费方:server 面向通用自托管(纯后端 + 分离前端);fnos 面向飞牛 NAS 应用化(独立仓库,单容器库式调用)。