{"name":"Middleware Manager: Centralized Management for Traefik & Pangolin Middleware","description":"Middleware Manager is a powerful microservice designed to simplify the management of Traefik and Pangolin resources. It provides a user-friendly web interface to define, attach, and configure custom Traefik middlewares, services, and plugins. This tool enhances control over your network's routing, security, and load balancing configurations.","github":"https://github.com/hhftechnology/middleware-manager","url":"https://osrepos.com/repo/hhftechnology-middleware-manager","source":"osrepos.com","sourceDescription":"This repository profile is provided by osrepos.com, an open source repository discovery platform.","repositoryProfile":"https://osrepos.com/repo/hhftechnology-middleware-manager","generatedFor":"open source discovery and AI-assisted research","markdown":"https://osrepos.com/repo/hhftechnology-middleware-manager.md","json":"https://osrepos.com/repo/hhftechnology-middleware-manager.json","topics":["middleware","middleware-manager","pangolin","traefik","ui","Go","DevOps","Containerization"],"keywords":["middleware","middleware-manager","pangolin","traefik","ui","Go","DevOps","Containerization"],"stars":null,"summary":"Middleware Manager is a powerful microservice designed to simplify the management of Traefik and Pangolin resources. It provides a user-friendly web interface to define, attach, and configure custom Traefik middlewares, services, and plugins. This tool enhances control over your network's routing, security, and load balancing configurations.","content":"## Introduction\n\nThe Middleware Manager is a specialized microservice that empowers you to attach custom Traefik middlewares to your HTTP/TCP/UDP resources, manage router configurations, define custom Traefik services, and install Traefik plugins, all through a user-friendly web interface. It provides crucial functionality for implementing authentication, security headers, rate limiting, custom routing logic, and other middleware-based protections with ease. This tool monitors resources from your chosen data source, either a Pangolin API or a direct Traefik API connection, and generates the necessary Traefik dynamic configuration files.\n\n## Installation\n\nTo deploy Middleware Manager, you'll need Docker and Docker Compose, along with an existing Traefik v2.x or v3.x instance. Middleware Manager can connect directly to your Traefik API or a Pangolin API.\n\nFirst, ensure you have a running Traefik instance configured to use file providers for dynamic configuration and with its API exposed. For plugin management, Traefik's static configuration file (e.g., `traefik.yml`) must be accessible via a volume mount.\n\nCreate the necessary host directories for Middleware Manager data and Traefik rules:\n\nbash\nmkdir -p ./middleware_manager_data ./traefik_rules ./traefik_static_config\n\n\nThen, you can integrate Middleware Manager using Docker Compose. Here's a simplified example for a standalone Traefik setup:\n\nyaml\nservices:\n  middleware-manager:\n    image: hhftechnology/middleware-manager:traefik-int\n    container_name: middleware-manager\n    restart: unless-stopped\n    volumes:\n      - ./middleware_manager_data:/data # For the SQLite database\n      - ./traefik_rules:/conf           # MUST MATCH Traefik's rule directory\n      - ./traefik_static_config:/etc/traefik # Mount Traefik's static config dir for plugin management\n    environment:\n      - TRAEFIK_API_URL=http://your-traefik-host:8080 # Update with your Traefik API URL\n      - TRAEFIK_CONF_DIR=/conf\n      - DB_PATH=/data/middleware.db\n      - PORT=3456\n      - ACTIVE_DATA_SOURCE=traefik # Set to 'pangolin' or 'traefik'\n      - TRAEFIK_STATIC_CONFIG_PATH=/etc/traefik/traefik.yml # Path inside MM container\n    ports:\n      - \"3456:3456\"\n    networks:\n      - your_traefik_network # Ensure this matches your Traefik's network\n\n\nAfter setting up your `docker-compose.yml` and creating the directories, start the services:\n\nbash\ndocker-compose up -d\n\n\nAccess the Middleware Manager UI at `http://your-server-ip:3456`. For a full stack example with Pangolin, refer to the official GitHub repository.\n\n## Examples\n\nMiddleware Manager provides a comprehensive web UI to manage various aspects of your Traefik configuration:\n\n*   **Managing Resources**: Attach custom Traefik middlewares to your HTTP/TCP/UDP resources. Configure advanced router settings, including entrypoints, TLS Subject Alternative Names (SANs), TCP SNI routing rules, custom request headers, and router priority.\n*   **Managing Services**: Create, update, and delete custom Traefik services such as LoadBalancer, Weighted, Mirroring, and Failover. Define servers with specific protocols (HTTP, TCP, UDP) and assign these custom services to your resources.\n*   **Managing Plugins (Plugin Hub)**: Discover, install, and manage Traefik plugins directly from the UI. The `TRAEFIK_STATIC_CONFIG_PATH` environment variable is crucial here, as it tells Middleware Manager where to find Traefik's main static configuration file for plugin declarations. Remember that Traefik must be restarted after installing or removing plugins for changes to take effect.\n\n## Why Use It\n\nMiddleware Manager offers a centralized and intuitive web interface for managing complex Traefik and Pangolin configurations. It simplifies the deployment and configuration of middlewares, services, and plugins, reducing manual errors and saving time. By providing granular control over routing, security headers, rate limiting, and load balancing, it empowers users to enhance their network's resilience and performance. Its dual data source support makes it versatile for both standalone Traefik setups and integrated Pangolin environments.\n\n## Links\n\n*   **GitHub Repository**: [https://github.com/hhftechnology/middleware-manager](https://github.com/hhftechnology/middleware-manager){:target=\"_blank\"}\n*   **Docker Hub**: [https://hub.docker.com/r/hhftechnology/middleware-manager](https://hub.docker.com/r/hhftechnology/middleware-manager){:target=\"_blank\"}\n*   **Discord Community**: [https://discord.gg/HDCt9MjyMJ](https://discord.gg/HDCt9MjyMJ){:target=\"_blank\"}","metrics":{"detailViews":5,"githubClicks":8},"dates":{"published":null,"modified":"2026-01-01T20:00:59.000Z"}}