外观
Registry Server 配置
配置类:apps/registry-server/registryserver/core/config.py(RegistryServerConfig / load())。加载纪律见 分层构造。
环境变量统一以 DN42_REGISTRY_ 为前缀。
命名约定:上游(git.dn42.dev 的官方 registry 仓库)一侧统一叫 upstream_*,避免 DN42_REGISTRY_REGISTRY_TOKEN 这类叠字;service_token 是本服务 API 的 Bearer 凭据,由消费方(control-server、auth-server)持有。
全部配置项
| 环境变量 | TOML 键 | 类型 | 默认 | 说明 |
|---|---|---|---|---|
DN42_REGISTRY_DATABASE_URL | database.url | str | sqlite+aiosqlite:///<仓库根>/registry.db | SQLAlchemy 异步 DSN。独立的库——微服务边界:registry 副本只在这里。生产用独立 PostgreSQL database(dn42_registry) |
DN42_REGISTRY_REDIS_URL † | redis.url | str | None | None | L5 派生缓存的 DSN(如 redis://redis:6379/3,db 3 = registry-server)。只读查询(ASN / mntner / routes / identity)经此缓存,TTL 30 分钟;失效靠同步后自增 reg:ver 版本号,手动 POST /sync 之后新数据立刻可见,不必等 TTL。None 即直连 PG——registry 数据每条都能从库里重建,缓存纯属提速。键定义见 KV 与缓存键空间 |
DN42_REGISTRY_SERVICE_TOKEN † | server.service_token | str | None | None | 本服务 API 的 Bearer token。None 表示全部 API fail-closed(403),/healthz 除外 |
DN42_REGISTRY_UPSTREAM_TOKEN † | upstream.token | str | None | None | git.dn42.dev 的只读 access token。None 表示不启用同步——查询端点仍可用(表为空),同步端点拒绝(409) |
DN42_REGISTRY_UPSTREAM_BASE_URL | upstream.base_url | str | https://git.dn42.dev | 上游 Forgejo 实例 |
DN42_REGISTRY_UPSTREAM_REPO | upstream.repo | str | dn42/registry | 上游仓库路径 |
† 标记表示 token 类语义:显式设空 = 关闭。
上游 token 是必需的:官方 Forgejo 实例拒绝匿名 tarball 下载,没有凭据同步一定失败。取得方式与同步机制见 registry 副本。
最小配置示例
toml
# /etc/dn42-registry/registry-server.toml(chmod 600)
[server]
service_token = "change-me"
[database]
url = "postgresql+asyncpg://dn42:secret@postgres:5432/dn42_registry"
[upstream]
token = "…"消费方侧的对应配置:控制面的 [registry] service_url/service_token(见 Control Server 配置)与 auth-server 的同名段(见 Auth Server 配置),service_token 三处须一致。