Deployment
infrastrActure is deployed as a Docker service. In the current production layout it runs in Swarm and is typically built on a dedicated builder host.
Deployment Shapes
| Mode | File |
|---|---|
| local / standalone | docker-compose.yml |
| swarm / template | docker-stack.yml |
| live infra stack | /opt/infrastructure/stacks/mcp-stack.yml |
Live Naming
After the runtime rename, the operational surface is:
| Item | Name |
|---|---|
| repo | infrastrActure |
| image | infrastracture |
| stack service | mcp_infrastracture |
| env file | .env.infrastracture |
The lowercase infrastracture image/service identifier is intentional for Docker compatibility.
Required Dependencies
- Docker Engine
- PostgreSQL
- MinIO for file-backed features
- registry access for runtime images
- secrets for shared integrations
Key Environment Variables
| Variable | Purpose |
|---|---|
DB_* / POSTGRES_* | database connectivity |
INFRASTRACTURE_PUBLIC_URL | public base URL for callbacks and docs |
INFRASTRACTURE_URL | internal service base URL |
MCP_CONTAINER_HOST | host inserted into runtime URLs |
CUSTOM_REGISTRY_URL | private image registry |
MINIO_* | object storage |
Swarm Flow
Current Operational Pattern
Build and deploy are usually run from the builder workflow rather than ad hoc local builds.
Relevant script:
That script now targets:
- repo path:
/mnt/shared/Projects/infrastrActure - image:
${REGISTRY_URL}/infrastracture:<tag> - service:
mcp_infrastracture
Health and Startup
The entrypoint:
- resolves
*_FILEsecrets - waits for PostgreSQL
- applies migrations
- starts the Node service
Health endpoints:
| Path | Purpose |
|---|---|
/health | liveness |
/status | operational status |
Important Operational Caveat
The live PostgreSQL schema name is still mcp_manager. That is legacy storage naming, not a failed rename. Do not casually change it in deployment config without a dedicated migration.