Skip to content

Registry Server 配置

配置类:apps/registry-server/registryserver/core/config.pyRegistryServerConfig / load())。加载纪律见 分层构造

环境变量统一以 DN42_REGISTRY_ 为前缀。

命名约定:上游(git.dn42.dev 的官方 registry 仓库)一侧统一叫 upstream_*,避免 DN42_REGISTRY_REGISTRY_TOKEN 这类叠字;service_token本服务 API 的 Bearer 凭据,由消费方(control-server、auth-server)持有。


全部配置项

环境变量TOML 键类型默认说明
DN42_REGISTRY_DATABASE_URLdatabase.urlstrsqlite+aiosqlite:///<仓库根>/registry.dbSQLAlchemy 异步 DSN。独立的库——微服务边界:registry 副本只在这里。生产用独立 PostgreSQL database(dn42_registry
DN42_REGISTRY_REDIS_URLredis.urlstr | NoneNoneL5 派生缓存的 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_TOKENserver.service_tokenstr | NoneNone本服务 API 的 Bearer token。None 表示全部 API fail-closed(403),/healthz 除外
DN42_REGISTRY_UPSTREAM_TOKENupstream.tokenstr | NoneNonegit.dn42.dev 的只读 access token。None 表示不启用同步——查询端点仍可用(表为空),同步端点拒绝(409
DN42_REGISTRY_UPSTREAM_BASE_URLupstream.base_urlstrhttps://git.dn42.dev上游 Forgejo 实例
DN42_REGISTRY_UPSTREAM_REPOupstream.repostrdn42/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 三处须一致。