diff --git a/3dprinter-octoprint/config.yaml b/3dprinter-octoprint/config.yaml index 2487544..0bb6bf9 100644 --- a/3dprinter-octoprint/config.yaml +++ b/3dprinter-octoprint/config.yaml @@ -1,5 +1,5 @@ name: "3DPrinter-OctoPrint" -version: "2023.01.01" +version: "2023.01.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" @@ -23,13 +23,13 @@ ports: 5000/tcp: null ports_description: 5000/tcp: Web-based interface -# options: -# camera_url: "http://b7aa59c4-camera-mjpg-streamer" -# mode: normal -# trusted_proxies: "" -# schema: -# camera_url: "url?" -# mode: "list(normal|recovery|reverse_proxy_test|camera)?" -# trusted_proxies: "str?" +options: + trusted_proxies: "" + # camera_url: "http://b7aa59c4-camera-mjpg-streamer" + # mode: normal +schema: + trusted_proxies: "str?" + # camera_url: "url?" + # mode: "list(normal|recovery|reverse_proxy_test|camera)?" tmpfs: true image: ghcr.io/fredrikbaberg/ha-addon-3dprinter-octoprint-{arch} diff --git a/3dprinter-octoprint/rootfs/etc/caddy/sites-enabled/any.caddy b/3dprinter-octoprint/rootfs/etc/caddy/sites-enabled/any.caddy deleted file mode 100644 index f2b6ae2..0000000 --- a/3dprinter-octoprint/rootfs/etc/caddy/sites-enabled/any.caddy +++ /dev/null @@ -1,5 +0,0 @@ -# OctoPrint WebUI through any access (external or internal) -:5000 { - reverse_proxy http://127.0.0.1:80 { - } -} diff --git a/3dprinter-octoprint/rootfs/etc/cont-init.d/proxy.sh b/3dprinter-octoprint/rootfs/etc/cont-init.d/proxy.sh index 68b2352..7233f44 100644 --- a/3dprinter-octoprint/rootfs/etc/cont-init.d/proxy.sh +++ b/3dprinter-octoprint/rootfs/etc/cont-init.d/proxy.sh @@ -4,6 +4,21 @@ # Configures proxy # ============================================================================== +# Generate proxy configuration for internal access +bashio::var.json \ + addon_hostname "$(bashio::addon.hostname)" \ + addon_ip "$(bashio::addon.ip_address)" \ + | tempio \ + -template /usr/share/tempio/caddy/Caddyfile.internal.gtpl \ + -out /etc/caddy/sites-enabled/internal.caddy + +# Generate proxy configuration for external access +bashio::var.json \ + trusted_proxies "$(bashio::config 'trusted_proxies')" \ + | tempio \ + -template /usr/share/tempio/caddy/Caddyfile.external.gtpl \ + -out /etc/caddy/sites-enabled/external.caddy + # Generate proxy configuration for access by Ingress # bashio::var.json \ # addon_hostname "$(bashio::addon.hostname)" \ @@ -19,17 +34,6 @@ # -template /usr/share/tempio/caddy/Caddyfile.ingress.gtpl \ # -out /etc/caddy/sites-enabled/ingress.caddy -# Generate proxy configuration for any access -# tempio \ -# -template /usr/share/tempio/caddy/Caddyfile.any.gtpl \ -# -out /etc/caddy/sites-enabled/any.caddy -# # Generate proxy configuration for internal access -# bashio::var.json \ -# addon_hostname "$(bashio::addon.hostname)" \ -# | tempio \ -# -template /usr/share/tempio/caddy/Caddyfile.internal.gtpl \ -# -out /etc/caddy/sites-enabled/internal.caddy - -# Make sure file is correctly formatted. -# caddy fmt --overwrite /etc/caddy/Caddyfile \ No newline at end of file +# Make sure config is correctly formatted. +caddy fmt --overwrite /etc/caddy/Caddyfile \ No newline at end of file diff --git a/3dprinter-octoprint/rootfs/usr/share/tempio/caddy/Caddyfile.external.caddy b/3dprinter-octoprint/rootfs/usr/share/tempio/caddy/Caddyfile.external.caddy new file mode 100644 index 0000000..b1f51a0 --- /dev/null +++ b/3dprinter-octoprint/rootfs/usr/share/tempio/caddy/Caddyfile.external.caddy @@ -0,0 +1,6 @@ +# OctoPrint WebUI through external access +:5000 { + reverse_proxy http://127.0.0.1:80 { + trusted_proxies {{ .trusted_proxies }} + } +} diff --git a/3dprinter-octoprint/rootfs/usr/share/tempio/caddy/Caddyfile.internal.gtpl b/3dprinter-octoprint/rootfs/usr/share/tempio/caddy/Caddyfile.internal.gtpl index 08651be..896f7ec 100644 --- a/3dprinter-octoprint/rootfs/usr/share/tempio/caddy/Caddyfile.internal.gtpl +++ b/3dprinter-octoprint/rootfs/usr/share/tempio/caddy/Caddyfile.internal.gtpl @@ -1,5 +1,6 @@ -# WebUI through internal hostname -{{ .addon_hostname }}:5000 { +# Internal access, e.g. for Home-Assistant OctoPrint integration. +:5000 { + bind {{ .addon_ip }} reverse_proxy http://127.0.0.1:80 { } }