用户
| 账号 | 显示名 | 角色 | 能开哪些项目 |
|---|
加一个人
加完之后在上面那张表里勾他能开哪些项目。
项目
填了仓库地址的项目,客户端能自己拉到本机 —— 那个人不用知道 地址、也不用管目录叫什么名字。没填也行,那他只能自己拉好了再打开。
| id | 显示名 | 仓库 |
|---|
加一个项目
只认 https://… 和 git@主机:路径。
拉取用的是每个人自己机器上的 git 凭据 —— 服务器不存任何仓库密钥,
也就不用担心密钥跟着客户端跑到别人机器上。
harness 从哪儿拉
客户端装 harness 时用这个地址。不填的话客户端不会去猜 —— 它会直说服务器没给,因为猜错了拉下来的是别人的仓库,而那件事看起来完全正常。
新机器装第一次
已经装了的机器不用来这儿下 —— 客户端自己会更新,而且只下差分(一两兆)。 这个整包是给还没装过的机器的。
这个下载地址不需要登录 —— 客户端要能自动取更新,那条路就不能挡。 知道地址的人都下得到。能不能用是另一回事:装完第一屏要填服务器、 用名册上的账号登录,没在名册上的人开不了任何项目。
发版包
| 版本 | 大小 | 发布时间 | 文件 |
|---|
删旧包省磁盘,代价是还停在那一版的人下次更新会重下整包(一百五十多兆, 不是几兆)。而这台服务器不知道谁停在哪一版 —— 客户端不回传这个。 所以下面每一行都能删,但没有哪一行是「肯定没人用」。
出包
这一下会:把服务器上那份仓库拉到最新、按这个版本号打一个包、 发布出去。发布之后,装着客户端的人下次开机就会看到这个新版本。 三到四分钟,中途可以停。
构建输出
模型代理
账号
客户端看不到这些凭据,也选不了用哪个 —— 它们只在这台服务器上。
| id | 显示名 | 引擎 | 状态 |
|---|
放一个账号进来
为服务器单独登录,不要复制本机正在使用的凭据。 同一份订阅登录凭据在两处续期可能互相失效。请用下面的独立目录登录,导入后交给服务器使用。
2 · 在自己的 Windows 电脑上登录
开始菜单搜索并打开 Windows PowerShell,粘贴下面的命令并回车。需要本机已安装 Claude Code;在弹出的浏览器里登录服务器专用账号。
查看登录命令
$env:CLAUDE_CONFIG_DIR = Join-Path $env:USERPROFILE 'xgh-claude-server' claude auth login explorer.exe $env:CLAUDE_CONFIG_DIR
登录完成后会打开凭据目录。下一步选择其中的 .credentials.json。
3 · 导入登录文件
文件只在点击「添加账号」后上传。
也可以粘贴文件完整内容
4 · 给账号起个名字
添加后确认上方账号池开关已开启,再在客户端切换到对应引擎、选择服务器账号。保存成功只代表凭据已入库;发送一条消息成功才代表中转可用。
谁烧了多少
这是账,不是闸 —— 记下来而已,谁都不会因为这张表被拦。 按人限额还没做。
| 谁 | 请求 | 没成 | 上行 / 下行 | token(输入 · 输出 · 缓存读) | 最近一次 |
|---|
最近几笔
不记请求内容 —— 没有消息、没有工具、没有模型名。 网关那一层本来就不拆包,这儿要是开始拆,那条就等于没有了。
| 什么时候 | 谁 | 号 | 状态 | 耗时 | 上游那条路 |
|---|
导出 / 导入
导出的这份带密码哈希,跟 users.json 一样敏感 ——
它足以让人拿去离线爆破。别丢进聊天工具,别提交进版本库。
密码必须是 scrypt$… 哈希。手写明文的话那个人永远登不进来,
而且不会报错 —— 所以这里直接拦住。
自动备份
每次改名册之前自动存一份,留最近 10 份。要恢复的话在服务器上把它拷回
users.json —— 后台不做一键恢复:那一下会覆盖所有人的密码,
值得多走一步。
| 文件 | 大小 | 时间 |
|---|