Middleware Manager Docs

Deploy with Traefik (Standalone)

Run Middleware Manager directly against Traefik without Pangolin.

Use this when Traefik is your only provider and you want Middleware Manager to own dynamic config and plugins/mTLS.

Container layout (summary)

  • traefik: exposes API/dashboard (secure appropriately), watches /rules for dynamic config, static config at /etc/traefik/traefik.yml.
  • middleware-manager: writes overrides to api (mounted to Traefik http endpoint) and stores state in /data/middleware.db.

Required volumes and env

traefik:
  volumes:
    - ./traefik_config/static:/etc/traefik
    - ./traefik_config/rules:/rules
    - ./traefik_config/letsencrypt:/letsencrypt
    - ./traefik_config/plugins:/plugins-storage
middleware-manager:
  volumes:
    - ./middleware_manager_data:/data
    - ./traefik_config/rules:/conf
    - ./traefik_config/static:/etc/traefik
    - ./middleware_manager_config:/app/config
  environment:
    - ACTIVE_DATA_SOURCE=traefik
    - TRAEFIK_API_URL=http://traefik:8080
    - TRAEFIK_CONF_DIR=/conf
    - TRAEFIK_STATIC_CONFIG_PATH=/etc/traefik/traefik.yml
    - DB_PATH=/data/middleware.db
    - PORT=3456

Steps

  1. Prepare directories: ./traefik_config/static, ./traefik_config/rules, ./traefik_config/letsencrypt, ./traefik_config/plugins, ./middleware_manager_data, ./middleware_manager_config.
  2. Ensure Traefik static config includes the HTTP provider pointing to Middleware Manager:
    • Update your static configuration (e.g., traefik.yml):
    providers:
      file:
        directory: /rules
      http:
        endpoint: "http://middleware-manager:3456/api/v1/traefik-config"
        pollInterval: 5s
    Troubleshooting Connection: If the container name middleware-manager is not reachable (e.g., DNS issues), find the container's IP address:
    docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' middleware-manager
    Then use the IP in your config:
    endpoint: "http://172.17.1.3:3456/api/v1/traefik-config"
  3. Start containers: docker compose up -d.
  4. Open UI at http://<host>:3456 and set Active Data Source → Traefik.
  5. Validate with Traefik Explorer (routers/services/middlewares) and a test middleware assignment.

Port/health

  • Middleware Manager: :3456 (UI/API), GET /health.
  • Traefik dashboard/API: typically :8080; keep access restricted.

Screenshot placeholder — standalone Traefik deployment diagram / docker-compose.

On this page