mirror of
https://github.com/frappe/frappe_docker.git
synced 2026-06-18 14:15:09 +00:00
- 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>
32 lines
8.9 KiB
Markdown
32 lines
8.9 KiB
Markdown
Overrides extend the base compose.yaml with additional services or modify existing behavior. Include them in your compose command using multiple -f flags.
|
|
|
|
```bash
|
|
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](https://github.com/mcuadros/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` |
|