船舶管理员服务
管理员服务提供网络UI和CRUD API,用于管理Shipwright代理商——env vars,克龙活口,指使,工具,和插件. 这也暴露出部署的特工用于获取其配置的运行时间API.
HTTP 服务器在 admin/src/main.ts,它由管理员UI,管理员CRUD API,代理运行时间API组成一个在端口3000运行的Hono应用程序.
本地运行
# From repo root — install all workspace deps
bun install
# Export required env vars (see Environment Variables table below)
export DATABASE_URL_SHIPWRIGHT_ADMIN=postgresql://...
export SHIPWRIGHT_SESSION_SECRET=...
# ... (remaining vars)
# Run the admin server
bun run admin/src/main.ts
服务收听 http://localhost:3000 默认。 访问 /admin 为UI.
环境变量
| 变量 | 需求 | 说明 |
|---|---|---|
DATABASE_URL_SHIPWRIGHT_ADMIN | 对 | PostgreSQL 管理员 Prisma 计划连接字符串 |
SHIPWRIGHT_SESSION_SECRET | 对 | JWT 管理 UI 会话的 cookie 秘密 |
GOOGLE_CLIENT_ID | 对 | Google OAuth 2. 0 管理员用户界面登录客户端ID |
GOOGLE_CLIENT_SECRET | 对 | Google OAuth 2. 0 客户端秘密 |
SHIPWRIGHT_ADMIN_ALLOWED_EMAILS | 对 | 允许登录的以逗号分隔的电子邮件列表 |
SHIPWRIGHT_ADMIN_APP_BASE_URL | 对 | OAuth 重定向( 默认为 http://localhost:3000(中文(简体) ) |
SHIPWRIGHT_ADMIN_API_KEYS | 没有 | 逗号分隔 name:token:scope 无记名证的图纸 范围是 *探员身份, platform.read 或者说 platform.ops (没有指针)——参见: 文档/代理人 |
SHIPWRIGHT_ENCRYPTION_KEY | 建议 | AES-256-GCM 存储机密加密的64 Char 十六进制密钥 |
PORT | 没有 | HTTP 服务器端口( 默认为 3000(中文(简体) ) |
数据库
管理员服务使用自有的PostgreSQL数据库. 开始前运行迁移 :
export DATABASE_URL_SHIPWRIGHT_ADMIN=postgres://...
cd admin && bunx prisma migrate deploy --schema=prisma/schema
构建 Docker 图像
从 repo 根来构建( Dockerfile 使用完整的 monorepo 上下文) :
docker build -f admin/Dockerfile -t shipwright-admin .
运行图像 :
docker run \
-e DATABASE_URL_SHIPWRIGHT_ADMIN=postgres://... \
-e SHIPWRIGHT_SESSION_SECRET=... \
-e GOOGLE_CLIENT_ID=... \
-e GOOGLE_CLIENT_SECRET=... \
-e [email protected] \
-e SHIPWRIGHT_ADMIN_APP_BASE_URL=https://admin.example.com \
-p 3000:3000 \
shipwright-admin
部署
提供GKE部署+服务清单 admin/deploy/deployment.yaml。 。 。 .
它期望一个叫克伯尼特的秘密 shipwright-admin-secret 包含所有必需的外壳。 参见"明细表"上方的注释用于设置指示.