first commit
This commit is contained in:
157
README.md
Normal file
157
README.md
Normal file
@@ -0,0 +1,157 @@
|
||||
# NPM + Angie Auto Installer (STOP using braindead helper scripts!)
|
||||
|
||||
Minimal, repeatable setup for Nginx Proxy Manager (NPM) on Angie (Debian/Ubuntu).
|
||||
|
||||
|
||||
## Advantages over helper scripts (npm-install.sh, docker-compose):
|
||||
|
||||
| Feature | Helper Scripts | This Installer |
|
||||
|---------|----------------|---------------|
|
||||
| Angie support | No (Nginx/openresty only) | Full Angie + modules |
|
||||
| SSL certificates | Manual | Auto-generated |
|
||||
| Systemd units | No | npm.service + angie.service |
|
||||
| Logrotate | No | Automatic for Angie/NPM |
|
||||
| HTTP/3 QUIC | No (Nginx/openresty only) | Built-in Angie |
|
||||
| Brotli/Zstd | Optional | Enabled by default |
|
||||
| Update mode | No | --update (no reinstall) |
|
||||
| Config backup | No | Auto-backup + restore |
|
||||
| Low memory swap | No | Auto for <4GB RAM |
|
||||
|
||||
|
||||
---
|
||||
|
||||
## Repository
|
||||
Base URL: **https://git.linuxiarz.pl/gru/npm-angie-auto-install**
|
||||
|
||||
> On Gitea, the raw file URL usually looks like:
|
||||
> `https://git.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://git.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://git.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 +).
|
||||
|
||||
optional arguments:
|
||||
-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/downgrade NPM, rebuild frontend/backend without reconfiguring Angie. Use with --npm-version to specify target version (>= 2.13.0). (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://git.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
|
||||
|
||||
# 9) Downgrade to specific version ex. to 2.13.6
|
||||
python3 npm_install.py --update --npm-version 2.13.6
|
||||
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 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
|
||||
4264
npm_install.py
Normal file
4264
npm_install.py
Normal file
File diff suppressed because it is too large
Load Diff
4112
npm_install_multiversion.py
Normal file
4112
npm_install_multiversion.py
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user