What's Changed
This update significantly expands Middleware Manager's capabilities by introducing full support for managing Traefik Services and Traefik Plugins.
Key Changes:
-
Traefik Service Management (Go & React):
- Added backend logic (models, handlers, fetcher, watcher, config generator) for creating, reading, updating, deleting, and assigning custom Traefik services (LoadBalancer, Weighted, Mirroring, Failover).
- Implemented new UI components (ServicesList, ServiceForm, ServiceSelectModal in ResourceDetail) for managing services and assigning them to resources.
- Service configurations are now loaded from
templates_services.yaml
and persisted in the database. - The config generator now includes a
services
section in the dynamic Traefik configuration.
-
Traefik Plugin Hub (Go & React):
- Added backend API endpoints to list available plugins (from a configurable JSON URL), install/remove plugins by modifying Traefik's static configuration file, and manage the path to this static config.
- Implemented a "Plugin Hub" page in the UI allowing users to browse, install, and remove plugins.
- Added
TRAEFIK_STATIC_CONFIG_PATH
andPLUGINS_JSON_URL
environment variables for configuration.
-
Backend Enhancements:
main.go
: Updated to initialize and start the new ServiceWatcher, and to load service templates. CorrectedServiceInterval
usage. Passes static config path and plugins URL to API server.ConfigManager
: Now handlesTRAEFIK_STATIC_CONFIG_PATH
.ConfigGenerator
: Now processes and includes custom service definitions in the generatedresource-overrides.yml
.ResourceFetcher
andServiceFetcher
: Refined to handle different data source types (Pangolin, Traefik API) more robustly for both resources and services.- Database migrations updated for
services
andresource_services
tables. - Models for
Service
,TraefikService
, and plugin structures introduced.
-
Frontend Enhancements:
- New contexts (
ServiceContext
,PluginContext
) and updates toAppContext
andapi.js
service layer. - New UI components for service and plugin management.
- Improved error handling and loading states across relevant components.
- Enhanced ResourceDetail page to include service assignment and more detailed configuration modals.
- Updated
main.css
for new components and improved dark mode compatibility.
- New contexts (
-
Documentation (
README.md
):- Fully rewritten to include detailed information and examples for the new Service Management and Plugin Hub features.
- Updated Docker Compose examples, including a more comprehensive Pangolin stack example.
- Clarified environment variables and configuration steps.
-
Added styles in main.css the were missing for dark mode by @oidebrett in #28
-
Traefik int by @oidebrett in #30
-
Traefik Services by @hhftechnology in #34
-
Integrate Traefik Services and Plugin Management by @hhftechnology in #35
-
Integrate Traefik Services and Plugin Management by @hhftechnology in #36
New Contributors
- @oidebrett made their first contribution in #28