Middleware Manager Docs

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.yaml and templates_services.yaml under /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.

On this page