Files
Schulcloud-MCP/deploy/docker-compose.pi.yml
MechaCat02 bac91303bf Add a setup guide for the Pi, and a compose file its .env selects
docs/PI.md goes from a Pi with Docker to a working claude.ai connector:
configuration, the first token, Caddy, DNS, the VPS forwarding raw TCP,
checks from outside, connecting the clients, the monthly token, updates,
backups and troubleshooting.

docker-compose.override.yml is tracked, so Compose would have merged it on
the Pi as well — publishing ports and switching the crawl timer off. The
Pi's .env sets COMPOSE_FILE to add deploy/docker-compose.pi.yml instead,
which joins the existing Caddy network by name and builds DATABASE_URL, so
nothing tracked needs editing there. Postgres moves to a private network
shared only with the server.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-16 20:19:17 +02:00

24 lines
984 B
YAML

# The Pi's additions to docker-compose.yml — see docs/PI.md.
#
# Selected by one line in the Pi's .env, so plain `docker compose` commands use it:
#
# COMPOSE_FILE=docker-compose.yml:deploy/docker-compose.pi.yml
#
# Setting COMPOSE_FILE also keeps docker-compose.override.yml out. That file is
# for local development only, and Compose would otherwise merge it silently: it
# publishes ports and turns the crawl timer off.
services:
schulcloud-mcp:
environment:
# The bundled Postgres, by name on the private backend network. Overrides
# any DATABASE_URL in .env.
DATABASE_URL: postgresql://schulcloud:${POSTGRES_PASSWORD:?set POSTGRES_PASSWORD in .env}@postgres:5432/schulcloud
networks:
caddy:
# Join the network the Pi's Caddy container is already on, so Caddy reaches
# this server by name and no host port is published.
external: true
name: ${CADDY_NETWORK:?set CADDY_NETWORK in .env to the Docker network of your Caddy container}