51 lines
1.6 KiB
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
|