@vibecape/server
v0.1.1
Published
Vibecape Group、Remote Space 与 Git Smart HTTP 服务。
Downloads
292
Readme
@vibecape/server
Vibecape Group、Remote Space 与 Git Smart HTTP 服务。
服务端复用 Downcity Federation:客户端继续使用已有 Federation 登录,服务端通过 @downcity/city 的 Bureau.identify() 识别 Token 和 userId。本服务不签发另一套账号或 Git 凭证。
启动
服务端由主 vibecape CLI 初始化和启动:
vibecape server init
vibecape server startserver start 默认以后台进程运行并立即归还终端。使用 vibecape server status、restart 和 stop 管理进程;前台调试使用 vibecape server run。PID 与日志保存在 Server 数据目录的 server.pid 和 server.log。
server init 交互式写入 ~/.vibecape/server.env,默认监听
127.0.0.1:4178,数据写入 ~/.vibecape/server。配置文件权限为
0600,Bureau Token 输入时不回显。显式环境变量可覆盖配置文件,便于正式部署。
服务端需要系统中存在 git。
VIBECAPE_REMOTE_URL 是成员访问 API 和 Git repository 时使用的公开地址;它可以与监听地址不同。数据目录包含 SQLite 数据库和 bare repositories,应作为一个整体备份。
权限模型
- Vibecape Server 管理员:创建和维护 Group、强制变更成员与 Space 生命周期;
- Owner:读取、推送,并且可以在 Group 中创建 Space;
- Editor:读取与推送;
- Viewer:只读。
Vibecape App 使用当前用户提交加入申请,Server 管理员在服务端主机审批:
vibecape server group request list <group-id>
vibecape server group request approve <group-id> <user-id>
vibecape server group request reject <group-id> <user-id>App 和普通 Federation 用户不能创建 Group。管理员仍可在 Server 主机上直接维护成员:
vibecape login
vibecape server group create --name "Research Team"
vibecape server group list
vibecape server group member list <group-id>
vibecape server group member add <group-id> <user-id> --role editor
vibecape server group member update <group-id> <user-id> --role viewer
vibecape server group member remove <group-id> <user-id>
vibecape server group transfer-owner <group-id> <user-id>创建命令会输出 https://spaces.example.com/groups/group_... 形式的 Group
URL。用户在 App 中使用该 URL 提交申请,Server 管理员审批后自动成为成员。
未传 --owner 时,CLI 使用 vibecape users 中的当前用户作为 Owner。
服务端仅接受 refs/heads/main 的 fast-forward 更新,拒绝删除 main、force push 和其他分支。
Phase 1 使用普通 Git 保存文本和小型图片。pre-receive hook 会拒绝超过 20 MiB 的单个 blob,避免视频或大型附件进入永久 Git 历史;Git LFS 将在后续阶段提供。
开发验证
pnpm --filter @vibecape/server run typecheck
pnpm --filter @vibecape/server run test
pnpm --filter @vibecape/server run build