1
0
Fork 0
Commit graph

404 commits

Author SHA1 Message Date
Joao Gilberto Magalhaes
5767e55dea Refactor Docker Compose examples and plugins, add pytest tests
- Adjusted Compose files to build images locally instead of pulling.
- Simplified examples by removing `/etc/hosts` entry instructions.
- Enhanced `cloudflare.py` plugin with a configurable log format.
- Improved `generate-keys.sh` for portability using `$SCRIPT_DIR`.
- Added end-to-end tests for Compose examples using pytest.
2026-02-11 19:19:08 -05:00
Joao Gilberto Magalhaes
343987ab58 Update secrets configuration in CI workflow for DOC_TOKEN
- Replaced `secrets: inherit` with explicit `DOC_TOKEN` in workflow file.
2026-02-07 23:42:57 -05:00
Joao Gilberto Magalhaes
a07c3fc9e3 Add --current flag to bump-version.sh for displaying current versions
- Introduced `--current` flag to show the current App and Chart versions.
- Improved user guidance with updated usage instructions and scripts output.
- Added post-merge steps to the version bump process.
2026-02-07 22:02:53 -05:00
Joao Gilberto Magalhaes
8d24cdb513 Update logo ASCII art in main.py and bump Alpine base image to 3.23 2026-02-06 21:07:45 -05:00
Joao Gilberto Magalhaes
714fe2fc5b Remove .gitpod.yml and uv.lock, update Dockerfile to include uv sync
- Deleted `.gitpod.yml` to stop using Gitpod-specific configuration.
- Added `uv.lock` for dependency versioning.
- Updated Dockerfile to include `uv sync --no-dev` in the build process.
2026-02-06 20:52:10 -05:00
Joao Gilberto Magalhaes
7363538b5e Switch to uv for dependency management and streamline Dockerfile
- Replaced `pip install` with `uv sync --frozen` for improved dependency handling.
- Simplified Dockerfile by removing unused packages and redundant commands.
- Updated test and execution steps to utilize `uv` for consistency.
2026-02-06 20:36:26 -05:00
Joao Gilberto Magalhaes
17f40bf2bd Update CI workflow to use uv sync for dependency installation and streamline test execution
- Replaced `pip install` with `uv sync --group dev` for dependency management.
- Adjusted test step to ensure `uv` commands are properly initialized in the PATH.
2026-02-06 20:23:58 -05:00
Joao Gilberto Magalhaes
dc28b18351 Fix lint errors 2026-01-22 22:05:49 -05:00
Joao Gilberto Magalhaes
62e5c054f4 Refactor: modernize codebase by replacing deprecated patterns, simplifying imports, and applying type hinting refinements. 2026-01-22 21:47:33 -05:00
Joao Gilberto Magalhaes
55d0d1a105 Modernizing PyThon Projec 2026-01-22 20:14:22 -05:00
Joao Gilberto Magalhaes
b8848c8303 Update containerenv tests to include new ingress status fields
- Added support for new configuration fields: `update_ingress_status`, `deployment_mode`, `external_hostname`, and `ingress_status_update_interval`.
- Updated assertions in test cases to validate the presence of these fields.
2025-12-15 21:18:49 -05:00
Joao Gilberto Magalhaes
542fab1607 Add ingress status update functionality to support various deployment modes
- Introduced `ingressStatus` configuration in Helm values to enable status updates and customize deployment modes (auto, daemonset, nodeport, clusterip).
- Implemented logic in the processor to detect deployment mode, retrieve ingress addresses, and update ingress status dynamically.
- Updated Kubernetes manifests to grant required permissions for `ingresses/status` operations and pass necessary environment variables for configuration.
- Adjusted Helm templates and associated Kubernetes examples to reflect the new ingress status update capability.
2025-12-15 21:11:02 -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
a577601e52 Add Sponsor and Artifact Hub badges to README.md 2025-12-04 21:07:11 -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
be9a99eb79 Automate version bumping with bump-version.sh script
- Added `scripts/bump-version.sh` to centralize and streamline version updates across repository components (images, docs, Helm chart).
- Updated release process in `RELEASE.md` to incorporate the version bump script for creating PRs and manual version verification.
- Modified CI workflows to verify pre-bumped versions instead of auto-updating during tag builds.
- Simplified version management and enhanced consistency in deployment artifacts.
2025-12-04 13:07:24 -05:00
Joao Gilberto Magalhaes
0324267adf
Merge pull request #64 from byjg/plugins
Implement Plugin System with Built-in Plugins and Comprehensive Examples
2025-12-04 11:40:07 -05:00
Joao Gilberto Magalhaes
85ba5723a0 Bump chart version to 1.0.0 to signify stable release. 2025-12-04 11:29:33 -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
3c7ef2d2a8 Update Swarm documentation to replace tags dynamically during release
- Added release tag replacement logic for `docs/swarm.md` to align with Kubernetes and Helm documentation updates.
- Ensured consistency in versioning across all deployment examples and documentation.
2025-12-04 11:18:19 -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
e1d2cb3b59 Update Cloudflare examples to improve IP list as part of idempotent configuration
- Added `echo Are there some specific_headers missing?`
- These required unlocks plugin documentation consistency
2025-12-04 10:22:16 -05:00
Joao Gilberto Magalhaes
b9a9bee0b9 Revamp Swarm example documentation and streamline deployment instructions
- Consolidated and simplified Swarm example README to focus on YAML header comments for documentation.
- Removed redundant and extended sections, replacing with concise steps for getting started.
- Standardized YAML headers across `easyhaproxy.yml`, `services.yml`, and `portainer.yml` with a clearer and more readable format.
- Enhanced user guidance for deployment, setup requirements, verification, and cleanup.
2025-12-04 10:07:17 -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
99f4ff325b Update logging level for plugin loading and extend static example documentation
- Changed logging level from `info` to `debug` in plugin loading to reduce verbosity during runtime.
- Significantly expanded `examples/static/README.md` with new sections, examples (basic, certbot, deny pages, JWT validator), and detailed usage instructions.
- Improved `examples/docker/docker-compose-changed-label.yml` with clearer redirect syntax using JSON for better readability.
- Fixed handling of empty or invalid JSON in labels within `easymapping` with fallback to default values and error logging.
- Added additional entries to `.gitignore` to exclude dynamic and temporary files like auto-generated configuration files and certificates.
2025-12-04 09:09:33 -05:00
Joao Gilberto Magalhaes
3a4b428e46 Add generate-keys.sh script for SSL and JWT key generation and update examples
- Added `generate-keys.sh` script to automate the generation of SSL certificates and JWT keys for testing.
- Updated examples and documentation across Docker, Kubernetes, Swarm, and static directories to include instructions for running the script.
- Removed hardcoded .pem files and replaced with dynamically generated keys and certificates.
- Emphasized testing-only usage of self-signed certificates.
2025-12-02 12:28:22 -05:00
Joao Gilberto Magalhaes
d3149637b4 Add detailed release guide and update Makefile test command
- Introduced `RELEASE.md` with comprehensive steps for creating, automating, and troubleshooting EasyHAProxy releases.
- Enhanced the Makefile `test` command to include verbosity in the pytest execution.
2025-12-02 11:54:47 -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
90e0df42a1 Fix blank line addition in docker.txt configuration 2025-11-27 20:36:41 -05:00
Joao Gilberto Magalhaes
d3637e737a Refactor plugin configuration examples and improve formatting in documentation
- Replaced `config.yml` with modular configuration examples: `config-basic.yml`, `config-certbot.yml`, `config-deny-pages.yml`, and `config-jwt-validator.yml`.
- Improved examples with detailed usage instructions, prerequisites, and testing steps for each configuration.
- Fixed indentation and formatting inconsistencies across plugin files and HAProxy configuration generation.
- Streamlined README comparison table for static vs. dynamic discovery.
- Updated `docker-compose-jwt-validator.yml` to correct audience key formatting.
2025-11-27 19:49:32 -05:00
Joao Gilberto Magalhaes
f75cb8aab2 Add comprehensive plugin usage examples for Docker, Kubernetes, and Swarm
- Introduced multiple detailed plugin examples for Cloudflare IP restoration, IP whitelisting, JWT validation, and combined usage.
- Added configurations for `docker-compose`, `Kubernetes`, and `Swarm` showcasing individual and multi-plugin use cases.
- Included clear prerequisites, setup steps, and testing procedures for each example.
- Documented advanced scenarios like path blocking, custom IP lists, and JWT validation for production environments.
2025-11-27 19:31:15 -05:00
Joao Gilberto Magalhaes
06d1d447f8 Add comprehensive Docker, Kubernetes, Swarm, and static configuration examples
- Added detailed `README.md` files with step-by-step instructions for Docker Compose, Kubernetes, Swarm, and static configuration examples.
- Included use cases for SSL setup, Let's Encrypt integration, load balancing, and advanced features like plugins and path-based routing.
- Documented environment variables, service labels, and troubleshooting tips across all examples.
- Enhanced examples with clear testing guidelines, SSL certificate generation steps, and debugging workflows.
2025-11-27 19:02:39 -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
91f8ff5d08 Add tests for plugin integration and improve plugin configuration handling
- Created fixtures for `services-with-cloudflare`, `services-with-deny-pages`, and `services-with-multiple-plugins`.
- Added comprehensive test cases for `CloudflarePlugin`, `DenyPagesPlugin`, and `CleanupPlugin`.
- Ensured proper configuration propagation to plugins using labels in `easymapping/__init__.py`.
- Validated multi-plugin integration and consistent output in HAProxy configuration generation.
2025-11-27 18:17:58 -05:00
Joao Gilberto Magalhaes
113b90a697 Add support for plugin configurations and minor refactoring
- Added `plugin_configs` attribute to test cases.
- Improved handling of enabled plugins in `easymapping/__init__.py`.
- Updated templates directory path resolution for robustness.
- Refactored example files to enhance formatting consistency.
2025-11-27 18:08:05 -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
fdb6ddf3b9
Merge pull request #63 from byjg/claude/audit-docs-sidebar-position-011CUyCPndSvfgQT9p3YFcn7
Audit and organize Docusaurus documentation structure
2025-11-27 14:11:43 -03: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
Joao M
58eea44929
Update README.md 2025-08-24 18:24:46 -05:00