nginx-proxy-manager-Bash-API/README.md

85 lines
3.2 KiB
Markdown
Raw Normal View History

2024-07-10 14:23:30 +02:00
# Nginx Proxy Manager CLI Script
2024-07-10 21:15:14 +02:00
## Description
2024-07-10 14:23:30 +02:00
_by Erreur32_
2024-07-10 22:33:05 +02:00
🛠️ This BASH script allows you to manage Nginx Proxy Manager via the API.
2024-07-10 14:23:30 +02:00
2024-07-11 19:15:42 +02:00
🔑 Automatically generates and manages the tokens, ensuring their validity, so you don't have to worry about token expiration.
2024-07-10 14:26:46 +02:00
2024-07-11 19:15:42 +02:00
⚙️ Provides functionalities such as creating and deleting proxy hosts, managing users, displaying configurations, and more.
2024-07-10 14:17:48 +02:00
2024-07-10 21:15:14 +02:00
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.
2024-07-11 18:25:09 +02:00
## Prerequisites
2024-07-10 21:15:14 +02:00
- `curl`
- `jq`
```bash
2024-07-10 22:44:33 +02:00
sudo apt-get install jq curl
2024-07-10 21:15:14 +02:00
```
2024-07-10 14:45:21 +02:00
2024-07-10 22:44:33 +02:00
## Installation
```
2024-07-11 12:39:16 +02:00
wget https://raw.githubusercontent.com/Erreur32/nginx-proxy-manager-API/main/nginx_proxy_manager_cli.sh
chmod +x nginx_proxy_manager_cli.sh
2024-07-10 22:44:33 +02:00
```
2024-07-10 14:45:21 +02:00
2024-07-11 18:27:04 +02:00
## Settings
2024-07-10 22:44:33 +02:00
Only edit these 3 variables:
2024-07-10 14:45:21 +02:00
```
2024-07-11 19:16:35 +02:00
## Nginx proxy IP address (your Nginx IP)
2024-07-10 20:48:13 +02:00
NGINX_IP="127.0.0.1"
2024-07-10 22:44:33 +02:00
## Existing user (user and password) on NPM
2024-07-10 20:48:13 +02:00
API_USER="existingUser@mail.com"
2024-07-10 14:45:21 +02:00
API_PASS="password"
```
2024-07-11 18:27:04 +02:00
## Usage
2024-07-10 14:17:48 +02:00
```bash
./nginx_proxy_manager_cli.sh [OPTIONS]
```
2024-07-11 18:27:04 +02:00
## Options
2024-07-10 14:17:48 +02:00
```tcl
-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
```
2024-07-10 14:05:48 +02:00
2024-07-11 18:27:04 +02:00
## Examples
2024-07-10 14:17:48 +02:00
```bash
./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
```
2024-07-10 14:19:15 +02:00
2024-07-11 15:14:20 +02:00
![https://github.com/Erreur32/nginx-proxy-manager-API/blob/main/screen-nginx-proxy-script.png](https://github.com/Erreur32/nginx-proxy-manager-API/blob/main/screen-nginx-proxy-script.png)
2024-07-10 14:23:30 +02:00
2024-07-10 14:19:15 +02:00
## TODO:
2024-07-11 18:27:04 +02:00
- [x] add setting for ADVANCED configuration in `location / { ... }`
2024-07-11 18:28:11 +02:00
- [ ] Add documentation on certain functions
2024-07-11 18:50:35 +02:00
- [ ] Domain TLS check validity
- [ ] ADD: a configuration function for Custom Locations
- [ ] Backup / Export all settings from NPM