You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
HAProxy docker image with Lets Encrypt SSL auto renewal using certbot with built in support for wildcard certificates using AWS Route53.
5
6
6
7
## Paths
8
+
7
9
*`/deployment/letsencrypt` - Certbot config directory where generated certificates are stored
8
10
*`/etc/haproxy/haproxy.cfg` - Default location of haproxy configuration file
9
11
*`/etc/haproxy/certs` - Static (non certbot) certificates includes self-signed and any other static certificates should be volume mapped into this folder
10
12
*`/var/log/*` - Location of log files (all are symlinked to stdout)
11
13
12
14
## Environment variables
15
+
13
16
*`DOMAINNAME` - IANA TLD subdomain for which a Lets Encrypt certificate should be requested
14
17
*`DOMAINNAMES` - Comma separated list of IANA TLD subdomain names for which Lets Encrypt certificates should be
15
18
requested (this is a multi-value alternative to DOMAINNAME)
16
19
*`HAPROXY_USER_PARAMS` - Additional arguments that should be passed to the haproxy process during startup
17
20
*`HAPROXY_CONFIG` - Location of HAProxy config file (default: `/etc/haproxy/haproxy.cfg`)
18
21
*`PROXY_LOGLEVEL` - Log level for HAProxy (default: `notice`)
22
+
*`HTTP_PORT` - The container binds to this port for handling HTTP requests (default: `80`)
23
+
*`HTTPS_PORT` - The container binds to this port for handling HTTPS requests (default: `443`)
24
+
*`HTTPS_FORWARDED_PORT` - The port set in the `X-Forwarded-Port` header of requests send to the Manager/Keycloak (default: `%[dst_port]` this is the HAProxy port)
25
+
*`NAMESERVER` - The nameserver hostname and port used for resolving the Manager/Keycloak hosts (default: `127.0.0.11:53`)
19
26
*`MANAGER_HOST` - Hostname of OpenRemote Manager (default: `manager`)
20
27
*`MANAGER_WEB_PORT` - Web server port of OpenRemote Manager (default `8080`)
21
28
*`MANAGER_MQTT_PORT` - MQTT broker port of OpenRemote Manager (default `1883`)
@@ -31,12 +38,22 @@ requested (this is a multi-value alternative to DOMAINNAME)
31
38
*`MQTT_RATE_LIMIT` - Enable rate limiting for MQTT connections (connections/s)
32
39
33
40
## Custom certificate format
41
+
34
42
Any custom certificate volume mapped into `/etc/haproxy/certs` should be in PEM format and must include the full certificate chain and the private key, i.e.:
See `haproxy` SSL cert [documentation](https://www.haproxy.com/blog/haproxy-ssl-termination/#enabling-ssl-with-haproxy).
40
48
41
49
## Edge gateway tunnelling using SISH
50
+
42
51
The built in `haproxy.cfg` has support for forwarding requsts beginning with `gw-` to `https://SISH_HOST:SISH_PORT` just define these environment variables to enable this.
52
+
53
+
## Kubernetes
54
+
55
+
When running the proxy in Kubernetes make sure to set the `HTTP_PORT` and `HTTPS_PORT` environment variables to a non-privileged port (> 1024).
56
+
If you use an Ingress, reconfigure the `HTTPS_FORWARDED_PORT` to the HTTPS port of your Ingress (443).
57
+
58
+
You will also need to set the `NAMESERVER` environment variable to the cluster DNS (usually 10.96.0.10:53).
59
+
The cluster DNS typically only resolves fully qualified hostnames, so make sure to set these using the `MANAGER_HOST` and `KEYCLOAK_HOST` environment variables (e.g. `manager.default.svc.cluster.local`).
0 commit comments