Acahti v0.16.2
EN中文GitHub自托管

Acahti自托管与管理

安全

Acahti 的信任边界。一个公开网关,私有内核,以人的身份认证的 Agent,以及写入后不会再被取出的密钥。

唯一的公开入口#

实例只暴露一个网关,其余一切保持私有。

公开(经由网关) 私有
Web 应用(/ui,会话 cookie) Forgejo 自身的网页界面和 /api/v1
MCP(/mcp,OAuth 或个人访问令牌) Woodpecker 的界面和 /ci
REST 和 CLI(/acahti/v1) 供执行节点使用的 Woodpecker gRPC 端口
基于 HTTPS 的 Git(/<org>/<repo>.git) PostgreSQL
制品仓库源(/api/packages)

内核的路径经由网关访问时返回 404。产品内容(文档、skill)完全不由实例提供,而是放在本站。

凭据#

凭据 适用于 说明
访问令牌 MCP、REST、CLI、Git、制品 在头像菜单 →「访问令牌」中创建。代表该成员。删除即吊销
OAuth 访问令牌 MCP、REST、Git、制品 成员授权 MCP 客户端后签发给该客户端;有效期 90 天,用刷新令牌续期
账号密码 网页登录、Git、制品、通过 HTTP Basic 访问 REST CLI 从不发送。MCP 不接受。只有当邀请密码由 Acahti 生成时,管理员才能看到它;替换成员自己设置的密码需要显式确认的重置操作
会话 cookie Web 应用、REST 仅限浏览器

在 Acahti 中,SSH 密钥在任何地方都不是凭据。令牌拥有该成员的全部权限;本版本不支持按任务委派权限。Agent 会被告知绝不要把令牌粘贴到聊天中。

密钥#

  • 流水线密钥保存在控制面。值从不被列出或返回;没有读取 API。
  • 只有组织管理员(组织范围)和仓库管理员(仓库范围)可以列出名称或写入值。
  • 流水线步骤只有在其 YAML 中点名某个密钥时才会收到它。
  • 外部系统(仓库源、集群)的凭据以具名密钥保存,从不放进 git 或 with:。

执行#

  • 控制面和「执行节点」是不同的主机。不受信任的流水线代码绝不会在控制面的数据旁边运行。
  • 网关在任务开始前展开官方 pipe;执行节点按收到的内容和注入的环境变量执行。
  • 执行节点通过你的局域网访问网关。切勿把 gRPC 端口暴露到互联网。

合并门禁#

  • 只有 head SHA 上最新的流水线为绿色时,pr_merge 才会成功。
  • 分支保护、仓库权限和团队成员关系仍由人明确制定策略。

局限#

  • 流水线为绿色只代表配置的检查已通过,不代表软件没有缺陷。
  • 受门禁控制的部署(deploy_approve)和成员管理仍需人来审批和处理。

报告漏洞#

请在仓库上使用私密漏洞报告,并附上受影响的版本和最小化的合成复现。不要在公开 issue 中写入凭据或利用细节。

供 Agent 读取: security.md编辑此页