From a6150173fba2fec57025c052a3152e880d2d7c8a Mon Sep 17 00:00:00 2001 From: Fredrik Baberg Date: Mon, 27 Jun 2022 14:59:22 +0200 Subject: [PATCH] Change from nginx to haproxy --- 3dprinter-octoprint/Dockerfile | 2 +- 3dprinter-octoprint/config.yaml | 2 +- .../rootfs/etc/cont-init.d/octoprint.sh | 5 ++- .../rootfs/etc/cont-init.d/proxy.sh | 7 ++-- .../rootfs/usr/share/tempio/ingress.cfg | 36 +++++++++++++++++++ .../rootfs/usr/share/tempio/ingress.conf | 23 ------------ 6 files changed, 42 insertions(+), 33 deletions(-) create mode 100644 3dprinter-octoprint/rootfs/usr/share/tempio/ingress.cfg delete mode 100644 3dprinter-octoprint/rootfs/usr/share/tempio/ingress.conf diff --git a/3dprinter-octoprint/Dockerfile b/3dprinter-octoprint/Dockerfile index c9ba66a..97eb83f 100644 --- a/3dprinter-octoprint/Dockerfile +++ b/3dprinter-octoprint/Dockerfile @@ -15,7 +15,7 @@ RUN apt update && \ python3-venv \ python3-dev \ build-essential \ - nginx \ + haproxy \ && \ apt clean diff --git a/3dprinter-octoprint/config.yaml b/3dprinter-octoprint/config.yaml index 568e4d8..8b80231 100644 --- a/3dprinter-octoprint/config.yaml +++ b/3dprinter-octoprint/config.yaml @@ -1,5 +1,5 @@ name: "3DPrinter-OctoPrint" -version: "2022.6.016" +version: "2022.6.017" slug: "3dprinter-octoprint" description: "New instance of OctoPrint" url: "https://github.com/fredrikbaberg/home-assistant-addons/tree/main/3dprinter-octoprint" diff --git a/3dprinter-octoprint/rootfs/etc/cont-init.d/octoprint.sh b/3dprinter-octoprint/rootfs/etc/cont-init.d/octoprint.sh index 924d3a8..9ecab13 100644 --- a/3dprinter-octoprint/rootfs/etc/cont-init.d/octoprint.sh +++ b/3dprinter-octoprint/rootfs/etc/cont-init.d/octoprint.sh @@ -4,8 +4,6 @@ # s6-overlay docs: https://github.com/just-containers/s6-overlay # ============================================================================== -whoami - { # Check if OctoPrint is installed bashio::log.info "Check OctoPrint version..." octoprint --version @@ -19,4 +17,5 @@ whoami } bashio::log.info "Install OctoPrint..." pip install octoprint==$OCTOPRINT_VERSION -} \ No newline at end of file +} +bashio::log.info "OctoPrint ready..." diff --git a/3dprinter-octoprint/rootfs/etc/cont-init.d/proxy.sh b/3dprinter-octoprint/rootfs/etc/cont-init.d/proxy.sh index 49d1dee..1b33178 100644 --- a/3dprinter-octoprint/rootfs/etc/cont-init.d/proxy.sh +++ b/3dprinter-octoprint/rootfs/etc/cont-init.d/proxy.sh @@ -9,10 +9,7 @@ bashio::log.info "Proxy cont-init.d" ingress_entry=$(bashio::addon.ingress_entry) export ingress_entry=${ingress_entry} -# Make sure output folder exists. -mkdir -p /etc/nginx/http.d/ - tempio \ -conf /data/options.json \ - -template /usr/share/tempio/ingress.conf \ - -out /etc/nginx/http.d/ingress.conf + -template /usr/share/tempio/ingress.cfg \ + -out /etc/haproxy/haproxy.cfg diff --git a/3dprinter-octoprint/rootfs/usr/share/tempio/ingress.cfg b/3dprinter-octoprint/rootfs/usr/share/tempio/ingress.cfg new file mode 100644 index 0000000..ad848f4 --- /dev/null +++ b/3dprinter-octoprint/rootfs/usr/share/tempio/ingress.cfg @@ -0,0 +1,36 @@ +global + maxconn 4096 + user haproxy + group haproxy + daemon + log 127.0.0.1 local0 debug + +defaults + log global + mode http + compression algo gzip + option httplog + option dontlognull + retries 3 + option redispatch + option http-server-close + option forwardfor + maxconn 2000 + timeout connect 5s + timeout client 15m + timeout server 15m + +frontend ingress + bind *:8099 + default_backend octoprint + +backend octoprint + acl needs_scheme req.hdr_cnt(X-Scheme) eq 0 + + http-request set-header X-Forwarded-Proto https if { ssl_fc } + http-request set-header X-Forwarded-Proto http if !{ ssl_fc } + + option forwardfor + + server octoprint1 127.0.0.1:5000 + errorfile 503 /etc/haproxy/errors/503.http diff --git a/3dprinter-octoprint/rootfs/usr/share/tempio/ingress.conf b/3dprinter-octoprint/rootfs/usr/share/tempio/ingress.conf deleted file mode 100644 index e56ce42..0000000 --- a/3dprinter-octoprint/rootfs/usr/share/tempio/ingress.conf +++ /dev/null @@ -1,23 +0,0 @@ -upstream "octoprint" { - server 127.0.0.1:5000; -} - -server { - listen 8099; - allow 172.30.32.2; - deny all; - - location / { - proxy_pass http://octoprint/; # make sure to add trailing slash here! - proxy_set_header Host $http_host; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection "upgrade"; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Scheme $scheme; - proxy_set_header X-Script-Name {{ env "ingress_entry" }}; - proxy_http_version 1.1; - - client_max_body_size 0; - } -} \ No newline at end of file