frappe_docker/docs/02-setup/05-overrides.md
abounoone 28120aed21 docs: add architecture guide and Makefile reference, fix overrides table
- docs/02-setup/09-architecture.md: explain the one-image-many-containers
  pattern, configurator lifecycle, request flow, assets-volume requirement,
  and Redis durability split
- docs/04-operations/02-makefile.md: document all make targets, variables,
  first-run checklist, and update workflow
- docs/02-setup/05-overrides.md: fill in TBD entries for assets-volume,
  backup-cron, multi-bench, and custom-domain overrides
- Makefile: add missing mariadb/redis/noproxy/backup-cron overrides to
  COMPOSE_OVERRIDES so make up starts a working stack

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-19 14:23:34 +00:00

8.9 KiB

Overrides extend the base compose.yaml with additional services or modify existing behavior. Include them in your compose command using multiple -f flags.

docker compose -f compose.yaml -f overrides/compose.mariadb.yaml -f overrides/compose.redis.yaml config > compose.custom.yaml
Overrider Purpose Additional Info
Database
compose.mariadb.yaml Adds MariaDB database service set DB_PASSWORD or default Password will be used
compose.mariadb-secrets.yaml Adds MariaDB with password from a secret file instead of environment variable Set DB_PASSWORD_SECRETS_FILE to the path of your secret file
compose.mariadb-shared.yaml Makes MariaDB available on a shared network (mariadb-network) for other services set DB_PASSWORD
compose.postgres.yaml Uses PostgreSQL instead of MariaDB as the database set DB_PASSWORD
Proxy
compose.noproxy.yaml Exposes the application directly on port :8080 without a reverse proxy
compose.proxy.yaml Uses Traefik as HTTP reverse proxy on port :80 You can change the published port by setting HTTP_PUBLISH_PORT
compose.https.yaml Uses Traefik as HTTPS reverse proxy on Port :443 with automatic HTTP-to-HTTPS redirect SITES_RULE and LETSENCRYPT_EMAIL must be set. HTTP_PUBLISH_PORT and HTTPS_PUBLISH_PORT can be set.
compose.traefik.yaml Runs a standalone Traefik proxy with dashboard (HTTP) on a shared traefik-public network Use for multi-stack setups. Requires TRAEFIK_DOMAIN and HASHED_PASSWORD.
compose.traefik-ssl.yaml Adds HTTPS and Let's Encrypt for the Traefik dashboard Use with compose.traefik.yaml. Requires EMAIL and TRAEFIK_DOMAIN. Publishes HTTPS_PUBLISH_PORT.
compose.nginxproxy.yaml Uses nginx-proxy as HTTP reverse proxy on port :80 Set NGINX_PROXY_HOSTS. Use with compose.nginxproxy-ssl.yaml for HTTPS. You can change the published port by setting HTTP_PUBLISH_PORT
compose.nginxproxy-ssl.yaml Adds acme-companion for HTTPS on port :443 with automatic certificates Requires compose.nginxproxy.yaml. Set NGINX_PROXY_HOSTS and LETSENCRYPT_EMAIL. HTTP_PUBLISH_PORT and HTTPS_PUBLISH_PORT can be set.
Redis
compose.redis.yaml Adds Redis service for caching and background job queuing
Assets / ERPNext
compose.assets-volume.yaml Adds a shared assets volume mounted to all service containers. Required for ERPNext — without it nginx returns 404 for all static files Must be included whenever ERPNext or any app with compiled frontend assets is installed
Backups
compose.backup-cron.yaml Adds Ofelia cron container that runs bench --site all backup on a schedule Set BACKUP_CRONSTRING in .env (default @every 6h). Uses Docker label-based job config on the scheduler container
Multi-bench / Custom domain
compose.multi-bench.yaml Connects all services to a named bench-network and shared mariadb-network, exposes frontend to Traefik via ROUTER and SITES_RULE For running multiple Frappe stacks behind a single Traefik instance. Requires ROUTER, SITES_RULE. Use with compose.traefik.yaml
compose.multi-bench-ssl.yaml Adds HTTPS routing rules to the multi-bench setup Use together with compose.multi-bench.yaml and compose.traefik-ssl.yaml
compose.custom-domain.yaml Adds a Caddy sidecar that reverse-proxies a custom domain to frontend:8080 and registers it with Traefik Requires ROUTER, SITES_RULE, BASE_SITE. For mapping an additional hostname to a site in a multi-bench setup
compose.custom-domain-ssl.yaml Adds HTTPS to the custom-domain Caddy sidecar Use together with compose.custom-domain.yaml