1
0
Fork 0
Commit graph

99 commits

Author SHA1 Message Date
Joao Gilberto Magalhaes
3284992ff6 Bump version to 6.1.0 (chart 2.0.3) 2026-06-24 23:53:55 -04:00
Joao Gilberto Magalhaes
e4b62a3925 Add protocol support and improve FastCGI plugin handling
- Introduced `easyhaproxy.proto` annotation for backend protocol configuration.
- Automatically set FastCGI protocol (`proto: fcgi`) when using the FastCGI plugin.
- Updated Kubernetes processor to handle `proto` annotations.
- Enhanced EasyMapping to allow plugin overrides for host-level configs.
- Updated documentation to reflect new `proto` behavior and FastCGI improvements.
- Improved multiprocessing configuration with better context handling in `haproxy.py`.
2026-06-24 21:21:27 -04:00
Joao Gilberto Magalhaes
2b7b2c887f Add dashboard port and CORS origin support to Helm chart (2.0.2)
- Add binding.ports.dashboard (default 11936) to values, deployment, and service templates
- Add easyhaproxy.stats.corsOrigin value mapped to HAPROXY_STATS_CORS_ORIGIN env var
- Bump chart version to 2.0.2
- Regenerate deploy/kubernetes manifests
- Update docs/reference/helm.md with new values
2026-02-22 21:35:03 -05:00
Joao Gilberto Magalhaes
6939c593a3 Bump version to 6.0.1 (chart 2.0.1) 2026-02-22 20:56:29 -05:00
Joao Gilberto Magalhaes
d926cd7e69 Update documentation and guides for the monitoring dashboard
- Revised environment variables reference to clarify `HAPROXY_STATS_CORS_ORIGIN` requirements for the dashboard.
- Enhanced README with details about the real-time monitoring dashboard and its capabilities.
- Added a new "Monitoring Dashboard" guide, providing setup steps, login instructions, and feature overviews.
- Included images for dashboard visuals (`dashboard_thumbnail.png`, `dashboard_login.png`).
2026-02-22 20:20:00 -05:00
Joao Gilberto Magalhaes
4dda1ed631 Enable health checking for HAProxy backend servers
- Updated HAProxy configuration templates to include `check` for `srv_stats` and `srv_dashboard` backends.
- Adjusted expected test case outputs to account for the added health check settings.
2026-02-22 20:03:12 -05:00
Joao Gilberto Magalhaes
7e3134155a Introduce embedded HTTP server for HAProxy monitoring dashboard
- Added a Python-based HTTP server to serve `dashboard.html` at `/` or `/dashboard.html` paths.
- Updated HAProxy configuration to integrate backend for the dashboard.
- Enhanced handling of index paths with conditional redirects to the dashboard page.
- Modified tests and updated expected outputs to reflect these changes.
2026-02-22 19:42:51 -05:00
Joao Gilberto Magalhaes
4b7f42473a Fix build error 2026-02-20 14:34:38 -05:00
Joao Gilberto Magalhaes
a410b34521 Documentation Refactor 2026-02-20 11:46:57 -05:00
Joao Gilberto Magalhaes
711bb43572 Prepare version 6.0.0 2026-02-18 17:38:46 -05:00
Joao Gilberto Magalhaes
3fd0fe0d46 Update plugin paths from /etc/haproxy to /etc/easyhaproxy across tests, configs, and documentation 2026-02-18 16:35:57 -05:00
Joao Gilberto Magalhaes
53c32499b5 Remove Diffie-Hellman parameter generation and references in templates and tests 2026-02-18 02:08:46 -05:00
Joao Gilberto Magalhaes
bfd38adea5 Add standalone Python entrypoint for EasyHAProxy and pip-based installation
- Introduced `/scripts/.venv/bin/easy-haproxy` as the default entrypoint for standalone environments.
- Added `_build_parser` and `start` functions to enable CLI-driven functionality configuration.
- Updated packaging to reflect new `easyhaproxy.main` module and adapted project name from `easymapping` to `easyhaproxy`.
- Modified `Dockerfile` to align with new script paths and entrypoints for better portability.
- Enhanced documentation with dedicated sections for pip-based installation, CLI references, and systemd setup for non-Docker environments.
- Adjusted helm, plugin, and environment-related docs for accurate sidebar ordering.
- Added a new GitHub workflow to automate package publishing to PyPI.
2026-02-17 21:41:33 -05:00
Joao Gilberto Magalhaes
491f4a8c09 Add support for CORS in HAProxy stats dashboard
- Introduced `HAPROXY_STATS_CORS_ORIGIN` environment variable for enabling CORS in HAProxy stats.
- Updated HAProxy configuration template to handle CORS preflight and response headers.
- Added tests for static configuration mode with CORS enabled.
- Updated documentation to include new CORS configuration details and examples.
2026-02-16 20:54:27 -05:00
Joao Gilberto Magalhaes
776f216a36 Add support for proxy-awareness headers: X-Forwarded-For, X-Forwarded-Port, X-Forwarded-Proto, X-Forwarded-Host, and X-Request-ID
- Updated HAProxy configuration template to set all standard proxy headers for HTTP requests.
- Added support for a unique request ID via `unique-id-format` and `unique-id-header` directives.
- Implemented E2E tests for header validation, request correlation, and configuration correctness.
- Enhanced documentation to explain usage and examples of proxy headers.
- Updated CI workflows to include E2E tests for proxy headers.
2026-02-16 17:26:59 -05:00
Joao Gilberto Magalhaes
4aba68dd37 Improve SSL and ACME documentation
- Clarify that EASYHAPROXY_CERTBOT_AUTOCONFIG or CERTBOT_SERVER is required
- Add complete docker-compose.yml examples for ACME setup
- Explain SSL termination at HAProxy level vs backend containers
- Reorganize SSL docs to emphasize volume method over label method
- Add troubleshooting section for common ACME warnings
- Clarify certificate storage paths and selection priority
- Add examples showing both ACME and manual certificates together

Resolves confusion about ACME configuration requirements and makes
it clear that volume-mounted certificates are the recommended method
for manual SSL certificates.
2026-02-16 15:54:32 -05:00
Joao Gilberto Magalhaes
045dd3817e Migrate configuration paths to /etc/easyhaproxy and improve health check support in E2E tests
- Refactored HAProxy configuration files, templates, and paths to use `/etc/easyhaproxy` instead of `/etc/haproxy`.
- Updated Dockerfile to generate DH params and placeholder certificates in the new configuration directory.
- Added health check support with timeout to `DockerComposeFixture` in E2E test utilities.
- Adjusted tests, templates, and plugins to use the new `Consts`-based configuration paths.
- Introduced pytest fixtures for environment isolation and temporary directory management.
2026-02-15 14:32:16 -05:00
Joao Gilberto Magalhaes
ece012a884 Introduce plugin initialization phase and consolidate config handling
- Added `initialize_plugins` method to `PluginManager` for requesting and processing file system resources during plugin initialization.
- Introduced `InitializationResult` and `ResourceRequest` structures for fine-grained resource management (e.g., directories, files).
- Enhanced configuration injection by separating `global_configs`, `defaults_configs`, and backend-level `haproxy_config`.
- Updated existing plugins (e.g., JWT Validator, Cloudflare) to use the initialization phase for resource setup.
- Simplified domain plugin execution by consolidating configuration logic into unified loops.
2026-02-13 16:14:05 -05:00
Joao Gilberto Magalhaes
97845b8a52 Refactor E2E tests and configuration format
- Replaced `easymapping` configuration with `containers` for better maintainability and clarity.
- Introduced `DockerComposeFixture` class in `utils.py` to manage Docker Compose lifecycle and smart build strategy.
- Enhanced YAML-to-environment variable conversion in `ContainerEnv` for dynamic configuration support.
- Updated HAProxy configurations and test fixtures to reflect the new format.
- Improved test coverage for YAML parsing, environment variable handling, and HAProxy config generation.
2026-02-13 12:01:47 -05:00
Joao Gilberto Magalhaes
90b01b1f13 Add Kubernetes integration tests for EasyHAProxy examples
- Introduced a suite of pytest-based integration tests for Kubernetes using `kind`.
- Automated local installation of dependencies (`kind`, `kubectl`, and `helm`) when missing.
- Implemented fixtures for Kubernetes resource management and TLS secrets.
- Added end-to-end tests for HTTP and HTTPS ingress functionality.
2026-02-12 01:42:43 -05:00
Joao Gilberto Magalhaes
c8f8320cfe Add IngressClass resource and update references to spec.ingressClassName across templates, examples, and documentation for consistency and backward compatibility
- Introduced new IngressClass resource in Helm templates to define `easyhaproxy` as the default ingress class.
- Updated Kubernetes examples to replace `easyhaproxy-ingress` with `easyhaproxy` as the ingress class name.
- Enhanced processor logic to support both the new `spec.ingressClassName` field and the deprecated `kubernetes.io/ingress.class` annotation.
- Revised documentation to reflect the changes and ensure alignment with Kubernetes recommendations.
2025-12-15 20:33:51 -05:00
Joao Gilberto Magalhaes
e8aceda402 Replace deprecated kubernetes.io/ingress.class annotation with spec.ingressClassName in Kubernetes examples and processor logic for compatibility with Kubernetes v1.22+. Updated documentation and examples to reflect the change while maintaining backward compatibility. 2025-12-15 19:58:08 -05:00
Joao Gilberto Magalhaes
71ca8f6a9d Bump version to 5.0.0 across repository for major release
- Updated all references from `4.6.0` to `5.0.0` in Docker, Kubernetes, and Swarm configurations, as well as Helm chart and documentation.
- Updated `RELEASE.md` with new version history and highlights.
- Aligned all deployment examples and documentation with the new version to ensure consistency.
2025-12-04 13:12:12 -05:00
Joao Gilberto Magalhaes
525e1b170d Reorganize documentation sidebar positions and update HAProxy stats configuration
- Updated sidebar positions across multiple documentation files for improved navigation and logical grouping.
- Revised HAProxy stats configuration to require `HAPROXY_PASSWORD` for enabling statistics.
- Clarified environment variable descriptions and usage in `environment-variable.md`.
2025-12-04 11:27:18 -05:00
Joao Gilberto Magalhaes
0add881a87 Update JWT Validator examples and documentation with key generation steps
- Updated `docker-compose-jwt-validator.yml` to reference `generate-keys.sh` for key generation.
- Revised plugin documentation to include detailed steps for generating JWT keys directly.
- Simplified configuration instructions to improve clarity and consistency.
2025-12-04 11:02:32 -05:00
Joao Gilberto Magalhaes
5397f0166e Remove version directive from all Docker Compose and Swarm configuration files.
- Eliminated the `version` field across various examples and documentation for simplicity and alignment with newer Docker Compose and Swarm standards.
- Updated relevant documentation and example usage instructions accordingly.
2025-12-04 09:25:05 -05:00
Joao Gilberto Magalhaes
50ffb4fe16 Add environment variable documentation for all plugins, reorganize plugin files for consistency
- Introduced environment variable support in documentation for Cloudflare, Cleanup, Deny Pages, IP Whitelist, JWT Validator, and FastCGI plugins.
- Updated plugin files with consistent headings, examples, and tables for easier configuration reference.
- Adjusted `README.md` and `plugins.md` to reflect updated plugin paths and environment variable usage.
2025-12-02 11:47:19 -05:00
Joao Gilberto Magalhaes
b4944ac544 Add use_builtin_ips support and reorganize plugin documentation
- Enhanced Cloudflare Plugin with `use_builtin_ips` option to automatically use and update built-in IP ranges.
- Updated Cloudflare IP restoration logic, including metadata and HAProxy config generation.
- Reorganized plugin documentation with sidebar positions for improved accessibility.
- Extended Cloudflare documentation to detail built-in IP ranges, examples, and configurations.
- Added new test cases to validate `use_builtin_ips` functionality and file handling.
2025-12-01 18:00:52 -05:00
Joao Gilberto Magalhaes
56fc86d77d Add allow_anonymous option to JwtValidatorPlugin
- Introduced `allow_anonymous` configuration option to permit requests without an Authorization header.
- Updated HAProxy configuration to handle optional JWT validation for anonymous access.
- Enhanced documentation with use cases, examples, and configuration details for `allow_anonymous`.
- Adjusted tests and plugin logic to support anonymous access scenarios.
2025-12-01 17:43:05 -05:00
Joao Gilberto Magalhaes
ae6eb1b55a Add detailed plugin documentation for Cleanup, Cloudflare, Deny Pages, IP Whitelist, JWT Validator, and FastCGI plugins
- Added individual markdown files with examples, configuration options, and HAProxy outputs for each plugin.
- Updated `README.md` to link plugin-specific documentation.
- Enhanced `plugins.md` to summarize plugin features and usage.
- Included Docker, Kubernetes, Swarm, and static configuration examples for all plugins.
2025-12-01 13:36:11 -05:00
Joao Gilberto Magalhaes
883521e7e1 Add FastCGI Plugin for PHP-FPM support with examples, tests, and documentation
- Introduced `FastcgiPlugin` for automatic HAProxy `fcgi-app` configuration generation.
- Added example Docker Compose setup for PHP-FPM with FastCGI.
- Updated documentation with detailed examples and usage instructions for FastCGI.
- Included test cases to validate plugin behavior and generated configurations.
- Enhanced `easymapping` to support `fcgi-app` definitions in global configs.
2025-12-01 13:04:32 -05:00
Joao Gilberto Magalhaes
a993025718 Add FastCGI support for PHP-FPM and backend server protocol configuration
- Introduced `proto` and `socket` options for backend communication, supporting protocols like FastCGI (fcgi) and HTTP/2 (h2).
- Updated HAProxy configuration templates to handle Unix socket paths and protocol-specific settings.
- Enhanced documentation with examples for FastCGI using Unix sockets and TCP connections.
- Added new tests to validate FastCGI support, including expected configuration generation.
2025-11-30 13:23:56 -05:00
Joao Gilberto Magalhaes
51f8cd4659 Add path-based JWT validation support in JwtValidatorPlugin
- Introduced `paths` and `only_paths` configuration options to define protected API paths.
- Enhanced HAProxy configuration generation to handle path-specific JWT validation.
- Updated plugin metadata to include path details and validation logic.
- Modified documentation with detailed examples for protecting paths.
- Added comprehensive tests for path-based validation scenarios and edge cases.
2025-11-28 10:38:09 -05:00
Joao Gilberto Magalhaes
75d6833769 Enhance plugin documentation and add Kubernetes plugin annotation support
- Updated `plugins.md` and `kubernetes.md` with detailed plugin configuration examples for Kubernetes annotations.
- Introduced support for `easyhaproxy.plugins` and `easyhaproxy.plugin.{name}.{key}` annotations in Kubernetes.
- Added comprehensive examples for JWT validation, IP whitelisting, and deny pages
2025-11-27 18:54:07 -05:00
Joao Gilberto Magalhaes
ebc4b2bf7a Add JWT Validator Plugin and corresponding tests
- Introduced `JwtValidatorPlugin` (DOMAIN): Validates JWT tokens for protected API endpoints using HAProxy's JWT functionality.
- Added configuration options: `enabled`, `algorithm`, `issuer`, `audience`, `pubkey_path`, and `pubkey`.
- Documented the plugin setup and usage in `plugins.md` and `plugin-development.md`.
- Created fixtures for `services-with-jwt-validator`.
- Added extensive test cases to validate configuration and HAProxy output generation.
- Ensured seamless integration into the plugin framework alongside existing domain plugins.
2025-11-27 18:48:10 -05:00
Joao Gilberto Magalhaes
57387f3e32 Add IP Whitelist Plugin and corresponding tests
- Introduced `IpWhitelistPlugin` (DOMAIN): Restricts access to specific IP addresses or CIDR ranges.
- Added configuration options: `enabled`, `allowed_ips`, and `status_code`.
- Updated `plugins.md` and `plugin-development.md` to document `IpWhitelistPlugin`.
- Created fixtures for `services-with-ip-whitelist`.
- Added extensive test cases for `IpWhitelistPlugin` to validate configuration and HAProxy output generation.
- Ensured seamless integration into the plugin framework alongside other domain plugins.
2025-11-27 18:35:37 -05:00
Joao Gilberto Magalhaes
90e3df2b75 Add built-in plugin framework and initial plugins
- Introduced a plugin system enabling EasyHAProxy extensions.
- Added `CleanupPlugin` (GLOBAL): Handles temporary file cleanup.
- Added `CloudflarePlugin` (DOMAIN): Restores visitor IP from Cloudflare headers.
- Added `DenyPagesPlugin` (DOMAIN): Blocks access to specified paths.
- Documented the plugin architecture, configuration options, and built-in plugins in `docs/plugin-development.md` and `docs/plugins.md`.
2025-11-27 17:43:59 -05:00
Joao Gilberto Magalhaes
facbaaabb6 Update documentation and examples
- Improved container labels documentation formatting and fixed typos.
- Clarified static discovery mode requirements in static.md.
- Updated Kubernetes annotations explanations.
- Enhanced README.md with details about supported platforms and features.
- Bumped Swarm example image to version 4.6.0.
2025-11-10 16:36:05 -05:00
Claude
aee9645b43
Enhance documentation with Docusaurus features and fix inaccuracies
Verified against source code and enhanced with Docusaurus markdown features:

Documentation Accuracy Fixes:
- Fixed acme.md: Added "letsencrypt" as valid AUTOCONFIG value (was incorrectly shown as "-")
- Added reference to ACME docs from environment-variable.md
- Verified all features against actual implementation in /src

Docusaurus Enhancements Added:
- Admonitions (:::note, :::tip, :::warning, :::danger, :::info) for important callouts
- Code block titles for all bash/yaml examples (e.g., title="Install EasyHAProxy")
- Better structured warnings and notes for limitations
- Improved formatting and readability throughout

Files Enhanced:
- kubernetes.md: Added info boxes, warnings, code titles
- docker.md: Added limitation warnings, code titles
- swarm.md: Added advantage tips, limitation warnings
- acme.md: Fixed Let's Encrypt autoconfig, enhanced requirements with admonitions
- ssl.md: Added code block titles for all examples
- static.md: Added live reload tip, SSL certificate note
- container-labels.md: Added definition explanation, code titles
- limitations.md: Restructured with clear warnings and explanations
- helm.md: Added warnings, code titles
- microk8s.md: Added ingress controller warning, code titles
- volumes.md: Added info box about volume purposes
- other.md: Added code block titles
- environment-variable.md: Added ACME reference note

All changes verified against actual Python source code implementation.
2025-11-09 23:50:44 +00:00
Claude
96120d4554
Add Docusaurus frontmatter and improve documentation structure
- Add sidebar_position to all documentation files (1-15)
- Add "Configuration Reference" section to README.md with links to:
  - Container Labels
  - Environment Variables
  - Volumes
  - Other Configurations
  - Limitations
- Ensure sidebar_position values match README.md link order exactly
- Order follows logical flow: Platform installation → Tool installation → Special topics → Configuration reference
- All documentation now properly configured for Docusaurus
2025-11-09 23:44:14 +00:00
byjg CI/CD
14cce510bf [skip ci] Update from 4.5.0 to 4.6.0 2025-08-24 23:14:07 +00:00
Joao Gilberto Magalhaes
ea9e4ee7c8 Some fixes and documentation
- Introduced ACME HTTP-01 challenge documentation.
- Added Docker Compose example for HTTP-01 setup.
- Updated `get_haproxy_command` logic with improved PID validation using `psutil`.
- Enhanced logging with a new `SingleLineNonEmptyFilter`.
- Expanded tests for daemonize functionalities.
- Updated dependencies to include `psutil`.
2025-08-24 17:49:25 -04:00
byjg CI/CD
f1c1d117f5 [skip ci] Update from 4.4.0 to 4.5.0 2025-04-16 18:53:24 +00:00
Joao Gilberto Magalhaes
0052cc320a Minor text adjustments 2024-11-15 20:16:14 -06:00
Joao Gilberto Magalhaes
0ab73621d4 Merge branch 'master' into issue/54 2024-11-15 20:16:01 -06:00
Joao Gilberto Magalhaes
386efcd6b5 Add DigitalOcean marketplace 2024-11-15 10:58:42 -06:00
Joao Gilberto Magalhaes
e88f6b6326 Added documentation for new feature + Upgrade HAPROXY to 2.8.11 + Upgrade Python 2024-11-15 10:13:24 -06:00
Joao Gilberto Magalhaes
f9e94c7d2c Improve documentation for issue #54 2024-02-22 16:47:22 -06:00
Joao M
fea04f0510
Add Helm as GitHub actions 2024-01-12 14:22:15 -06:00
Joao Gilberto Magalhaes
429c9ed176 Added Chart Logo 2023-12-04 01:55:13 -06:00