Configuration Overview
How Middleware Manager stores settings and where dynamic config is written.
Storage and paths
- Database: SQLite at
DB_PATH(default/data/middleware.db). Persist this volume. - Static config: Read from
TRAEFIK_STATIC_CONFIG_PATH(inside the MM container) for plugin install/remove and mTLS plugin checks. - Templates: Optional
templates.yamlandtemplates_services.yamlunder/app/config.
Protect the static config
Middleware Manager edits plugin entries inside your Traefik static config. Keep backups and version control for /etc/traefik/traefik.yml (or equivalent).
What MM manages vs. what it reads
- Reads: routers/services/middlewares from the active data source (Pangolin or Traefik API).
- Writes: Creates an overrides api (middlewares, router attachments, custom services, mTLS plugin middlewares).
- Static edits: Adds/removes
experimental.plugins.*blocks when installing/removing plugins.
Key flows
Stored in DB → emitted into /conf only when assigned to a resource. Priorities are preserved.
Custom services stored in DB; emitted into HTTP/TCP sections based on server addresses.
Uses the mtlswhitelist plugin middleware; per-resource overrides are merged; TLS options mtls-verify added when mTLS is enabled.
Static config gets experimental.plugins.<key> entries. Traefik restart is required to load/unload code.
Screenshot placeholder — config paths / file-provider output example.