Releases: byjg/docker-easy-haproxy
Releases · byjg/docker-easy-haproxy
Release 5.0.0
EasyHAProxy Release Notes
Scope
- Focus: new plugin framework, documentation overhaul, examples, tests, and chart version bump
Highlights
- Introduced a full plugin framework (global and domain plugins) with built-in plugins: cleanup, cloudflare, deny-pages, fastcgi, ip-whitelist, and jwt-validator.
- HAProxy config generation now injects plugin output and supports backend
protodefinitions (e.g., fcgi/h2) alongside existing label/annotation parsing. - Helm chart version raised to
1.0.0; release automation now updates Swarm docs during tagging. - Added comprehensive plugin documentation and a plugin development guide, plus a full release guide for maintainers.
- Expanded examples for Docker, Swarm, Kubernetes, and static setups covering plugin usage; added PHP app sample and key-generation helper.
- Test suite enlarged with plugin coverage, new fixtures/expected outputs, and updated test entrypoint (
cd src && pytest tests/ -vv).
Code
- Added plugin runtime:
src/plugins/__init__.py, builtin plugins undersrc/plugins/builtin/, and wiring inHaproxyConfigGeneratorto execute global/domain plugins and merge their HAProxy snippets. - Enabled plugin configuration via env vars (
EASYHAPROXY_PLUGINS_*), YAML (static), and labels/annotations; domain configs propagate into the generated backend blocks. - HAProxy template renders global plugin blocks and per-domain plugin snippets; server lines now honor
protowhen provided. - Container processing and label handling extended to capture plugin configs and plugin-generated metadata.
Documentation
- README now indexes plugin guides and built-in plugin pages.
- New/expanded docs:
docs/plugins.md,docs/plugin-development.md, and detailed pages for each builtin plugin underdocs/Plugins/. - Updated deployment docs (Kubernetes, Swarm, etc.) and config references (labels, env vars, other settings) to reflect plugin support and current defaults.
- Release process documented in
RELEASE.md; environment variable docs clarify stats behavior.
Examples
- Added plugin-enabled examples for Docker, Swarm, Kubernetes, and static configurations, plus combined plugin scenarios.
- New PHP demo app and helper script
examples/generate-keys.sh; removed placeholder certificates from examples. - Refreshed docker-compose and manifest samples to include plugin labels/annotations and updated image tags.
Tests & CI
- Large plugin test suite added (
src/tests/test_plugins.py) with new fixtures/expected outputs for plugin flows and fcgi support. - Test runner target now executes from
src/with verbose output. - Build workflow updates keep Swarm docs in sync when tagging releases.
Release 4.6.0
What's Changed
Full Changelog: 4.5.0...4.6.0
Releases 4.5.0
Release 4.4.0
What's Changed
- Issue #36 - Fix Swarm Connection when container is not in the same network as EasyHAProxy by @byjg in #46
- Issue #38 Add HTTP 2.0 Support for SSL by @byjg in #45
- Issue #43 - Customize Load Balance method + Custom HAProxy config by @byjg in #44
- Issue #41 - Add support to various Certificate Authorities (CA) using the protocol ACME (e.g. Let's Encrypt, ZeroSSL, BuyPass, etc) by @byjg in #42
Full Changelog: 4.3.0...4.4.0
Release 4.3.0
What's Changed
- Issue #32 Added parameter
EASYHAPROXY_LETSENCRYPT_SERVER. Default is empty. If set asstagingallow get the certificate from the staging server. Also allows to set a specific URL to get the certificates. - Issue #33 Use the container IP instead the container name. It resolves issues in different network.
- Minor Bug Fixes
Full Changelog: 4.2.0...4.3.0
Release 4.2.0
Major Feature: Kubernetes
- Discover from Ingress
- Letsencrypt
- HELM and Helm Repository
Other Features
- Log Level and Log per application
- Reorganization of the Documentation
- Several other minor improvements.
Release 4.1.0
Read changes from release 4.0.0 plus new changes:
- Enable letsencrypt
-l easyhaproxy.[definition].letsencrypt=true
- Redirect hosts now is a JSON parameter
-l easyhaproxy.[definition].redirect='{"old.host1.com", "https://www.host1.com"}'
- Add multiple hosts using a single definition.
-l easyhaproxy.[definition].host=www.host1.com,host1.com
- Add parameter
redirect_ssl(true/false) to redirect to HTTPS. - Add environment variable
EASYHAPROXY_SSL_MODEto set up the SSL protocols HAProxy will work. - Add parameter
ssl(true/false) to provide SSL Certs as a file - Statistics are enabled by default with no password. To disable it set
HAPROXY_STATS_PORTtofalseor create a password withHAPROXY_PASSWORD
Release 4.0.0
This version implements a major refactory. As a result, it breaks compatibility with the previous versions.
Do not upgrade to this version before upgrading your definitions according to the features below:
- Renamed the environment variable
DISCOVERtoEASYHAPROXY_DISCOVER - Enabled the possibility to change the
easyhaproxydocker label with the environment variableEASYHAPROXY_LABEL_PREFIX - Implemented dynamic definition and removed
easyhaproxy.definitionsdocker label - Changed docker label order from
easyhaproxy.[property].[definition]toeasyhaproxy.[definition].[property] - Upgrade alpine from 3.14 to 3.16
- Upgrade HAProxy from 2.4.15 to 2.4.17
Release 3.0.2
Implement multi-containers PR #10
Release 3.0.1
Fix HAProxy path PR #9