npm-proxy

Safe
DevOps & Cloud

Manage Nginx Proxy Manager (NPM) hosts, certificates, and access lists.

SKILL.md

# NPM Proxy Skill Manage Nginx Proxy Manager (NPM) via its REST API. ## Configuration Set the following environment variables: - `NPM_URL`: The URL of your NPM instance (e.g., `https://npm.example.com`) - `NPM_EMAIL`: Your NPM admin email - `NPM_PASSWORD`: Your NPM admin password ## Usage ```bash # List all proxy hosts python scripts/npm_client.py hosts # Get details for a specific host python scripts/npm_client.py host <host_id> # Enable/Disable a host python scripts/npm_client.py enable <host_id> python scripts/npm_client.py disable <host_id> # Delete a host python scripts/npm_client.py delete <host_id> # List certificates python scripts/npm_client.py certs ``` ## Workflows ### Adding a new Proxy Host To add a new host, use `curl` directly (the script is currently minimal). Example payload for `POST /api/nginx/proxy-hosts`: ```json { "domain_names": ["sub.example.com"], "forward_scheme": "http", "forward_host": "192.168.1.10", "forward_port": 8080, "access_list_id": 0, "certificate_id": 0, "ssl_forced": false, "meta": { "letsencrypt_email": "", "letsencrypt_agree": false, "dns_challenge": false }, "advanced_config": "", "locations": [], "block_exploits": true, "caching_enabled": false, "allow_websocket_upgrade": true, "http2_support": true, "hsts_enabled": false, "hsts_subdomains": false } ``` ### Enabling SSL (Let's Encrypt) 1. List certs with `certs` to see if one exists. 2. Update the host with `certificate_id` and `ssl_forced: true`.

More in DevOps & Cloud