# NPM + Angie Auto Installer Minimal, repeatable setup for **Nginx Proxy Manager (NPM)** on **Angie** (Debian / Ubuntu). The installer configures Angie, deploys NPM (frontend + backend). --- ## Repository Base URL: **https://gitea.linuxiarz.pl/gru/npm-angie-auto-install** > On Gitea, the raw file URL usually looks like: > `https://gitea.linuxiarz.pl/gru/npm-angie-auto-install/raw/branch/main/npm_install.py` --- ## Requirements - Debian 11+ / Ubuntu 20.04+ - `curl`, `python3`, `sudo` - Network access to fetch packages and Node/Yarn artifacts. --- ## Quick Start (one-liner) - Interactive mode ```bash curl -fsSL https://gitea.linuxiarz.pl/gru/npm-angie-auto-install/raw/branch/master/npm_install.py \ -o npm_install.py && sudo python3 npm_install.py ``` ## Quick Start (one-liner) - NON-Interactive mode ```bash curl -fsSL https://gitea.linuxiarz.pl/gru/npm-angie-auto-install/raw/branch/master/npm_install.py \ -o npm_install.py && sudo python3 npm_install.py --npm-version 2.13.2 --node-version 24 ``` ## Options / Help ```bash ✘ 2 usage: npm_install.py [-h] [--nodejs-pkg NODEJS_PKG] [--node-version NODE_VERSION] [--npm-version NPM_VERSION] [--motd {yes,no}] [--enable-ipv6] [--update] [--branch BRANCH] [--debug] Install/upgrade NPM on Angie (Debian 11 + / Ubuntu 20.04 +). options: -h, --help show this help message and exit --nodejs-pkg NODEJS_PKG APT Node.js package name (e.g. nodejs, nodejs-18). (default: nodejs) --node-version NODE_VERSION Install Node.js from NodeSource repo (e.g. 'latest', '21', '22'). Maximum supported: v24. Overrides --nodejs-pkg. (default: None) --npm-version NPM_VERSION Force NPM app version from release tag (e.g. 2.13.2). Default: last tag from git (default: None) --motd {yes,no} Update MOTD after completion. (default: yes) --enable-ipv6 Do not strip IPv6 from configs/resolvers (keep IPv6). (default: False) --update Update mode: upgrade packages + rebuild frontend/backend without reconfiguring Angie. (default: False) --branch BRANCH Install from specific git branch (e.g., master, dev, develop). (default: None) --debug Show detailed logs and progress. (default: False) ``` --- ## Manual Download & Run ```bash # 1) Download the latest installer script curl -L https://gitea.linuxiarz.pl/gru/npm-angie-auto-install/raw/branch/master/npm_install.py -o npm_install.py # 2) Run installer with the latest stable release (auto-detects newest tag) python3 npm_install.py # 3) Install a specific stable release tag (recommended for production) python3 npm_install.py --npm-version 2.13.1 --node-version 24 # 4) Enable debug mode (shows detailed logs and progress) python3 npm_install.py --npm-version 2.13.1 --node-version 21 --debug # 5) Install from a development branch (for example, 'dev') python3 npm_install.py --branch dev # 6) Install from the master branch (latest development commits) python3 npm_install.py --branch master # 7) Update an existing installation without reconfiguring Angie python3 npm_install.py --update # 8) Install from a branch with full debug logging enabled python3 npm_install.py --branch dev --debug ``` --- ## What the Installer Does - Creates **/etc/nginx -> /etc/angie** symlink (idempotent). - Installs **Angie** and config templates; provides an **nginx wrapper** that makes config tests safe - Installs **Nginx Proxy Manager** form source and config templates --- ## Options - IPv6 keep/strip (resolver & conf). - Optimal cache config - Theme.Park stylesheet injection. (https://docs.theme-park.dev/themes/nginx-proxy-manager/) - Update mode (backup and rebuild APP). Check `--help` in the script for all flags. --- ## Post-Install ```bash systemctl status angie.service --no-pager systemctl status npm.service --no-pager ``` ## NPM UI Default: http://host_ip:81 & https://host_ip:8181 ## Angie UI Default: http://host_ip:82/console ## Prometheus Default: http://host_ip:82/p8s --- ## Angie Statistics for a Specific vHost Enabled by default! Metrics will be visible at: http://host_ip:82/console/#server_zones ## HTTP/3 By default! Just Enable HTTP/2 in web interface. --- ## License MIT ## Author linuxiarz.pl, Mateusz Gruszczyński