Files
coa-server-manager/services/coa-registry/deploy/registry.compose.yaml
T
ДмитрийandClaude Sonnet 5.5 1267bcc41e Phase 10: central realm Registry, Host publishing lifecycle, deployment
crates/coa-registry-proto (protocol 1: types, limits, signed-request canonicalisation, test vectors),
services/coa-registry (axum + PostgreSQL, migrations, rate limits, Dockerfile, deploy files),
services/coa-registry-e2e (Host lifecycle against the real service, live VPS gate),
coa-core realm_registry (identity keys, client, publishing loop on its own thread),
Settings -> Public listing card, docs REGISTRY_PROTOCOL.md and REGISTRY_DEPLOYMENT.md.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-07 20:23:13 +05:00

46 lines
1.5 KiB
YAML

# /opt/coa/registry/compose.yaml (Phase 10). The Registry publishes no host port: Caddy reaches it as coa-registry:8080 on coa-ingress,
# and it reaches PostgreSQL as coa-postgres on coa-db. The image is built on the node from the repository (see docs/REGISTRY_DEPLOYMENT.md).
name: coa-registry
services:
registry:
image: coa-registry:${REGISTRY_TAG:-latest}
restart: unless-stopped
environment:
REGISTRY_LISTEN: "0.0.0.0:8080"
REGISTRY_TRUST_PROXY: "1"
REGISTRY_DB_HOST: coa-postgres
REGISTRY_DB_NAME: coa_registry
REGISTRY_DB_USER: coa_registry
REGISTRY_DB_PASSWORD_FILE: /run/secrets/registry_db_password
REGISTRY_DB_POOL: "8"
REGISTRY_DB_STATEMENT_TIMEOUT_MS: "5000"
REGISTRY_MAX_CONNECTIONS: "256"
REGISTRY_MAX_IN_FLIGHT: "64"
REGISTRY_REQUEST_TIMEOUT_SECS: "10"
# staging: enough registrations from one address for the Phase-10 gate; the built-in default is 10 per hour
REGISTRY_REGISTER_BURST: "${REGISTRY_REGISTER_BURST:-10}"
REGISTRY_REGISTER_PER_HOUR: "${REGISTRY_REGISTER_PER_HOUR:-10}"
RUST_LOG: "info"
secrets:
- registry_db_password
read_only: true
cap_drop:
- ALL
security_opt:
- no-new-privileges:true
mem_limit: 256m
pids_limit: 128
networks:
coa-ingress:
aliases:
- coa-registry
coa-db: {}
secrets:
registry_db_password:
file: /opt/coa/secrets/registry_db_password
networks:
coa-ingress:
external: true
coa-db:
external: true