第一次进入控制台

平台启动后,先完成几项必要设置。现在不用把所有外部系统一次接完;能登录、能创建项目空间,就可以继续准备运行环境。

登录或初始化

完整 Compose 默认以生产模式启动 API,不会创建固定开发管理员。第一次进入时需要使用部署环境中的 BOOTSTRAP_TOKEN 初始化首个管理员;只有本地开发环境显式设置 APP_ENV=development 时,才会显示开发账号提示。

本地账号登录和首次管理员初始化都会创建最长 24 小时的服务端会话。“保持登录”默认关闭,此时 session cookie 不写持久化期限,关闭浏览器后即失效;只有在可信设备上主动勾选后,平台才会额外创建按用户隔离、绝对有效期 30 天的 HttpOnly remember cookie。会话过期后,从最近账号中选择用户会轮换同一 token family 内的 remember token 并创建新会话,但轮换不会延长最初的 30 天期限,也不会把 remember 恢复时间当成一次新的密码/OIDC 主认证。每个 family 只保留最新 session;旧 token 被再次使用时,平台会把它视为重放并撤销整个 family 关联的 remember token、会话和 Step-up assertion,从 remembered session 退出也会撤销该 family。浏览器本地最多只保存 3 个账号的头像和展示信息,不保存密码、Token 或 session cookie。账号禁用、密码变更或角色变化会撤销该账号的相关认证状态。

平台中的每个人都对应同一张用户记录,邮箱密码和 OIDC 只是这个账号可以绑定的不同登录方式。OIDC 首次登录不会再创建一类独立的“OIDC 用户”;同一邮箱可以继续绑定外部身份,也可以在策略允许时补设本地密码。解绑最后一个 OIDC 身份前,账号必须已经有其他可用的登录方式,避免把自己锁在平台外。

平台管理员可以在“站点设置 → 注册与邮件”分别控制邮箱注册和 OIDC 注册。邮箱注册默认关闭,OIDC 注册默认开启;关闭 OIDC 注册只阻止创建新用户,不影响已经绑定身份的用户继续登录。邮箱注册需要先配置 SMTP,平台会发送短时有效的一次性验证码,SMTP 密码只保存在 Secret Store 中。管理员还可以决定无密码账号是否允许在“账号 → 安全设置”补设本地密码;密码设置或修改完成后,平台会撤销该用户原有会话并要求重新登录。

第一次进入完整 Compose 时访问:

http://localhost:8088/bootstrap

生产模式必须先在 API 进程环境中配置高强度随机值 BOOTSTRAP_TOKEN,再在这个页面输入相同的 Bootstrap Token 创建第一个管理员账号。Token 未配置时初始化接口不可用,值不匹配时会拒绝创建;开发模式不校验这个字段。完成初始化后应从部署配置或 Secret 管理系统中轮换或移除这项一次性凭据。

首次管理员也可以选择“保持登录”,其会话和 remember-login 行为与普通本地登录一致。

使用看板判断下一步

登录后的看板优先回答“现在有什么需要处理”,而不是把所有资源数字简单堆在一起:

  • 工作摘要展示进行中的构建和发布、连续失败问题以及可用集群。
  • 待关注区域按应用或部署配置合并连续失败;后续成功事件会关闭对应问题。
  • 近期活动统一展示构建、发布、Hook、访问入口和证书等平台事件,并提供上下文跳转。
  • 平台准备度展示当前账号可用的运行集群和镜像站,不把“已经创建”误当成“运行正常”。

看板通过单个 GET /api/v1/dashboard 接口读取聚合结果。后续增加看板模块时,后端会继续扩展这个稳定响应,浏览器不需要并发调用多组底层列表接口。

创建第一个项目空间

项目空间把同一个产品或团队的应用、成员和运行配置放在一起。可以把它理解为这个产品在平台里的工作区。

建议第一次这样填:

字段建议
名称用产品名或团队名
标识使用英文、小写和短横线
成员先保留自己,确认流程后再邀请别人

项目空间列表默认展示“与我相关”的空间;平台管理员可以切换到“全部项目空间”,用于排查或全局维护。

管理列表在移动端会优先保留名称等主要信息,操作列只按当前按钮的实际宽度占位;需要更多空间时,列表主体仍可横向滚动。

创建第一个应用

一个应用对应一个可以独立部署的服务。第一次体验时,先创建一个基础应用即可:

  • 填应用名称。
  • 填短一点的英文标识。
  • 先不处理高级运行参数。

服务端口、镜像、Dockerfile、环境变量和数据卷都放在“部署配置”里。应用基础信息只保存名称、标识和图标。

下一步

继续进入 连接集群和镜像站

如果你已经有镜像,优先走“已有镜像部署”。这条路径最短,适合先确认平台、集群和访问入口是否正常。

如果你想从仓库自动构建,再去配置 Git Provider、镜像站和构建参数。