- Monorepo: NestJS API (Fastify) + React web (antd/ProComponents) + shared packages - PostgreSQL/Prisma (unified resources, relations graph, audit, events, jobs) - Auth/RBAC/workspace isolation, credential vault (AES-256-GCM) - Servers/SSH, Docker discovery & lifecycle, Job Center - Websites & deployments (git provider credential clone, env, health verification) - Domains/DNS (Cloudflare adapter), certificates (TLS probe), monitoring - Automation (cron/event/webhook HMAC + notifications), AI Gateway, MCP (29 tools) - AI chat window (LLM function-calling + rules fallback, SSE streaming, approvals) - Notes: Vditor WYSIWYG markdown editor, non-blocking autosave - Tests: 35 unit/security tests; UI audit clean (desktop+mobile, deep links)
1.2 KiB
1.2 KiB
04 — Website & Deployment Completion
Website 生命周期
Website
→ Repository
→ Environment
→ Server
→ Build
→ Deploy
→ Health Check
→ Domain
→ SSL
→ Monitoring
Repository access
禁止要求用户把 private repository token 放进 URL。
建立:
GitProviderConnection
├── provider
├── credentialId
├── externalAccountId
└── metadata
Repository 使用 provider + externalId/clone metadata。
Deployment
Deployment 必须成为 Job 的一种领域操作,并保存:
- commit/ref
- source repository
- target server
- environment
- build strategy
- deployment strategy
- started/finished
- logs
- result
- health check
部署策略
V1 支持:
- Docker Compose / Dockerfile 项目
- 静态网站
- 可扩展 deployment adapter
不要把部署逻辑硬编码到 Website Controller。
Environment
支持:
- development
- staging
- production
环境变量值使用 Credential Vault 或加密存储,UI 默认 mask。
Health verification
部署成功不能只看 SSH exit code,必须执行 health check;失败则 Deployment 状态为 failed/verification_failed,并展示证据。