This BASH script enables the management of Nginx Proxy Manager through its API.
Find a file
Erreur32 c5f2db53dc
Update nginx_proxy_manager_cli.sh
Optimisation search function
2024-07-10 21:39:11 +02:00
LICENSE Initial commit 2024-07-10 13:52:04 +02:00
nginx-proxy-script.png Add files via upload 2024-07-10 14:20:44 +02:00
nginx_proxy_manager_cli.sh Update nginx_proxy_manager_cli.sh 2024-07-10 21:39:11 +02:00
README.md Update README.md 2024-07-10 21:15:14 +02:00

Nginx Proxy Manager CLI Script

Description

by Erreur32

🛠️ This BASH script allows you to manage Nginx Proxy Manager via the API.

🔑 it generates and manages the TOKENS automatically and check validity !! no more worries about that ;)

⚙️ It provides functionalities such as creating/deleting proxy hosts, managing users, and displaying configurations and more.

Ce script permet de gérer Nginx Proxy Manager via l'API. Il fournit des fonctionnalités telles que la création de hosts proxy, la gestion des utilisateurs, et l'affichage des configurations.

Prérequis

  • curl
  • jq

Installation jq

sudo apt-get install jq

settings:

only edit thoses variables

#### Variables to edit

# Address IP server Nginx (your nginx ip server)
NGINX_IP="127.0.0.1"

# Existing user (user pass) on npm.
API_USER="existingUser@mail.com"
API_PASS="password"

Usage:

./nginx_proxy_manager_cli.sh [OPTIONS]

Options:

   -d DOMAIN_NAMES                  Domain name (required)
   -i FORWARD_HOST                  IP address or domain name of the target server (required)
   -p FORWARD_PORT                  Port of the target server (required)
   -s SSL_FORCED                    Force SSL (true/false, default: false)
   -c CACHING_ENABLED               Enable caching (true/false, default: false)
   -b BLOCK_EXPLOITS                Block exploits (true/false, default: true)
   -w ALLOW_WEBSOCKET_UPGRADE       Allow WebSocket upgrade (true/false, default: false)
   -h HTTP2_SUPPORT                 Support HTTP/2 (true/false, default: true)
   -a ADVANCED_CONFIG               Advanced configuration (string)
   -e LETS_ENCRYPT_AGREE            Accept Let's Encrypt (true/false, default: false)
   -n DNS_CHALLENGE                 DNS challenge (true/false, default: false)
   --create-user username password  Create a user with a username and password
   --delete-user username           Delete a user by username
   --delete-host id                 Delete a proxy host by ID
   --list-hosts                     List the names of all proxy hosts
   --list-hosts-full                List all proxy hosts with full details
   --list-ssl-certificates          List all SSL certificates
   --list-users                     List all users
   --search-host hostname           Search for a proxy host by domain name
   --help                           Display this help

Examples:

./nginx_proxy_manager_cli.sh -d example.com -i 192.168.1.10 -p 8080 -s true
./nginx_proxy_manager_cli.sh --create-user newuser password123
./nginx_proxy_manager_cli.sh --list-hosts

https://github.com/Erreur32/nginx-proxy-manager-API/blob/main/nginx-proxy-script.png

TODO:

  • add setting for ADVANCED configuration in location / { ... }