diff --git a/npm_install.py b/npm_install.py index f0faeaf..3f45d89 100644 --- a/npm_install.py +++ b/npm_install.py @@ -1262,7 +1262,7 @@ def ensure_nginx_symlink(): # ========== Angie / NPM template ========== -ANGIE_CONF_TEMPLATE = """# run angie in foreground +ANGIE_CONF_TEMPLATE = r"""# run angie in foreground #daemon off; load_module /etc/angie/modules/ngx_http_headers_more_filter_module.so; @@ -1270,6 +1270,7 @@ load_module /etc/angie/modules/ngx_http_brotli_filter_module.so; load_module /etc/angie/modules/ngx_http_brotli_static_module.so; load_module /etc/angie/modules/ngx_http_zstd_filter_module.so; load_module /etc/angie/modules/ngx_http_zstd_static_module.so; +load_module /etc/angie/modules/ngx_http_echo_module.so; # other modules include /data/nginx/custom/modules[.]conf; @@ -1321,7 +1322,7 @@ http { # QUIC settings quic_retry on; - quic_gso on; # Performance boost dla Linux z UDP_SEGMENT + quic_gso on; quic_active_connection_id_limit 2; # Enable BPF for connection migration (Linux 5.7+) @@ -1498,6 +1499,7 @@ def setup_angie(ipv6_enabled: bool): "angie-module-headers-more", "angie-module-brotli", "angie-module-zstd", + "angie-module-echo" ] optional = ["angie-module-prometheus", "angie-console-light"] apt_install(base) @@ -1526,10 +1528,72 @@ exec sudo -n /usr/sbin/angie "$@" def write_metrics_files(): """Create /etc/angie/metrics.conf (port 82 with console & status).""" - with step("Adding Angie metrics & console on :82"): + with step("Adding Angie metrics & console on :82 / :8282 (https)"): metrics = """include /etc/angie/prometheus_all.conf; +server { + listen 8282 ssl; + http2 on; + access_log off; + + ssl_certificate {cert_path}; + ssl_certificate_key {key_path}; + + location / { + default_type text/html; + echo ''; + echo 'Status Page'; + echo '

Server Status

'; + echo ''; + echo ''; + } + + location /nginx_status { + stub_status on; + access_log off; + allow all; + } + + auto_redirect on; + + location /status/ { + api /status/; + api_config_files on; + } + + location /console/ { + alias /usr/share/angie-console-light/html/; + index index.html; + } + + location /console/api/ { + api /status/; + } + + location =/p8s { + prometheus all; + } +} + server { listen 82; + access_log off; + + location / { + default_type text/html; + echo ''; + echo 'Status Page'; + echo '

Server Status

'; + echo ''; + echo ''; + } location /nginx_status { stub_status on; @@ -3080,7 +3144,7 @@ server {{ status_zone npm_admin; root {root_path}; - access_log /dev/null; + access_log off; location /api {{ return 302 /api/; @@ -3272,12 +3336,14 @@ def update_motd( ################################ NPM / ANGIE ################################ OS: {OSREL['PRETTY']} ({OSREL['ID']} {OSREL['VERSION_ID']}) {npm_line} -Angie & Prometheus stats: http://{ip}:82/console | http://{ip}:82/p8s +Angie & Prometheus stats: http://{ip}:82/console | http://{ip}:82/p8s + or https://{ip}:8282/console | https://{ip}:8282/p8s + Angie: {angie_v} (conf: /etc/angie -> /etc/nginx, reload: angie -s reload) Node.js: v{node_v} Yarn: v{yarn_v} NPM: {npm_v} {npm_source} -Paths: app=/opt/npm data=/data cache=/var/lib/angie/cache +Paths: app=/opt/npm data=/data cache=/var/lib/angie/cache certbot=/opt/certbot {ipv6_line} ########################################################################### """ @@ -3318,7 +3384,9 @@ def print_summary( else: print(f"NPM panel address: http://{ip}:{NPM_ADMIN_HTTP_PORT}") - print(f"Angie & Prometheus stats: http://{ip}:82/console | http://{ip}:82/p8s") + print(f"Angie & Prometheus stats: http://{ip}:82/console | http://{ip}:82/p8s") + print(f"Angie & Prometheus stats (https): https://{ip}:8282/console | http://{ip}:8282/p8s") + print(f"Angie: v{angie_v}") print(f"Node.js: v{node_v}") print(f"Yarn: v{yarn_v}") @@ -3326,7 +3394,7 @@ def print_summary( print(f"IPv6: {'ENABLED' if ipv6_enabled else 'DISABLED'}") print( - "Paths: /opt/npm (app), /data (data), /etc/angie (conf), /var/log/angie (logs)" + "Paths: /opt/npm (app), /data (data), /etc/angie (conf), /opt/certbot (cerbot venv)" ) print("Services: systemctl status angie.service / npm.service")