Compare commits

...

16 commits

Author SHA1 Message Date
95b32880d1
Update README.md
Add Warning for Restore Function.
2024-07-28 19:51:25 +02:00
542219ada0 ADD Version variable 2024-07-28 19:40:02 +02:00
35d0b2f355
Update README.md 2024-07-28 19:24:10 +02:00
e14bb2ed50
Update README.md 2024-07-28 19:12:10 +02:00
8520b05c60 Customized --show-default 2024-07-28 18:41:54 +02:00
7406e774e6 Merge branch 'main' of https://github.com/Erreur32/nginx-proxy-manager-API 2024-07-28 18:31:23 +02:00
fbc9b0ee91 ADD --info + tag 2.3.3 2024-07-28 18:31:11 +02:00
9b82091846
Update README.md 2024-07-28 17:57:09 +02:00
4e61409927 Fix typo 2024-07-28 17:52:16 +02:00
617572a25f Backup add directory for HOST 2024-07-28 17:21:13 +02:00
14fd55f95a Update 2024-07-28 16:10:45 +02:00
9491f64577 FIX --HOST-DISABLE 2024-07-28 16:10:00 +02:00
ca8cc272dd FIX --HOST-DISABLE 2024-07-28 16:09:01 +02:00
77b09b3742
Update README.md 2024-07-28 15:47:56 +02:00
94bb96bc48 Update README 2024-07-28 15:46:38 +02:00
dfc72f1999 Backup full optimised + Rename function 2024-07-28 15:40:22 +02:00
2 changed files with 853 additions and 364 deletions

91
README.md Normal file → Executable file
View file

@ -13,6 +13,11 @@
9. [Screens](#screens)
10. [TODO](#todo)
> [!WARNING]
> Sometime Global RESTORE (--restore) function may not works for HOST only (fix will come)
>
> Single RESTORE (--restore-id , add host one by one) should work well.
## Description
🛠️ This BASH script enables the management of ![Nginx Proxy Manager](https://github.com/NginxProxyManager/nginx-proxy-manager?utm_source=nginx-proxy-manager) through its **API**.
@ -45,15 +50,22 @@ wget https://raw.githubusercontent.com/Erreur32/nginx-proxy-manager-API/main/ngi
chmod +x nginx_proxy_manager_cli.sh
```
## Settings
Only edit these 3 variables:
```
> [!IMPORTANT]
> With new version 2.0.0 some commands are changed.
>
## Settings
Only edit these 4 variables:
```bash
## Nginx proxy IP address (your Nginx IP)
NGINX_IP="127.0.0.1"
## Existing user (user and password) on NPM
API_USER="existingUser@mail.com"
API_PASS="password"
# Path to store .txt files and Backups
BASE_DIR="/path/nginx_proxy_script/data"
```
## Usage
@ -63,7 +75,8 @@ API_PASS="password"
## Options
```tcl
🌐 Host proxy Domain creation:
🌐 Host proxy creation:
-d DOMAIN_NAMES Domain name (required for creating/updating hosts)
-i FORWARD_HOST IP address or domain name of the target server (required for creating/updating hosts)
-p FORWARD_PORT Port of the target server (required for creating/updating hosts)
@ -71,21 +84,22 @@ API_PASS="password"
-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: true)
-l CUSTOM_LOCATIONS Custom locations (JSON array of location objects)
-a ADVANCED_CONFIG Advanced configuration (block of configuration settings)
📦 Backup and Restore:
--host-backup Backup all configurations to a file
--host-backup-id id Backup a single host configuration and its certificate (if exists)
--host-restore Restore configurations from a backup file
--host-restore-id id Restore a single host configuration and its certificate (if exists)
📦 Backup and Restore:
--backup Backup all configurations to a file
--backup-id id Backup a single host configuration and its certificate (if exists)
--restore Restore configurations from a backup file
--restore-id id Restore a single host configuration and its certificate (if exists)
🔧 Miscellaneous:
--host-check-token Check if the current token is valid
--host-create-user user pass email Create a user with a username, password and email
--host-delete-user username Delete a user by username
--check-token Check if the current token is valid
--create-user user pass email Create a user with a username, password and email
--delete-user username Delete a user by username
--host-delete id Delete a proxy host by ID
--host-show id Show full details for a specific host by ID
--host-show-default Show default settings for creating hosts
--show-default Show default settings for creating hosts
--host-list List the names of all proxy hosts
--host-list-full List all proxy hosts with full details
--host-list-ssl-certificates List all SSL certificates
@ -93,59 +107,75 @@ API_PASS="password"
--host-search hostname Search for a proxy host by domain name
--host-enable id Enable a proxy host by ID
--host-disable id Disable a proxy host by ID
--host-ssl-enable id Enable SSL, HTTP/2, and HSTS for a proxy host (don't need to generate a custom cert.)
--host-ssl-enable id Enable SSL, HTTP/2, and HSTS for a proxy host
--host-ssl-disable id Disable SSL, HTTP/2, and HSTS for a proxy host
--host-generate-cert domain email [--custom] Generate a Let's Encrypt or Custom certificate for the given domain and email
--host-help Display this help
--generate-cert domain email [--custom] Generate a Let's Encrypt or Custom certificate for the given domain and email
```
## Examples
```bash
📦 Backup First !
./nginx_proxy_manager_cli.sh --backup
🌐 Host Creation:
./nginx_proxy_manager_cli.sh -d example.com -i 192.168.1.10 -p 8080 (check default values below)
./nginx_proxy_manager_cli.sh --info
./nginx_proxy_manager_cli.sh --show-default
./nginx_proxy_manager_cli.sh --create-user newuser password123 user@example.com
./nginx_proxy_manager_cli.sh --delete-user 'username'
./nginx_proxy_manager_cli.sh --list-hosts
./nginx_proxy_manager_cli.sh --ssl-host-enable 10
./nginx_proxy_manager_cli.sh --generate-cert example.com user@example.com --custom (for custom certificat)
./nginx_proxy_manager_cli.sh --host-list
./nginx_proxy_manager_cli.sh --host-ssl-enable 10
🔧 Advanced proxy tab example:
🔧 Advanced Example:
./nginx_proxy_manager_cli.sh -d example.com -i 192.168.1.10 -p 8080 -a 'proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;'
🛡️ Custom Certificate:
./nginx_proxy_manager_cli.sh --generate-cert example.com user@example.com --custom
🛡️ Custom locations:
./nginx_proxy_manager_cli.sh -d example.com -i 192.168.1.10 -p 8080 -l '[{"path":"/api","forward_host":"192.168.1.11","forward_port":8081}]'
🔖 Full options:
./nginx_proxy_manager_cli.sh -d example.com -i 192.168.1.10 -p 8080 -f https -c true -b true -w true -a 'proxy_set_header X-Real-IP $remote_addr;' -l '[{"path":"/api","forward_host":"192.168.1.11","forward_port":8081}]'
```
#### Enable SSL for the Host:
#### SSL
Enable SSL for the Host:
Assuming the host ID is *10*, you would enable SSL for the host as follows:
./nginx_proxy_manager_cli.sh --ssl-host-enable 10
./nginx_proxy_manager_cli.sh --host-ssl-enable 10
#### Verifying the Configuration
##### Verifying the Configuration
After running the above commands, you can verify the SSL configuration by checking the details of the proxy host.
./nginx_proxy_manager_cli.sh --show-host 10
./nginx_proxy_manager_cli.sh --host-show 10
This command will show the full details of the proxy host with ID *10*, including whether SSL is enabled.
By following these steps, you can enable SSL for your proxy host for the first time using Let's Encrypt.
You should now see the parameters activated:
- "ssl_forced": 1,
- "letsencrypt_agree": true,
- "http2_support": 1
##### Better way to check if SSL is active
./nginx_proxy_manager_cli.sh --host-list
👉 List of proxy hosts (simple)
ID Domain Status SSL
1 toto.fun disable ✘
2 titi.fun disable ✅
3 tutu.fun enabled ✅
You should now see the parameters activated ✅
##### Host proxy info
```
./nginx_proxy_manager_cli_.sh --show-host 10
./nginx_proxy_manager_cli_.sh --host-show 10
✅ Nginx url: http://127.0.0.1:81/api
✅ The token is valid. Expiry: 2025-07-12T08:14:58.521Z
@ -207,3 +237,4 @@ You should now see the parameters activated:
- [x] Export all settings to NPM
- [ ] Domain TLS check validity
- [ ] Better Error Handeling
- [ ] Restore Function need to be optimized

File diff suppressed because it is too large Load diff