atlilith/@platform/deployments/shared-services/infra.yaml

51 lines
1.6 KiB
YAML

# Shared infrastructure — authoritative datastores live on `black`.
# Dev hosts (apricot, plum) do NOT run these — frontends call prod APIs on
# black instead (see CLAUDE.md "Single API plane" + INFRA.md §3).
#
# For test runs (CI / local), ephemeral containers are spun up from
# @platform/infrastructure/test/compose.*.yml via `./run test:infra:up`
# — keep alive only for the duration of a test session, then teardown.
deployment:
id: _shared-services
name: Shared Infrastructure (production)
description: Authoritative platform-db / minio / mail tier — black-resident, single source of truth.
orchestration:
dependencies: []
lifecycle:
keepAlive: true
autostart: false # provisioned during host setup, not by ./run
services:
- id: platform-db
name: Platform PostgreSQL
type: postgresql
port: 25440
critical: true
description: Authoritative V3 database — users, orgs, bookings, content. vps-0 apps reach via SSH -R reverse tunnel.
healthCheck:
type: tcp
- id: platform-minio
name: Platform MinIO
type: minio
port: 9100
critical: true
description: Authoritative object storage. vps-0 has a hot replication mirror; this is the cold/canonical tier.
healthCheck:
type: http
path: /minio/health/live
- id: platform-mail
name: Mailpit (dev catcher, NOT prod)
type: api
port: 1026
critical: false
description: Used only in test containers; production email goes through docker-mailserver on black at a different path. Listed here for schema completeness, not as a deployed service.
devSkip: true
deployments:
production:
host: black
autostart: false