This commit is contained in:
Mateusz Gruszczyński
2025-11-13 08:26:35 +01:00
commit 23af0faadb
3 changed files with 8152 additions and 0 deletions

138
README.md Normal file
View File

@@ -0,0 +1,138 @@
# 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

3902
npm_install.py Normal file

File diff suppressed because it is too large Load Diff

4112
npm_install_multiversion.py Normal file

File diff suppressed because it is too large Load Diff