Go to file
Lucio Lelii 7f9fae3538 Let the gateway write its certificate and config as the user it runs as
Caddy runs as MCP_UID but its /data volume belonged to root (or to the user of an earlier run) and
its /config tmpfs started out owned by root, so it could not store a certificate or even create its
config folder: port 80 answered, port 443 failed the TLS handshake.

The tmpfs now takes the uid and gid, and a one-shot caddy-data-init service gives the /data volume
to the same user each time the stack starts; the gateway waits for it.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-02 18:30:40 +02:00
browser-mcp Deploy the MCP servers from published images 2026-10-02 11:48:15 +02:00
dev-server-mcp Deploy the MCP servers from published images 2026-10-02 11:48:15 +02:00
.gitignore Deploy the MCP servers from published images 2026-10-02 11:48:15 +02:00
ENVIRONMENT.md Pass MINIO_MCP_INTERNAL_BUCKET_EXPIRE_DAYS to the MinIO MCP 2026-10-02 17:42:30 +02:00
MCP-STACK.md Deploy the MCP servers from published images 2026-10-02 11:48:15 +02:00
README.md Deploy the MCP servers from published images 2026-10-02 11:48:15 +02:00
egress-proxy.squid.conf Deploy the MCP servers from published images 2026-10-02 11:48:15 +02:00
mcp-stack.Caddyfile Deploy the MCP servers from published images 2026-10-02 11:48:15 +02:00
mcp-stack.compose.yml Let the gateway write its certificate and config as the user it runs as 2026-10-02 18:30:40 +02:00
mcp-stack.env.example Pass MINIO_MCP_INTERNAL_BUCKET_EXPIRE_DAYS to the MinIO MCP 2026-10-02 17:42:30 +02:00
mcp-stack.vm.Caddyfile Deploy the MCP servers from published images 2026-10-02 11:48:15 +02:00
mcp-stack.vm.compose.yml Deploy the MCP servers from published images 2026-10-02 11:48:15 +02:00

README.md

MCP stack - Docker Compose deployment

Runs the MCP servers (coding agent, development server, browser, MinIO) behind one Caddy gateway. The servers’ code and their images live in the mcps repository; this repository only deploys them from Docker Hub (luciolelii/*), so the host needs no sources and no build toolchain.

cp mcp-stack.env.example .env        # then fill it in: see ENVIRONMENT.md
docker compose --env-file .env -f mcp-stack.compose.yml pull
docker compose --env-file .env -f mcp-stack.compose.yml up -d

On a dedicated VM add -f mcp-stack.vm.compose.yml to both commands.

  • MCP-STACK.md - what runs, how to start and update it, security notes.
  • ENVIRONMENT.md - every environment variable, required and optional.