@duobox/server
v0.1.1
Published
Duobox Organization、Remote Space 与 Git Smart HTTP 服务。
Downloads
167
Readme
@duobox/server
Duobox Organization、Remote Space 与 Git Smart HTTP 服务。
服务端复用 Downcity Federation 身份,并通过 Federation organizations service 实时验证 Organization Membership。Organization 与成员治理由 Federation 负责;Duobox Server 只保存 Space、Git repository、项目 ACL 与审计记录。
启动
duobox server init
duobox server startserver start 默认以后台进程运行。使用 status、restart 和 stop 管理进程;开发调试或交给 systemd、Docker、Dokploy 管理时使用 duobox server start --foreground。
配置默认写入 ~/.duobox/server.env,数据默认写入 ~/.duobox/server。DUOBOX_REMOTE_URL 是 Organization 访问 API 和 Git repository 的公开地址,必须与 Federation Organization 中的 server_url 一致。服务端需要系统中存在 git。
登录 Organization Owner 账户后,可以发现 Organization 并绑定当前 Server:
duobox login
duobox server organization list
duobox server organization link <organization-id-or-key>权限模型
Federation Organization 角色负责治理:
- Owner、Admin 自动获得 Duobox
manager; - Member 默认获得
viewer; - active Membership 是所有 Space API 和 Git 操作的前置条件。
Duobox 项目角色负责 Space 与 Git 权限:
manager:创建和读取 Space、管理项目 ACL、读取和推送;editor:读取和推送;viewer:只读。
服务器管理员可以维护独立的 Duobox ACL:
duobox server organization access list <organization-id>
duobox server organization access set <organization-id> <user-id> --role editor
duobox server organization access remove <organization-id> <user-id>
duobox server space rename <space-id> --name "New name"
duobox server space archive <space-id>服务端仅接受 refs/heads/main 的 fast-forward 更新,拒绝删除 main、force push 和其他分支。单个 Git blob 上限为 20 MiB。
开发验证
pnpm --filter @duobox/server run typecheck
pnpm --filter @duobox/server run test
pnpm --filter @duobox/server run build