Skip to content

Releases: byjg/docker-easy-haproxy

Release 5.0.0

04 Dec 18:32

Choose a tag to compare

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 proto definitions (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 under src/plugins/builtin/, and wiring in HaproxyConfigGenerator to 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 proto when 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 under docs/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

24 Aug 23:08
c861d9b

Choose a tag to compare

What's Changed

  • Improve ACME and Docker documentation with fixes by @byjg in #61

Full Changelog: 4.5.0...4.6.0

Releases 4.5.0

16 Apr 18:50

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 4.4.0...4.5.0

Release 4.4.0

22 Nov 01:11

Choose a tag to compare

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

09 Feb 03:56
d2a0c24

Choose a tag to compare

What's Changed

  • Issue #32 Added parameter EASYHAPROXY_LETSENCRYPT_SERVER. Default is empty. If set as staging allow 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

02 Sep 23:01

Choose a tag to compare

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

21 Aug 00:44

Choose a tag to compare

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_MODE to 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_PORT to false or create a password with HAPROXY_PASSWORD

Release 4.0.0

14 Aug 16:03
b4af1e2

Choose a tag to compare

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 DISCOVER to EASYHAPROXY_DISCOVER
  • Enabled the possibility to change the easyhaproxy docker label with the environment variable EASYHAPROXY_LABEL_PREFIX
  • Implemented dynamic definition and removed easyhaproxy.definitions docker label
  • Changed docker label order from easyhaproxy.[property].[definition] to easyhaproxy.[definition].[property]
  • Upgrade alpine from 3.14 to 3.16
  • Upgrade HAProxy from 2.4.15 to 2.4.17

Issues: #11 , #16
PRs: #14 , #16

Release 3.0.2

27 Mar 23:59

Choose a tag to compare

Implement multi-containers PR #10

Release 3.0.1

21 Oct 17:27
21069ec

Choose a tag to compare

Fix HAProxy path PR #9