From 870a831e2efa36db1cd5b41aa9a84a19d6c19c1a Mon Sep 17 00:00:00 2001 From: Fredrik Baberg Date: Sat, 5 Nov 2022 16:24:05 +0100 Subject: [PATCH 01/12] Update to OctoPrint, 2022.11.01. --- 3dprinter-octoprint/CHANGELOG.md | 6 ++++++ 3dprinter-octoprint/DOCS.md | 16 ++++++++++++++-- 3dprinter-octoprint/README.md | 4 ++-- 3dprinter-octoprint/config.yaml | 4 ++-- .../rootfs/etc/cont-init.d/octoprint.sh | 9 +++++---- .../rootfs/usr/share/tempio/Caddyfile.gtpl | 6 ++++++ 6 files changed, 35 insertions(+), 10 deletions(-) diff --git a/3dprinter-octoprint/CHANGELOG.md b/3dprinter-octoprint/CHANGELOG.md index 01084fc..f300d70 100644 --- a/3dprinter-octoprint/CHANGELOG.md +++ b/3dprinter-octoprint/CHANGELOG.md @@ -1,3 +1,9 @@ +- 2022.11.01 + - Add reverse proxy config for camera with Ingress (untested). + - Only create OctoPrint user if missing. + - Update documentation. + - Mark mode optional. + - Update OctoPrint to 1.8.6 - Update icon to coloured nozzle. - Clean-up Caddy config. diff --git a/3dprinter-octoprint/DOCS.md b/3dprinter-octoprint/DOCS.md index ef72f39..00adea1 100644 --- a/3dprinter-octoprint/DOCS.md +++ b/3dprinter-octoprint/DOCS.md @@ -1,3 +1,15 @@ -# Dev -> image: ghcr.io/fredrikbaberg/addon-3dprinter-octoprint-{arch} +# Addon configuration +## Camera URL + +**Note: Currently not working.** + +Through setting a camera URL you should be able to access the camera stream even when using Ingress. + +## Mode + +By specifying a different mode you can instead access recovery and reverse proy test page. Normally this should not be needed. + +# Notes etc. + +> image: ghcr.io/fredrikbaberg/addon-3dprinter-octoprint-{arch} diff --git a/3dprinter-octoprint/README.md b/3dprinter-octoprint/README.md index e5dcc29..4529770 100644 --- a/3dprinter-octoprint/README.md +++ b/3dprinter-octoprint/README.md @@ -1,5 +1,5 @@ # 3DPrinter-OctoPrint -Provides OctoPrint as an addon to Home Assistant. +**Note: Currently not in a ready-to-use state.** -**Note: Currently not in a ready-to-use state.** \ No newline at end of file +Provides OctoPrint as an addon to Home Assistant. diff --git a/3dprinter-octoprint/config.yaml b/3dprinter-octoprint/config.yaml index bfde696..ca969bc 100644 --- a/3dprinter-octoprint/config.yaml +++ b/3dprinter-octoprint/config.yaml @@ -1,5 +1,5 @@ name: "3DPrinter-OctoPrint" -version: "2022.11.0" +version: "2022.11.01" slug: "3dprinter-octoprint" description: "OctoPrint as an addon, no additional bells and whistles." url: "https://github.com/fredrikbaberg/home-assistant-addons/tree/main/3dprinter-octoprint" @@ -28,5 +28,5 @@ options: mode: normal schema: camera_url: "url?" - mode: "list(normal|recovery|reverse_proxy_test)" + mode: "list(normal|recovery|reverse_proxy_test)?" tmpfs: true diff --git a/3dprinter-octoprint/rootfs/etc/cont-init.d/octoprint.sh b/3dprinter-octoprint/rootfs/etc/cont-init.d/octoprint.sh index f2ed904..b381d11 100644 --- a/3dprinter-octoprint/rootfs/etc/cont-init.d/octoprint.sh +++ b/3dprinter-octoprint/rootfs/etc/cont-init.d/octoprint.sh @@ -28,12 +28,13 @@ if [ ! -f /data/config/octoprint/config.yaml ]; then fi fi -# TODO: Check if user already exists before setting password. { # Make sure Ingress user for OctoPrint exists. bashio::log.notice "Ensure Ingress user (homeassistant) exist." - new_password=$(date +%s | sha256sum | base64 | head -c 32 ; echo) - new_password=homeassistant - octoprint --basedir /data/config/octoprint user add homeassistant --password "$new_password" --group users --group admins # 2> /dev/null + if ! octoprint --basedir /data/config/octoprint user list | grep -q 'homeassistant'; then + new_password=$(date +%s | sha256sum | base64 | head -c 32 ; echo) + new_password=homeassistant + octoprint --basedir /data/config/octoprint user add --password "$new_password" --admin homeassistant # 2> /dev/null + fi } || { # catch bashio::log.warning "Failed to ensure Ingress user exists, may not be able to launch." } diff --git a/3dprinter-octoprint/rootfs/usr/share/tempio/Caddyfile.gtpl b/3dprinter-octoprint/rootfs/usr/share/tempio/Caddyfile.gtpl index 7a9b521..73a9340 100644 --- a/3dprinter-octoprint/rootfs/usr/share/tempio/Caddyfile.gtpl +++ b/3dprinter-octoprint/rootfs/usr/share/tempio/Caddyfile.gtpl @@ -11,6 +11,12 @@ remote_ip 172.30.32.2 } uri strip_prefix {{ .ingress_entry }} + + handle_path /camera/* { + reverse_proxy @ingress {{ .camera_host }} { + } + } + handle { {{ if eq .mode "recovery" }} rewrite / /recovery From 786c11529233a0d76382ba7bd67aecbe6dbaee80 Mon Sep 17 00:00:00 2001 From: Fredrik Baberg Date: Sat, 5 Nov 2022 16:36:12 +0100 Subject: [PATCH 02/12] Remove trailing slash on camera URL --- 3dprinter-octoprint/config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/3dprinter-octoprint/config.yaml b/3dprinter-octoprint/config.yaml index ca969bc..d2d7d41 100644 --- a/3dprinter-octoprint/config.yaml +++ b/3dprinter-octoprint/config.yaml @@ -24,7 +24,7 @@ ports: ports_description: 5000/tcp: Web-based interface (Not required for Ingress) options: - camera_url: "http://b7aa59c4-camera-mjpg-streamer/" + camera_url: "http://b7aa59c4-camera-mjpg-streamer" mode: normal schema: camera_url: "url?" From ebed42aa865011a150e57df9bf3da4596ea06587 Mon Sep 17 00:00:00 2001 From: Fredrik Baberg Date: Sun, 11 Dec 2022 23:45:56 +0100 Subject: [PATCH 03/12] Minor updates --- 3dprinter-octoprint/CHANGELOG.md | 3 +++ 3dprinter-octoprint/Dockerfile | 3 +-- 3dprinter-octoprint/config.yaml | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/3dprinter-octoprint/CHANGELOG.md b/3dprinter-octoprint/CHANGELOG.md index f300d70..40601db 100644 --- a/3dprinter-octoprint/CHANGELOG.md +++ b/3dprinter-octoprint/CHANGELOG.md @@ -1,3 +1,6 @@ +- 2022.12.0 + - Minor updates. + - 2022.11.01 - Add reverse proxy config for camera with Ingress (untested). - Only create OctoPrint user if missing. diff --git a/3dprinter-octoprint/Dockerfile b/3dprinter-octoprint/Dockerfile index b8f40fe..c95bbc4 100644 --- a/3dprinter-octoprint/Dockerfile +++ b/3dprinter-octoprint/Dockerfile @@ -2,12 +2,11 @@ ARG BUILD_FROM="ghcr.io/home-assistant/amd64-base-debian:bullseye" FROM ${BUILD_FROM} ARG OCTOPRINT_VERSION="1.8.6" -ENV OCTOPRINT_VERSION=${OCTOPRINT_VERSION} - # Setup path for persistent install of Python packages ENV PYTHONPATH=/data/python/octoprint ENV PYTHONUSERBASE=/data/python/octoprint ENV PATH=/data/python/octoprint/bin:${PATH} +ENV OCTOPRINT_VERSION=${OCTOPRINT_VERSION} # Preparation for install of Caddy RUN apt update \ diff --git a/3dprinter-octoprint/config.yaml b/3dprinter-octoprint/config.yaml index d2d7d41..7bc0019 100644 --- a/3dprinter-octoprint/config.yaml +++ b/3dprinter-octoprint/config.yaml @@ -1,5 +1,5 @@ name: "3DPrinter-OctoPrint" -version: "2022.11.01" +version: "2022.12.0" slug: "3dprinter-octoprint" description: "OctoPrint as an addon, no additional bells and whistles." url: "https://github.com/fredrikbaberg/home-assistant-addons/tree/main/3dprinter-octoprint" From 2757b3ca6d7be1c8baa2da554cb4da7ef3b20e68 Mon Sep 17 00:00:00 2001 From: Fredrik Baberg Date: Mon, 12 Dec 2022 00:03:55 +0100 Subject: [PATCH 04/12] Add camera mode --- 3dprinter-octoprint/config.yaml | 4 ++-- 3dprinter-octoprint/rootfs/usr/share/tempio/Caddyfile.gtpl | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/3dprinter-octoprint/config.yaml b/3dprinter-octoprint/config.yaml index 7bc0019..d63d231 100644 --- a/3dprinter-octoprint/config.yaml +++ b/3dprinter-octoprint/config.yaml @@ -1,5 +1,5 @@ name: "3DPrinter-OctoPrint" -version: "2022.12.0" +version: "2022.12.01" slug: "3dprinter-octoprint" description: "OctoPrint as an addon, no additional bells and whistles." url: "https://github.com/fredrikbaberg/home-assistant-addons/tree/main/3dprinter-octoprint" @@ -28,5 +28,5 @@ options: mode: normal schema: camera_url: "url?" - mode: "list(normal|recovery|reverse_proxy_test)?" + mode: "list(normal|recovery|reverse_proxy_test|camera)?" tmpfs: true diff --git a/3dprinter-octoprint/rootfs/usr/share/tempio/Caddyfile.gtpl b/3dprinter-octoprint/rootfs/usr/share/tempio/Caddyfile.gtpl index 73a9340..a6853e0 100644 --- a/3dprinter-octoprint/rootfs/usr/share/tempio/Caddyfile.gtpl +++ b/3dprinter-octoprint/rootfs/usr/share/tempio/Caddyfile.gtpl @@ -22,6 +22,8 @@ rewrite / /recovery {{ else if eq .mode "reverse_proxy_test" }} rewrite / /reverse_proxy_test + {{ else if eq .mode "camera" }} + rewrite / /camera {{ end }} reverse_proxy @ingress 127.0.0.1:80 { header_up X-Script-Name {{ .ingress_entry }} From 99c4a1b8db6ab4215e22768f53b9f6ffea760e14 Mon Sep 17 00:00:00 2001 From: Fredrik Baberg Date: Mon, 12 Dec 2022 00:46:07 +0100 Subject: [PATCH 05/12] Update Caddy log path --- 3dprinter-octoprint/rootfs/etc/caddy/Caddyfile | 2 +- 3dprinter-octoprint/rootfs/usr/share/tempio/Caddyfile.gtpl | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/3dprinter-octoprint/rootfs/etc/caddy/Caddyfile b/3dprinter-octoprint/rootfs/etc/caddy/Caddyfile index bd7a1ab..d4878ed 100644 --- a/3dprinter-octoprint/rootfs/etc/caddy/Caddyfile +++ b/3dprinter-octoprint/rootfs/etc/caddy/Caddyfile @@ -3,7 +3,7 @@ debug log { format console - output file /var/log/caddy.log + output file /var/log/caddy/caddy.log } } # import configs/*.caddy diff --git a/3dprinter-octoprint/rootfs/usr/share/tempio/Caddyfile.gtpl b/3dprinter-octoprint/rootfs/usr/share/tempio/Caddyfile.gtpl index a6853e0..07220c7 100644 --- a/3dprinter-octoprint/rootfs/usr/share/tempio/Caddyfile.gtpl +++ b/3dprinter-octoprint/rootfs/usr/share/tempio/Caddyfile.gtpl @@ -2,7 +2,7 @@ debug log { format console - output file /var/log/caddy.log + output file /var/log/caddy/caddy.log } } From 54d364bf026c4fee76bdaf0c7a8747c3fdbda6ce Mon Sep 17 00:00:00 2001 From: Fredrik Baberg Date: Mon, 12 Dec 2022 01:59:48 +0100 Subject: [PATCH 06/12] Use reverse_proxy argument if mode=camera --- 3dprinter-octoprint/rootfs/usr/share/tempio/Caddyfile.gtpl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/3dprinter-octoprint/rootfs/usr/share/tempio/Caddyfile.gtpl b/3dprinter-octoprint/rootfs/usr/share/tempio/Caddyfile.gtpl index 07220c7..cbcea39 100644 --- a/3dprinter-octoprint/rootfs/usr/share/tempio/Caddyfile.gtpl +++ b/3dprinter-octoprint/rootfs/usr/share/tempio/Caddyfile.gtpl @@ -18,12 +18,12 @@ } handle { - {{ if eq .mode "recovery" }} + {{ if eq .mode "camera" }} + reverse_proxy @ingress {{ .camera_host }} {} + {{ else if eq .mode "recovery" }} rewrite / /recovery {{ else if eq .mode "reverse_proxy_test" }} rewrite / /reverse_proxy_test - {{ else if eq .mode "camera" }} - rewrite / /camera {{ end }} reverse_proxy @ingress 127.0.0.1:80 { header_up X-Script-Name {{ .ingress_entry }} From dda6ce10a6f64bec896a30255d5d2e7f1169f38e Mon Sep 17 00:00:00 2001 From: Fredrik Baberg Date: Mon, 12 Dec 2022 02:00:39 +0100 Subject: [PATCH 07/12] Revert version number --- 3dprinter-octoprint/config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/3dprinter-octoprint/config.yaml b/3dprinter-octoprint/config.yaml index d63d231..06a759c 100644 --- a/3dprinter-octoprint/config.yaml +++ b/3dprinter-octoprint/config.yaml @@ -1,5 +1,5 @@ name: "3DPrinter-OctoPrint" -version: "2022.12.01" +version: "2022.12.0" slug: "3dprinter-octoprint" description: "OctoPrint as an addon, no additional bells and whistles." url: "https://github.com/fredrikbaberg/home-assistant-addons/tree/main/3dprinter-octoprint" From b5d54f583fe627970bc15a392168690557e456c1 Mon Sep 17 00:00:00 2001 From: Fredrik Baberg Date: Mon, 12 Dec 2022 02:54:18 +0100 Subject: [PATCH 08/12] Split templates into direct/ingress --- 3dprinter-octoprint/CHANGELOG.md | 5 ++-- 3dprinter-octoprint/Dockerfile | 2 +- 3dprinter-octoprint/config.yaml | 2 +- .../rootfs/etc/caddy/Caddyfile | 4 +-- .../rootfs/etc/caddy/configs/.gitkeep | 0 .../rootfs/etc/cont-init.d/proxy.sh | 15 ++++++++-- .../share/tempio/caddy/Caddyfile.direct.gtpl | 6 ++++ .../share/tempio/{ => caddy}/Caddyfile.gtpl | 0 .../share/tempio/caddy/Caddyfile.ingress.gtpl | 29 +++++++++++++++++++ 9 files changed, 54 insertions(+), 9 deletions(-) create mode 100644 3dprinter-octoprint/rootfs/etc/caddy/configs/.gitkeep create mode 100644 3dprinter-octoprint/rootfs/usr/share/tempio/caddy/Caddyfile.direct.gtpl rename 3dprinter-octoprint/rootfs/usr/share/tempio/{ => caddy}/Caddyfile.gtpl (100%) create mode 100644 3dprinter-octoprint/rootfs/usr/share/tempio/caddy/Caddyfile.ingress.gtpl diff --git a/3dprinter-octoprint/CHANGELOG.md b/3dprinter-octoprint/CHANGELOG.md index 40601db..3a82a5e 100644 --- a/3dprinter-octoprint/CHANGELOG.md +++ b/3dprinter-octoprint/CHANGELOG.md @@ -1,5 +1,6 @@ -- 2022.12.0 - - Minor updates. +- 2022.12.01 + - Use separate templates for Caddy Ingress/direct config. + - Add mode for camera (for testing). - 2022.11.01 - Add reverse proxy config for camera with Ingress (untested). diff --git a/3dprinter-octoprint/Dockerfile b/3dprinter-octoprint/Dockerfile index c95bbc4..23dc61a 100644 --- a/3dprinter-octoprint/Dockerfile +++ b/3dprinter-octoprint/Dockerfile @@ -29,7 +29,7 @@ RUN apt update \ build-essential \ caddy \ # Extras. - # ffmpeg \ + ffmpeg \ # avrdude \ # dfu-util \ # dfu-programmer \ diff --git a/3dprinter-octoprint/config.yaml b/3dprinter-octoprint/config.yaml index 06a759c..d63d231 100644 --- a/3dprinter-octoprint/config.yaml +++ b/3dprinter-octoprint/config.yaml @@ -1,5 +1,5 @@ name: "3DPrinter-OctoPrint" -version: "2022.12.0" +version: "2022.12.01" slug: "3dprinter-octoprint" description: "OctoPrint as an addon, no additional bells and whistles." url: "https://github.com/fredrikbaberg/home-assistant-addons/tree/main/3dprinter-octoprint" diff --git a/3dprinter-octoprint/rootfs/etc/caddy/Caddyfile b/3dprinter-octoprint/rootfs/etc/caddy/Caddyfile index d4878ed..bc7a7ec 100644 --- a/3dprinter-octoprint/rootfs/etc/caddy/Caddyfile +++ b/3dprinter-octoprint/rootfs/etc/caddy/Caddyfile @@ -1,4 +1,4 @@ -# This file is a placeholder and will be replaced on launch. +# Main Caddy configuration file. Config for Ingress/direct will be stored in subfiles. { debug log { @@ -6,4 +6,4 @@ output file /var/log/caddy/caddy.log } } -# import configs/*.caddy +import configs/*.caddy diff --git a/3dprinter-octoprint/rootfs/etc/caddy/configs/.gitkeep b/3dprinter-octoprint/rootfs/etc/caddy/configs/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/3dprinter-octoprint/rootfs/etc/cont-init.d/proxy.sh b/3dprinter-octoprint/rootfs/etc/cont-init.d/proxy.sh index 6118176..6e83223 100644 --- a/3dprinter-octoprint/rootfs/etc/cont-init.d/proxy.sh +++ b/3dprinter-octoprint/rootfs/etc/cont-init.d/proxy.sh @@ -4,7 +4,7 @@ # Configures proxy # ============================================================================== -# Generate proxy configuration +# Generate proxy configuration for Ingress bashio::var.json \ interface "$(bashio::addon.ip_address)" \ port "^$(bashio::addon.ingress_port)" \ @@ -12,5 +12,14 @@ bashio::var.json \ camera_host "$(bashio::config 'camera_url')" \ mode "$(bashio::config 'mode')" \ | tempio \ - -template /usr/share/tempio/Caddyfile.gtpl \ - -out /etc/caddy/Caddyfile + -template /usr/share/tempio/caddy/Caddyfile.ingress.gtpl \ + -out /etc/caddy/configs/ingress.caddy + +# Generate proxy configuration for direct access, if enabled. +if bashio::var.has_value "$(bashio::addon.port 5000)"; then + bashio::var.json \ + mode "$(bashio::config 'mode')" \ + | tempio \ + -template /usr/share/tempio/caddy/Caddyfile.direct.gtpl \ + -out /etc/caddy/configs/direct.caddy +fi diff --git a/3dprinter-octoprint/rootfs/usr/share/tempio/caddy/Caddyfile.direct.gtpl b/3dprinter-octoprint/rootfs/usr/share/tempio/caddy/Caddyfile.direct.gtpl new file mode 100644 index 0000000..1f6971e --- /dev/null +++ b/3dprinter-octoprint/rootfs/usr/share/tempio/caddy/Caddyfile.direct.gtpl @@ -0,0 +1,6 @@ +# OctoPrint WebUI +:5000 { + reverse_proxy http://127.0.0.1:80 { + header_up X-Scheme {scheme} + } +} diff --git a/3dprinter-octoprint/rootfs/usr/share/tempio/Caddyfile.gtpl b/3dprinter-octoprint/rootfs/usr/share/tempio/caddy/Caddyfile.gtpl similarity index 100% rename from 3dprinter-octoprint/rootfs/usr/share/tempio/Caddyfile.gtpl rename to 3dprinter-octoprint/rootfs/usr/share/tempio/caddy/Caddyfile.gtpl diff --git a/3dprinter-octoprint/rootfs/usr/share/tempio/caddy/Caddyfile.ingress.gtpl b/3dprinter-octoprint/rootfs/usr/share/tempio/caddy/Caddyfile.ingress.gtpl new file mode 100644 index 0000000..197393c --- /dev/null +++ b/3dprinter-octoprint/rootfs/usr/share/tempio/caddy/Caddyfile.ingress.gtpl @@ -0,0 +1,29 @@ +:8099 { + @ingress { + remote_ip 172.30.32.2 + } + uri strip_prefix {{ .ingress_entry }} + + handle_path /camera/* { + reverse_proxy @ingress {{ .camera_host }} { + } + } + + handle { + {{ if eq .mode "camera" }} + reverse_proxy @ingress {{ .camera_host }} {} + {{ else if eq .mode "recovery" }} + rewrite / /recovery + {{ else if eq .mode "reverse_proxy_test" }} + rewrite / /reverse_proxy_test + {{ end }} + reverse_proxy @ingress 127.0.0.1:80 { + header_up X-Script-Name {{ .ingress_entry }} + header_up -Origin + header_up Origin 172.30.32.2 + header_up X-Forwarded-For 172.30.32.2 + header_up X-Scheme {scheme} + flush_interval -1 + } + } +} From 75a7bee51950c3ce8f4d552d9c7171d01757f72c Mon Sep 17 00:00:00 2001 From: Fredrik Baberg Date: Mon, 12 Dec 2022 03:05:54 +0100 Subject: [PATCH 09/12] Don't set (known) default password --- 3dprinter-octoprint/rootfs/etc/cont-init.d/octoprint.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/3dprinter-octoprint/rootfs/etc/cont-init.d/octoprint.sh b/3dprinter-octoprint/rootfs/etc/cont-init.d/octoprint.sh index b381d11..cb1620e 100644 --- a/3dprinter-octoprint/rootfs/etc/cont-init.d/octoprint.sh +++ b/3dprinter-octoprint/rootfs/etc/cont-init.d/octoprint.sh @@ -32,7 +32,6 @@ fi bashio::log.notice "Ensure Ingress user (homeassistant) exist." if ! octoprint --basedir /data/config/octoprint user list | grep -q 'homeassistant'; then new_password=$(date +%s | sha256sum | base64 | head -c 32 ; echo) - new_password=homeassistant octoprint --basedir /data/config/octoprint user add --password "$new_password" --admin homeassistant # 2> /dev/null fi } || { # catch From a9259cb33b67b560a5bb24693f998d2ce36f991c Mon Sep 17 00:00:00 2001 From: Fredrik Baberg Date: Tue, 13 Dec 2022 23:35:56 +0100 Subject: [PATCH 10/12] Revert to single Caddyfile --- 3dprinter-octoprint/config.yaml | 2 +- .../rootfs/etc/caddy/Caddyfile | 3 +- .../rootfs/etc/caddy/configs/.gitkeep | 0 .../rootfs/etc/cont-init.d/proxy.sh | 13 ++------- .../share/tempio/caddy/Caddyfile.direct.gtpl | 6 ---- .../share/tempio/caddy/Caddyfile.ingress.gtpl | 29 ------------------- 6 files changed, 4 insertions(+), 49 deletions(-) delete mode 100644 3dprinter-octoprint/rootfs/etc/caddy/configs/.gitkeep delete mode 100644 3dprinter-octoprint/rootfs/usr/share/tempio/caddy/Caddyfile.direct.gtpl delete mode 100644 3dprinter-octoprint/rootfs/usr/share/tempio/caddy/Caddyfile.ingress.gtpl diff --git a/3dprinter-octoprint/config.yaml b/3dprinter-octoprint/config.yaml index d63d231..946d3f3 100644 --- a/3dprinter-octoprint/config.yaml +++ b/3dprinter-octoprint/config.yaml @@ -1,5 +1,5 @@ name: "3DPrinter-OctoPrint" -version: "2022.12.01" +version: "2022.12.02" slug: "3dprinter-octoprint" description: "OctoPrint as an addon, no additional bells and whistles." url: "https://github.com/fredrikbaberg/home-assistant-addons/tree/main/3dprinter-octoprint" diff --git a/3dprinter-octoprint/rootfs/etc/caddy/Caddyfile b/3dprinter-octoprint/rootfs/etc/caddy/Caddyfile index bc7a7ec..b77bab1 100644 --- a/3dprinter-octoprint/rootfs/etc/caddy/Caddyfile +++ b/3dprinter-octoprint/rootfs/etc/caddy/Caddyfile @@ -1,4 +1,4 @@ -# Main Caddy configuration file. Config for Ingress/direct will be stored in subfiles. +# Temporary file, will be overwritten on launch. { debug log { @@ -6,4 +6,3 @@ output file /var/log/caddy/caddy.log } } -import configs/*.caddy diff --git a/3dprinter-octoprint/rootfs/etc/caddy/configs/.gitkeep b/3dprinter-octoprint/rootfs/etc/caddy/configs/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/3dprinter-octoprint/rootfs/etc/cont-init.d/proxy.sh b/3dprinter-octoprint/rootfs/etc/cont-init.d/proxy.sh index 6e83223..02ff578 100644 --- a/3dprinter-octoprint/rootfs/etc/cont-init.d/proxy.sh +++ b/3dprinter-octoprint/rootfs/etc/cont-init.d/proxy.sh @@ -12,14 +12,5 @@ bashio::var.json \ camera_host "$(bashio::config 'camera_url')" \ mode "$(bashio::config 'mode')" \ | tempio \ - -template /usr/share/tempio/caddy/Caddyfile.ingress.gtpl \ - -out /etc/caddy/configs/ingress.caddy - -# Generate proxy configuration for direct access, if enabled. -if bashio::var.has_value "$(bashio::addon.port 5000)"; then - bashio::var.json \ - mode "$(bashio::config 'mode')" \ - | tempio \ - -template /usr/share/tempio/caddy/Caddyfile.direct.gtpl \ - -out /etc/caddy/configs/direct.caddy -fi + -template /usr/share/tempio/caddy/Caddyfile.gtpl \ + -out /etc/caddy/Caddyfile diff --git a/3dprinter-octoprint/rootfs/usr/share/tempio/caddy/Caddyfile.direct.gtpl b/3dprinter-octoprint/rootfs/usr/share/tempio/caddy/Caddyfile.direct.gtpl deleted file mode 100644 index 1f6971e..0000000 --- a/3dprinter-octoprint/rootfs/usr/share/tempio/caddy/Caddyfile.direct.gtpl +++ /dev/null @@ -1,6 +0,0 @@ -# OctoPrint WebUI -:5000 { - reverse_proxy http://127.0.0.1:80 { - header_up X-Scheme {scheme} - } -} diff --git a/3dprinter-octoprint/rootfs/usr/share/tempio/caddy/Caddyfile.ingress.gtpl b/3dprinter-octoprint/rootfs/usr/share/tempio/caddy/Caddyfile.ingress.gtpl deleted file mode 100644 index 197393c..0000000 --- a/3dprinter-octoprint/rootfs/usr/share/tempio/caddy/Caddyfile.ingress.gtpl +++ /dev/null @@ -1,29 +0,0 @@ -:8099 { - @ingress { - remote_ip 172.30.32.2 - } - uri strip_prefix {{ .ingress_entry }} - - handle_path /camera/* { - reverse_proxy @ingress {{ .camera_host }} { - } - } - - handle { - {{ if eq .mode "camera" }} - reverse_proxy @ingress {{ .camera_host }} {} - {{ else if eq .mode "recovery" }} - rewrite / /recovery - {{ else if eq .mode "reverse_proxy_test" }} - rewrite / /reverse_proxy_test - {{ end }} - reverse_proxy @ingress 127.0.0.1:80 { - header_up X-Script-Name {{ .ingress_entry }} - header_up -Origin - header_up Origin 172.30.32.2 - header_up X-Forwarded-For 172.30.32.2 - header_up X-Scheme {scheme} - flush_interval -1 - } - } -} From 86c0476b84ca19098db61383cfd705e7bda2e13a Mon Sep 17 00:00:00 2001 From: Fredrik Baberg Date: Wed, 14 Dec 2022 00:11:52 +0100 Subject: [PATCH 11/12] Allow Caddy trusted ranges --- 3dprinter-octoprint/CHANGELOG.md | 2 +- 3dprinter-octoprint/config.yaml | 2 +- .../rootfs/usr/share/tempio/caddy/Caddyfile.gtpl | 11 ++++++----- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/3dprinter-octoprint/CHANGELOG.md b/3dprinter-octoprint/CHANGELOG.md index 3a82a5e..05c094f 100644 --- a/3dprinter-octoprint/CHANGELOG.md +++ b/3dprinter-octoprint/CHANGELOG.md @@ -1,6 +1,6 @@ - 2022.12.01 - - Use separate templates for Caddy Ingress/direct config. - Add mode for camera (for testing). + - Set Caddy to trust private ranges on Ingress entry. - 2022.11.01 - Add reverse proxy config for camera with Ingress (untested). diff --git a/3dprinter-octoprint/config.yaml b/3dprinter-octoprint/config.yaml index 946d3f3..5461546 100644 --- a/3dprinter-octoprint/config.yaml +++ b/3dprinter-octoprint/config.yaml @@ -1,5 +1,5 @@ name: "3DPrinter-OctoPrint" -version: "2022.12.02" +version: "2022.12.03" slug: "3dprinter-octoprint" description: "OctoPrint as an addon, no additional bells and whistles." url: "https://github.com/fredrikbaberg/home-assistant-addons/tree/main/3dprinter-octoprint" diff --git a/3dprinter-octoprint/rootfs/usr/share/tempio/caddy/Caddyfile.gtpl b/3dprinter-octoprint/rootfs/usr/share/tempio/caddy/Caddyfile.gtpl index cbcea39..2f3be6f 100644 --- a/3dprinter-octoprint/rootfs/usr/share/tempio/caddy/Caddyfile.gtpl +++ b/3dprinter-octoprint/rootfs/usr/share/tempio/caddy/Caddyfile.gtpl @@ -27,11 +27,12 @@ {{ end }} reverse_proxy @ingress 127.0.0.1:80 { header_up X-Script-Name {{ .ingress_entry }} - header_up -Origin - header_up Origin 172.30.32.2 - header_up X-Forwarded-For 172.30.32.2 - header_up X-Scheme {scheme} - flush_interval -1 + trusted_proxies private_ranges + # header_up -Origin + # header_up Origin 172.30.32.2 + # header_up X-Forwarded-For 172.30.32.2 + # header_up X-Scheme {scheme} + # flush_interval -1 } } } From e21dad4aeb55ce618bee44680429e29c0a902b0a Mon Sep 17 00:00:00 2001 From: Fredrik Baberg Date: Wed, 14 Dec 2022 00:27:39 +0100 Subject: [PATCH 12/12] Trust Ingress IP instead of private_ranges --- 3dprinter-octoprint/config.yaml | 2 +- .../rootfs/usr/share/tempio/caddy/Caddyfile.gtpl | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/3dprinter-octoprint/config.yaml b/3dprinter-octoprint/config.yaml index 5461546..d63d231 100644 --- a/3dprinter-octoprint/config.yaml +++ b/3dprinter-octoprint/config.yaml @@ -1,5 +1,5 @@ name: "3DPrinter-OctoPrint" -version: "2022.12.03" +version: "2022.12.01" slug: "3dprinter-octoprint" description: "OctoPrint as an addon, no additional bells and whistles." url: "https://github.com/fredrikbaberg/home-assistant-addons/tree/main/3dprinter-octoprint" diff --git a/3dprinter-octoprint/rootfs/usr/share/tempio/caddy/Caddyfile.gtpl b/3dprinter-octoprint/rootfs/usr/share/tempio/caddy/Caddyfile.gtpl index 2f3be6f..863eb4f 100644 --- a/3dprinter-octoprint/rootfs/usr/share/tempio/caddy/Caddyfile.gtpl +++ b/3dprinter-octoprint/rootfs/usr/share/tempio/caddy/Caddyfile.gtpl @@ -19,7 +19,9 @@ handle { {{ if eq .mode "camera" }} - reverse_proxy @ingress {{ .camera_host }} {} + reverse_proxy @ingress {{ .camera_host }} { + trusted_proxies 172.30.32.2 + } {{ else if eq .mode "recovery" }} rewrite / /recovery {{ else if eq .mode "reverse_proxy_test" }} @@ -27,7 +29,7 @@ {{ end }} reverse_proxy @ingress 127.0.0.1:80 { header_up X-Script-Name {{ .ingress_entry }} - trusted_proxies private_ranges + trusted_proxies 172.30.32.2 # header_up -Origin # header_up Origin 172.30.32.2 # header_up X-Forwarded-For 172.30.32.2