From 45f3f2b7433926cff9b9cd66ad72ece7472ca332 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Sun, 23 Jun 2019 18:47:44 +0200 Subject: [PATCH] :sparkles: Adds Ingress support --- grocy/config.json | 2 ++ grocy/rootfs/etc/cont-init.d/nginx.sh | 8 ++++++++ .../etc/nginx/includes/server_params.conf | 9 --------- .../etc/nginx/servers/direct-ssl.disabled | 9 +++++++++ grocy/rootfs/etc/nginx/servers/direct.disabled | 9 +++++++++ grocy/rootfs/etc/nginx/servers/ingress.conf | 17 +++++++++++++++++ grocy/rootfs/etc/php7/php-fpm.d/ingress.conf | 12 ++++++++++++ 7 files changed, 57 insertions(+), 9 deletions(-) create mode 100644 grocy/rootfs/etc/nginx/servers/ingress.conf create mode 100644 grocy/rootfs/etc/php7/php-fpm.d/ingress.conf diff --git a/grocy/config.json b/grocy/config.json index 6924cd0..8e19c26 100755 --- a/grocy/config.json +++ b/grocy/config.json @@ -5,6 +5,8 @@ "description": "ERP beyond your fridge! A groceries & household management solution for your home", "url": "https://github.com/hassio-addons/addon-grocy", "webui": "[PROTO:ssl]://[HOST]:[PORT:80]", + "ingress": true, + "ingress_port": 1337, "startup": "system", "arch": [ "aarch64", diff --git a/grocy/rootfs/etc/cont-init.d/nginx.sh b/grocy/rootfs/etc/cont-init.d/nginx.sh index d83b8a1..b6792f2 100755 --- a/grocy/rootfs/etc/cont-init.d/nginx.sh +++ b/grocy/rootfs/etc/cont-init.d/nginx.sh @@ -5,6 +5,8 @@ # ============================================================================== declare certfile declare keyfile +declare ingress_interface +declare ingress_entry bashio::config.require.ssl @@ -18,3 +20,9 @@ if bashio::config.true 'ssl'; then else mv /etc/nginx/servers/direct.disabled /etc/nginx/servers/direct.conf fi + +ingress_interface=$(bashio::addon.ip_address) +sed -i "s/%%interface%%/${ingress_interface}/g" /etc/nginx/servers/ingress.conf + +ingress_entry=$(bashio::addon.ingress_entry) +sed -i "s#%%ingress_entry%%#${ingress_entry}#g" /etc/php7/php-fpm.d/ingress.conf diff --git a/grocy/rootfs/etc/nginx/includes/server_params.conf b/grocy/rootfs/etc/nginx/includes/server_params.conf index b80a806..2592180 100644 --- a/grocy/rootfs/etc/nginx/includes/server_params.conf +++ b/grocy/rootfs/etc/nginx/includes/server_params.conf @@ -16,15 +16,6 @@ location ~* .(jpg|jpeg|png|gif|ico|css|js)$ { expires 365d; } -location ~ .php$ { - fastcgi_pass 127.0.0.1:9001; - fastcgi_read_timeout 900; - fastcgi_split_path_info ^(.+\.php)(/.+)$; - fastcgi_index index.php; - fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; - include /etc/nginx/includes/fastcgi_params.conf; -} - location ~ /\.ht { deny all; } diff --git a/grocy/rootfs/etc/nginx/servers/direct-ssl.disabled b/grocy/rootfs/etc/nginx/servers/direct-ssl.disabled index 3b4b720..7775818 100644 --- a/grocy/rootfs/etc/nginx/servers/direct-ssl.disabled +++ b/grocy/rootfs/etc/nginx/servers/direct-ssl.disabled @@ -8,4 +8,13 @@ server { ssl_certificate_key /ssl/%%keyfile%%; include /etc/nginx/includes/server_params.conf; + + location ~ .php$ { + fastcgi_pass 127.0.0.1:9001; + fastcgi_read_timeout 900; + fastcgi_split_path_info ^(.+\.php)(/.+)$; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + include /etc/nginx/includes/fastcgi_params.conf; + } } diff --git a/grocy/rootfs/etc/nginx/servers/direct.disabled b/grocy/rootfs/etc/nginx/servers/direct.disabled index b332dff..ddf6d74 100644 --- a/grocy/rootfs/etc/nginx/servers/direct.disabled +++ b/grocy/rootfs/etc/nginx/servers/direct.disabled @@ -2,4 +2,13 @@ server { listen 80 default_server; include /etc/nginx/includes/server_params.conf; + + location ~ .php$ { + fastcgi_pass 127.0.0.1:9001; + fastcgi_read_timeout 900; + fastcgi_split_path_info ^(.+\.php)(/.+)$; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + include /etc/nginx/includes/fastcgi_params.conf; + } } diff --git a/grocy/rootfs/etc/nginx/servers/ingress.conf b/grocy/rootfs/etc/nginx/servers/ingress.conf new file mode 100644 index 0000000..feb2336 --- /dev/null +++ b/grocy/rootfs/etc/nginx/servers/ingress.conf @@ -0,0 +1,17 @@ +server { + listen %%interface%%:1337 default_server; + + include /etc/nginx/includes/server_params.conf; + + allow 172.30.32.2; + deny all; + + location ~ .php$ { + fastcgi_pass 127.0.0.1:9002; + fastcgi_read_timeout 900; + fastcgi_split_path_info ^(.+\.php)(/.+)$; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + include /etc/nginx/includes/fastcgi_params.conf; + } +} diff --git a/grocy/rootfs/etc/php7/php-fpm.d/ingress.conf b/grocy/rootfs/etc/php7/php-fpm.d/ingress.conf new file mode 100644 index 0000000..0a2c355 --- /dev/null +++ b/grocy/rootfs/etc/php7/php-fpm.d/ingress.conf @@ -0,0 +1,12 @@ +[ingress] +user = nginx +group = nginx +listen = 127.0.0.1:9002 +pm = dynamic +pm.max_children = 10 +pm.start_servers = 3 +pm.min_spare_servers = 2 +pm.max_spare_servers = 5 +pm.max_requests = 1024 +clear_env = no +env[GROCY_BASE_URL] = '%%ingress_entry%%'