redge 是面向 rginx 边缘节点的中心控制面。它提供节点纳管、配置资源版本化、发布编排、运维动作、审计、用户权限、前端控制台以及基础可观测性。
control-api:Axum API、登录会话、RBAC、CSRF、静态前端资源、SSE、/healthz、/readyz、/metrics。control-worker:节点状态同步、rollout 批次执行、operation fanout、重试退避、dead-letter 归档、心跳健康检查。control-migrate:执行内嵌数据库迁移,成功退出后 API 和 worker 才启动。apps/web:Vue 3 + Vite 控制台,支持简体中文和英文。Postgres:权威业务数据源,保存用户、节点、资源、发布、任务、审计、事件和告警。Dragonfly:会话、限流、短态协调和事件 fanout。
仓库只保留一个部署入口:根目录 compose.yaml。数据库 schema 迁移内嵌在 crates/shared-db/src/embedded_migrations.rs,不依赖外部 migrations/ 目录。
compose.yaml 不读取 .env 文件。启动前必须由 shell 显式注入 secret:
export POSTGRES_PASSWORD="$(openssl rand -hex 32)"
export DATABASE_URL="postgres://redge:${POSTGRES_PASSWORD}@postgres:5432/redge"
export NODE_SECRET_ENC_KEY="$(openssl rand -hex 32)"
export BOOTSTRAP_ADMIN_EMAIL="admin@redge.local"
export BOOTSTRAP_ADMIN_PASSWORD="$(openssl rand -hex 32)"
docker compose up -d --build检查服务:
curl http://127.0.0.1:3000/healthz
curl http://127.0.0.1:3000/readyz
curl http://127.0.0.1:3000/metrics浏览器入口默认是 http://127.0.0.1:3000/。
首次启动只会自举一个管理员账号,邮箱和初始密码来自 BOOTSTRAP_ADMIN_EMAIL / BOOTSTRAP_ADMIN_PASSWORD。已有管理员用户不会在重启时被新密码覆盖,请保存首次使用的密码。
生产环境启动前额外设置:
export REDGE_ENV="production"
export SESSION_COOKIE_SECURE="true"
export SESSION_TTL_SECONDS="43200"
export TLS_CERT_PATH="/run/redge/secrets/control-api.crt"
export TLS_KEY_PATH="/run/redge/secrets/control-api.key"生产模式会拒绝危险配置:必须启用 secure cookie、CSRF 和 HTTPS,session TTL 不能超过 43200 秒,关键 secret 必须存在且非空。NODE_SECRET_ENC_KEY 首次使用后必须长期保持稳定,否则已保存的节点 API key 无法解密。
完整部署、升级、回滚、备份和故障排查见 docs/PRODUCTION_RUNBOOK.md。
推荐入口:
scripts/verify-core.sh它会运行 Rust fmt/check/clippy/test、前端安装与构建、Compose config 校验。需要 live API smoke 或浏览器 E2E 时:
BOOTSTRAP_ADMIN_EMAIL="admin@redge.local" \
BOOTSTRAP_ADMIN_PASSWORD="..." \
scripts/verify-api-smoke.sh
BOOTSTRAP_ADMIN_EMAIL="admin@redge.local" \
BOOTSTRAP_ADMIN_PASSWORD="..." \
scripts/verify-web-e2e.sh更多测试说明见 docs/TESTING.md。
- docs/README.md:文档索引。
- docs/PROJECT_HARDENING_PLAN.md:当前硬化进度和下一阶段计划。
- docs/TESTING.md:本地与 CI 验证入口。
- docs/DATABASE_GOVERNANCE.md:迁移、seed、备份回滚和索引治理。
- docs/PRODUCTION_RUNBOOK.md:部署、运维、可观测性、升级和故障处理。
apps/
control-api/
control-worker/
control-migrate/
web/
crates/
shared-auth/
shared-db/
shared-domain/
node-client/
deploy/
compose/
docs/
scripts/