- 
                Notifications
    You must be signed in to change notification settings 
- Fork 3.4k
Description
Is your feature request related to a problem? Please describe.
Currently, NPM documentation doesn't include third-party installation tools that simplify deployment and configuration. Users who want to deploy NPM with Angie web server (nginx-compatible fork) or apply advanced optimizations must manually configure many components, which is time-consuming and error-prone.
Describe the solution you'd like
I would like to add my automated installation script to the NPM third-party tools documentation. The script (npm-angie-auto-install) is a comprehensive Python-based installer that automates NPM deployment with Angie web server and extensive optimizations.
Core Features
- Automated Angie deployment - Installs Angie web server (nginx-compatible, high-performance fork) with optimized configuration
- Smart Node.js management - Auto-detects available Node.js versions, installs from NodeSource if needed (supports v18-21)
- Complete NPM setup - Builds and deploys NPM from source with proper user/group configuration
- Certbot integration - Sets up Python 3.11 venv for Certbot with automatic SSL certificate management
- Dark mode support - Integrates Theme.Park custom themes (organizr, nord, dracula, plex, etc.)
Performance Optimizations
- Upstream keepalive connections (16 persistent connections per worker)
- Shared memory zones for load balancing and statistics
- HTTP/2 and HTTP/3 (QUIC) support with proper SSL/TLS cipher configuration
- Static asset caching with proxy_cache and revalidation
- Modern SSL/TLS settings (TLSv1.2/1.3 only, secure cipher suites)
- Angie Prometheus metrics a endpoint (port 82) with console interface ( https://en.angie.software/angie/docs/configuration/monitoring/ )
Security Enhancements
- Sudoers configuration for npm user to manage Angie without root
- Self-signed certificate generation for admin panel (HTTPS on port 8181)
- Modern SSL/TLS cipher suites only
Developer-Friendly
- Automated frontend build with Sass/node-sass/Yarn handling
- Update mode that preserves configuration while upgrading
- Backup creation before config changes (timestamped)
- MOTD integration showing service status and access URLs
- Debug mode with verbose logging
Supported Systems
- Debian 11 (Bullseye), 12 (Bookworm), 13 (Trixie)
- Ubuntu 20.04 LTS, 22.04 LTS, 24.04 LTS
- Proxmox and Armbian (Debian derivatives)
- IPv6 support (optional, with `--enable-ipv6` flag)
Usage Examples
Basic installation with latest NPM and Node.js
sudo python3 npm_install.py
Install with dark theme and specific Node.js version
sudo python3 npm_install.py --dark-mode --node-version 20
Update existing installation without reconfiguring
sudo python3 npm_install.py --update
Install with custom theme and IPv6 support
sudo python3 npm_install.py --tp-theme nord --enable-ipv6
Project Repository
URL: https://gitea.linuxiarz.pl/gru/npm-angie-auto-install
Describe alternatives you've considered
Current alternatives include:
- Manual installation following multiple guides
- Docker deployment (doesn't allow deep system integration)
- Standard nginx instead of Angie (missing HTTP/3, modern optimizations)
- Separate configuration of Certbot, themes, and performance tuning
None of these provide the same level of automation, optimization, and integration that this script offers.
Additional context
The script has been tested extensively on Debian and Ubuntu systems with various configurations. It includes:
- Automatic conflict resolution (removes old nginx/nodejs packages)
- Systemd service management with proper dependencies
- Logrotate integration for log management
- Nginx -> Angie configuration path normalization
- Template customization for upstream keepalive and monitoring
Ideal Use Cases
This tool is particularly useful for:
- System administrators deploying NPM in production environments
- Users who want Angie instead of nginx for better performance
- Setups requiring advanced optimizations (keepalive, HTTP/3, caching)
- Installations needing dark theme customization (or no dark :) )
Technical Details
The script follows NPM's architecture and doesn't modify core application logic - it only optimizes the deployment environment and web server configuration. All changes are reversible with automatic backups created before modifications or optimizations for work with angie.
Author: linuxiarz.pl (Mateusz Gruszczyński)
I believe this tool would be valuable to the NPM community as it provides a production-ready deployment solution with modern web server technology and performance optimizations out of the box.