From 720c12657a807ed20667ddc22a041fc44b98f8c8 Mon Sep 17 00:00:00 2001 From: Yuriy Kirillov Date: Mon, 24 Aug 2026 23:41:58 +0200 Subject: [PATCH] refactor: drop the unused mcp Docker network No app in the catalog references it - deploy/deploy.py was creating it on every deploy to every target regardless. Re-add it, scoped to whatever actually needs it, if/when that app shows up. Fixes #125 Co-Authored-By: Claude Sonnet 5 --- AGENTS.md | 4 ++-- apps/networks.yml | 2 -- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index c8e6faf..f2cd3b9 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -73,7 +73,7 @@ The repository uses a modular docker-compose structure with reusable components: - No shared healthcheck anchor - each service declares its own `healthcheck:` directly, since the right check (and the tool to run it with) is different per image; see "Healthchecks" below 2. **Shared Infrastructure** (`apps/networks.yml` plus versioned database/cache/service templates): - - `networks.yml`: Defines `internal`, `databases`, `mcp`, and `traefik` networks + - `networks.yml`: Defines `internal`, `databases`, and `traefik` networks - `postgres-17.yml`, `postgres-18.yml`: PostgreSQL service templates - `paradedb-17.yml`, `pgvector-17.yml`: Postgres-compatible variants (full-text search, vector search) - `redis-7.yml`, `redis-8.yml`: Redis service templates @@ -197,7 +197,7 @@ HTTP-01 (`httpChallenge`) is always configured and needs nothing from the vault ## Operations -There are no wrapper scripts and nothing runs them - starting, stopping, and restarting apps all happen by deploying (`deploy/deploy.py`, see "CI/CD" below). The external Docker networks `traefik`, `databases`, and `mcp` are created idempotently by `deploy/deploy.py` on every deploy (derived from `apps/networks.yml`'s `external: true` entries), not by a separate first-run step. `apps-data/traefik/acme.json` isn't created by `deploy/deploy.py` at all - traefik's `docker-compose.yml` mounts `apps-data/{app}/` as a directory (not the file directly, which would make Docker create a directory in its place if the file doesn't exist yet), and Traefik creates `acme.json` inside it itself on first start, with the permissions it requires. +There are no wrapper scripts and nothing runs them - starting, stopping, and restarting apps all happen by deploying (`deploy/deploy.py`, see "CI/CD" below). The external Docker networks `traefik` and `databases` are created idempotently by `deploy/deploy.py` on every deploy (derived from `apps/networks.yml`'s `external: true` entries), not by a separate first-run step. `apps-data/traefik/acme.json` isn't created by `deploy/deploy.py` at all - traefik's `docker-compose.yml` mounts `apps-data/{app}/` as a directory (not the file directly, which would make Docker create a directory in its place if the file doesn't exist yet), and Traefik creates `acme.json` inside it itself on first start, with the permissions it requires. Debugging an already-deployed app means SSHing into the target host directly and using Docker Compose itself - no wrapper needed, since each app's directory is already a complete, ready-to-run Compose project (real `.env` sitting next to the compose file): diff --git a/apps/networks.yml b/apps/networks.yml index 7ae0362..7316978 100644 --- a/apps/networks.yml +++ b/apps/networks.yml @@ -2,7 +2,5 @@ networks: internal: databases: external: true - mcp: - external: true traefik: external: true