This is an attempt to isolate the reverse-proxy and the associated certificate software provider from the other services, inside one and only one container, as they do not benefit in any way from being separated. Thus reducing the time needed to setup a complex environment @Home (or anywhere else).
In order to work, this image does use other softwares listed here :
NGINX, which is used as a webserver for let's encrypt challenge (in the process of generating the certificates). NGINX is only run when the certificates are renewed.
CRON, which is used to renew the certificates on a fixed frequency, using a script.
RSYSLOG, which is used to interpret HAProxy Logs on the associated socket
Various unix/linux commands, which are used to setup the image (SED) or to read the logs on the container (TAIL).
The image comes with a few scripts explained below :
/scripts/start.sh : used to start the container
/scripts/restart.sh : can be used manually to restart haproxy. Is used automatically after renewing certificates, in order for HaProxy to load the new ones.
/scripts/renew-certs.sh : starts and halts nginx, and calls for let's encrypt server in-between. Generates the cert files, and put them in the format expected by HAProxy.
Special thanks to every software's authors, for all their hard work, and also to Alpine Linux Team for making all this possible in a stupidly small form factor.
A docker-compose and example config files are available on codeberg.