{"id":39937488,"url":"https://github.com/erreur32/nginx-proxy-manager-bash-api","last_synced_at":"2026-01-18T19:01:06.995Z","repository":{"id":247769628,"uuid":"826796603","full_name":"Erreur32/nginx-proxy-manager-Bash-API","owner":"Erreur32","description":"This BASH script enables the management of Nginx Proxy Manager through its API.","archived":false,"fork":false,"pushed_at":"2026-01-01T09:52:08.000Z","size":977,"stargazers_count":84,"open_issues_count":4,"forks_count":20,"subscribers_count":5,"default_branch":"main","last_synced_at":"2026-01-06T06:33:27.988Z","etag":null,"topics":["nginx-proxy-manager"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Erreur32.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-07-10T11:52:04.000Z","updated_at":"2026-01-03T10:11:04.000Z","dependencies_parsed_at":"2025-01-22T15:28:23.091Z","dependency_job_id":"c0217bd8-df3b-412c-9276-895a4457f5b5","html_url":"https://github.com/Erreur32/nginx-proxy-manager-Bash-API","commit_stats":null,"previous_names":["erreur32/nginx-proxy-manager-api"],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/Erreur32/nginx-proxy-manager-Bash-API","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Erreur32%2Fnginx-proxy-manager-Bash-API","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Erreur32%2Fnginx-proxy-manager-Bash-API/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Erreur32%2Fnginx-proxy-manager-Bash-API/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Erreur32%2Fnginx-proxy-manager-Bash-API/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Erreur32","download_url":"https://codeload.github.com/Erreur32/nginx-proxy-manager-Bash-API/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Erreur32%2Fnginx-proxy-manager-Bash-API/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28548941,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-18T14:59:57.589Z","status":"ssl_error","status_checked_at":"2026-01-18T14:59:46.540Z","response_time":98,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["nginx-proxy-manager"],"created_at":"2026-01-18T19:00:50.102Z","updated_at":"2026-01-18T19:01:06.950Z","avatar_url":"https://github.com/Erreur32.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Release][release-shield]][release]\n![Project Stage][project-stage-shield]\n[![License][license-shield]][license]\n[![Contributors][contributors-shield]][contributors]\n[![Issues][issues-shield]][issue]\n[![Stargazers][stars-shield]][stars]\n\n\n# Nginx Proxy Manager CLI Script V3.1.0 🚀\n\n\n\n\n# V3.0.0 is out 🚀\nCheck the latest release with major improvements and fixes.\n\n## Description\n🛠️ This script allows you to efficiently manage [Nginx Proxy Manager](https://github.com/NginxProxyManager/nginx-proxy-manager?utm_source=nginx-proxy-manager) via its **API**. It provides advanced features such as proxy host creation, user management, and configuration display, while also integrating a backup system (BACKUP) with a user-friendly interface.\n\nIt simplifies task automation, including proxy creation, SSL certificate management, and full reverse proxy administration.\n\n🚧 The RESTORE function is still under development. \n\n🔑 **Automatically generates** and **manages tokens**, ensuring their validity, so you don't have to worry about token expiration.\n\n\u003cdetails\u003e\n\u003csummary\u003eFrench description:\u003c/summary\u003e\nCe script permet de gérer Nginx Proxy Manager via son API de manière simple et efficace. Il offre des fonctionnalités avancées telles que la création de hosts proxy, la gestion des utilisateurs et l'affichage des configurations, tout en intégrant un système de sauvegarde (BACKUP) avec une interface conviviale.\n\nIl facilite l'automatisation des tâches courantes, comme l'ajout de proxies, la gestion des certificats SSL et l'administration complète de vos reverse proxies.\n\n⚠️ La fonction RESTORE est encore en développement. 🚧\n\u003c/details\u003e\n\n## Reference API\n[https://github.com/NginxProxyManager/nginx-proxy-manager/tree/develop/backend/schema](https://github.com/NginxProxyManager/nginx-proxy-manager/tree/develop/backend/schema)\n\n## Prerequisites\n\nThe excellent Ngins Proxy Manager [NPM](https://github.com/NginxProxyManager/nginx-proxy-manager?utm_source=nginx-proxy-manager)\n\n[![Nginx Proxy Manager](https://nginxproxymanager.com/github.png)](https://github.com/NginxProxyManager/nginx-proxy-manager?utm_source=nginx-proxy-manager)\n\n\n\u003cdetails\u003e\n\u003csummary\u003eRequired basic dependencies.\u003c/summary\u003e\n  The script will automatically check if they are installed and will download them if necessary:\n\n- `curl`\n- `jq`\n\n\u003c/details\u003e\n\n## Installation \n```bash\nwget https://raw.githubusercontent.com/Erreur32/nginx-proxy-manager-Bash-API/main/npm-api.sh\nchmod +x npm-api.sh\n# Run the script.\n./npm-api.sh\n```\n\n\n## Settings\n\u003e [!IMPORTANT]\n\u003e (Optional) You can create a configuration file named `npm-api.conf` with these 4 required variables.\n\nTo ensure the script is functional, edit these 4 variables (mandatory).\n\n```bash\n# npm-api.conf\n\n## Nginx proxy IP address (your Nginx IP/port)\nNGINX_IP=\"127.0.0.1\"\nNGINX_PORT=\"81\"\n\n## Existing user (user and password) on NPM\nAPI_USER=\"admin@example.com\"\nAPI_PASS=\"changeme\"\n\n# Optional (only if you want in other /path than script directory)\n# DATA_DIR=\"/path/nginx_backup/dir\"\n\n```\n\n## Usage\n```bash\n./npm-api.sh [OPTIONS]\n./npm-api.sh  --help\n./npm-api.sh  --show-default \n```\n\n\n\u003cdetails\u003e\n\u003csummary\u003eOptions\u003c/summary\u003e\n   \n## Options\n```tcl\n\n Options available:                       (see --examples for more details)\n   -y                                     Automatic yes prompts!\n  --info                                  Display Script Variables Information\n  --show-default                         Show  Default settings for host creation\n  --check-token                           Check Check current token info\n  --backup                                💾 Backup All configurations to a different files in $DATA_DIR\n\n Proxy Host Management:\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n  --host-search domain                    Search Proxy host by domain name\n  --host-list                             List All Proxy hosts (to find ID)\n  --host-show 🆔                          Show Full details for a specific host by ID\n\n  --host-create domain -i forward_host -p forward_port [options]\n\n     Required:\n            domain                        Domain name (required)\n       -i   forward-host                  IP address or domain name of the target server (required)\n       -p   forward-port                  Port of the target server (required)\n\n     optional: (Check default settings,no argument needed if already set!)\n       -f FORWARD_SCHEME                  Scheme for forwarding (http/https, default: http)\n       -c CACHING_ENABLED                 Enable caching (true/false, default: false)\n       -b BLOCK_EXPLOITS                  Block exploits (true/false, default: true)\n       -w ALLOW_WEBSOCKET_UPGRADE         Allow WebSocket upgrade (true/false, default: true)\n       -l CUSTOM_LOCATIONS                Custom locations (JSON array of location objects)\n       -a ADVANCED_CONFIG                 Advanced configuration (string)\n\n  --host-enable  🆔                       Enable Proxy host by ID\n  --host-disable 🆔                       Disable Proxy host by ID\n  --host-delete  🆔                       Delete Proxy host by ID\n  --host-update  🆔 [field]=value         Update One specific field of an existing proxy host by ID\n                                          (eg., --host-update 42 forward_host=foobar.local)\n\n  --host-acl-enable  🆔 access_list_id    Enable ACL for Proxy host by ID with Access List ID\n  --host-acl-disable 🆔                   Disable ACL for Proxy host by ID\n  --host-ssl-enable  🆔 [cert_id]         Enable SSL for host ID optionally using specific certificate ID\n  --host-ssl-disable 🆔                   Disable SSL, HTTP/2, and HSTS for a proxy host\n\n  --cert-list                             List ALL SSL certificates\n  --cert-show     domain Or 🆔            List SSL certificates filtered by [domain name] (JSON)\n  --cert-delete   domain Or 🆔            Delete Certificate for the given 'domain'\n  --cert-download 🆔 [output_dir] [cert_name]  Download certificate as ZIP with fallback support\n  --cert-generate domain [email]          Generate Let's Encrypt Certificate or others Providers.\n                                           • Standard domains: example.com, sub.example.com\n                                           • Wildcard domains: *.example.com (requires DNS challenge)\n                                           • DNS Challenge: Required for wildcard certificates\n                                             - Format: dns-provider PROVIDER dns-api-key KEY\n                                             - Providers: dynu, cloudflare, digitalocean, godaddy, namecheap, route53, ovh, gcloud, ...\n\n  --user-list                             List All Users\n  --user-create username password email   Create User with a username, password and email\n  --user-delete 🆔                        Delete User by username\n\n  --access-list                           List All available Access Lists (ID and Name)\n  --access-list-show 🆔                   Show detailed information for specific access list\n  --access-list-create                    Create Access Lists with options:\n                                           • --satisfy [any|all]          Set access list satisfaction mode\n                                           • --pass-auth [true|false]     Enable/disable password authentication\n                                           • --users \"user1,user2\"        List of users (comma-separated)\n                                           • --allow \"ip1,ip2\"            List of allowed IPs/ranges\n                                           • --deny \"ip1,ip2\"             List of denied IPs/ranges\n  --access-list-delete 🆔                 Delete Access List by access ID\n  --access-list-update 🆔                 Update Access List by access ID with options:\n                                           • --name \"new_name\"            New name for the access list\n                                           • --satisfy [any|all]          Update satisfaction mode\n                                           • --pass-auth [true|false]     Update password authentication\n                                           • --users \"user1,user2\"        Update list of users\n                                           • --allow \"ip1,ip2\"            Update allowed IPs/ranges\n                                           • --deny \"ip1,ip2\"             Update denied IPs/ranges\n\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n  --examples                             🔖 Examples commands, more explicits\n  --help                                     👉 It's me\n\n```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eExamples commands\u003c/summary\u003e\n\n```bash\n 📦 Backup First !\n   ./npm-api.sh --backup\n\n 🌐 Host Creation:\n   # Basic host creation\n   ./npm-api.sh --host-create domain.com -i IP -p PORT [-b true/false] [-c true/false] [-w true/false] [-h true/false]\n\n   # Create host with SSL certificate and enable SSL (all-in-one)\n   ./npm-api.sh --host-create domain.com -i IP -p PORT [options] --cert-generate --host-ssl-enable -y\n\n   # Create host with SSL certificate and enable SSL (with specific domain)\n   ./npm-api.sh --host-create domain.com -i IP -p PORT [options] --cert-generate domain.com --host-ssl-enable -y\n\n   # Create host with custom options\n   ./npm-api.sh --host-create example.com -i 192.168.1.10 -p 8080 \\\n     -f https \\         # Forward scheme\n     -b true \\          # Block exploits\n     -c true \\          # Enable caching\n     -w true \\          # Enable websocket\n     -h true \\          # Enable HTTP/2\n     -y                 # Auto confirm\n\n 🤖 Automatic operations (no prompts):\n   ./npm-api.sh --host-create example.com -i 192.168.1.10 -p 8080 -y\n   ./npm-api.sh --host-delete 42 -y\n   ./npm-api.sh --host-ssl-enable 10 -y   \n\n 🔍 Information and Status:\n   ./npm-api.sh --info                      # Show configuration and dashboard\n   ./npm-api.sh --show-default              # Show default settings\n   ./npm-api.sh --check-token               # Verify token validity\n   ./npm-api.sh --host-search domain.com    # Search for a specific domain\n   ./npm-api.sh --host-list                 # List all hosts\n   ./npm-api.sh --host-list-full            # List hosts with details\n   ./npm-api.sh --host-show 42              # Show specific host details\n\n 🔒 SSL Management:\n   # List all certificates\n   ./npm-api.sh --list-ssl-cert\n   # Download certificate as ZIP\n   ./npm-api.sh --cert-download 123\n   ./npm-api.sh --cert-download 123 ./certs mydomain\n   # Generate standard Let's Encrypt certificate\n   ./npm-api.sh --cert-generate domain.com [email] [dns_provider] [dns_credentials] [-y]\n   # Generate wildcard certificate with Cloudflare\n   ./npm-api.sh --cert-generate \"*.example.com\" \\\n     --cert-email admin@example.com \\\n     --dns-provider cloudflare \\\n     --dns-credentials '{\"dns_cloudflare_email\":\"your@email.com\",\"dns_cloudflare_api_key\":\"your_api_key\"}'\n\n   # Delete certificate\n   ./npm-api.sh --delete-cert domain.com        \n   # Enable SSL for host\n   ./npm-api.sh --host-ssl-enable HOST_ID            \n   # Generate certificate and enable SSL for existing host\n   ./npm-api.sh --cert-generate domain.com --host-ssl-enable -y\n\n 🌟 Complete Examples with Wildcard Certificates:\n   # Create host with wildcard certificate using Cloudflare DNS\n   ./npm-api.sh --host-create \"*.example.com\" -i 192.168.1.10 -p 8080 \\\n     --cert-generate \"*.example.com\" \\\n     --cert-email admin@example.com \\\n     --dns-provider cloudflare \\\n     --dns-credentials '{\"dns_cloudflare_email\":\"your@email.com\",\"dns_cloudflare_api_key\":\"your_api_key\"}' \\\n     --host-ssl-enable -y\n\n   # Same with DigitalOcean DNS\n   ./npm-api.sh --host-create \"*.example.com\" -i 192.168.1.10 -p 8080 \\\n     --cert-generate \"*.example.com\" \\\n     --cert-email admin@example.com \\\n     --dns-provider digitalocean \\\n     --dns-credentials '{\"dns_digitalocean_token\":\"your_token\"}' \\\n     --host-ssl-enable -y\n\n   # Same with GoDaddy DNS\n   ./npm-api.sh --host-create \"*.example.com\" -i 192.168.1.10 -p 8080 \\\n     --cert-generate \"*.example.com\" \\\n     --cert-email admin@example.com \\\n     --dns-provider godaddy \\\n     --dns-credentials '{\"dns_godaddy_key\":\"your_key\",\"dns_godaddy_secret\":\"your_secret\"}' \\\n     --host-ssl-enable -y\n\n 🛡️ Access Control Lists:\n   # List all access lists\n   ./npm-api.sh --list-access                   \n   # Show detailed information for specific access list\n   ./npm-api.sh --access-list-show 123  \n   # Create a basic access list\n   ./npm-api.sh --access-list-create \"office\" --satisfy any\n   # Create access list with authentication\n   ./npm-api.sh --access-list-create \"secure_area\" --satisfy all --pass-auth true\n   # Create access list with users\n   ./npm-api.sh --access-list-create \"dev_team\" --users \"john,jane,bob\" --pass-auth true\n   # Create access list with IP rules\n   ./npm-api.sh --access-list-create \"internal\" --allow \"192.168.1.0/24\" --deny \"192.168.1.100\"\n   # Create comprehensive access list\n   ./npm-api.sh --access-list-create \"full_config\" \\\n     --satisfy all \\\n     --pass-auth true \\\n     --users \"admin1,admin2\" \\\n     --allow \"10.0.0.0/8,172.16.0.0/12\" \\\n     --deny \"10.0.0.50,172.16.1.100\"\n   \n   # Update an existing access list\n   ./npm-api.sh --access-list-update 42        \n   # Delete an access list (with confirmation)\n   ./npm-api.sh --access-list-delete 42        \n   # Delete an access list (skip confirmation)\n   ./npm-api.sh --access-list-delete 42 -y     \n   # Enable ACL for a host\n   ./npm-api.sh --host-acl-enable 42,5         # Enable ACL ID 5 for host 42\n   # Disable ACL for a host\n   ./npm-api.sh --host-acl-disable 42          # Disable ACL for host 42\n\n 👥 User Management:\n   ./npm-api.sh --create-user newuser password123 user@example.com\n   ./npm-api.sh --delete-user 'username'\n   ./npm-api.sh --list-users\n\n 🔧 Advanced Examples:\n   # Custom Nginx configuration\n   ./npm-api.sh --host-create example.com -i 192.168.1.10 -p 8080 \\\n     -a 'proxy_set_header X-Real-IP $remote_addr;'\n\n 🛡️ Custom locations:\n   ./npm-api.sh --host-create example.com -i 192.168.1.10 -p 8080 \\\n     -l '[{\"path\":\"/api\",\"forward_host\":\"192.168.1.11\",\"forward_port\":8081}]'\n\n   # Update specific fields\n   ./npm-api.sh --update-host 42 forward_scheme=https\n   ./npm-api.sh --update-host 42 forward_port=8443\n\n \n 🔖 Full options:\n   ./npm-api.sh --host-create example.com -i 192.168.1.10 -p 8080 \\\n    -f https -c true -b true -w true \\\n    -a 'proxy_set_header X-Real-IP $remote_addr;' \\\n    -l '[{\"path\":\"/api\",\"forward_host\":\"192.168.1.11\",\"forward_port\":8081}]'\n```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e 💾 Backup\u003c/summary\u003e\n\n```bash\n./npm-api.sh --backup\n```\n\n#### Schema of the backup directory:\n\n```bash\n# Full backup of all configurations\n./npm-api.sh --backup\n\n# This will create a backup in the following structure:\n📁 data/\n└── 📁 backups/\n    └── 📁 [IP]_[PORT]/\n        ├── 📁 .access_lists/                    # Access list configurations\n        ├── 📁 .Proxy_Hosts/                     # All proxy host configurations\n        │   ├── 📁 [DOMAIN]/                     # Directory for each domain\n        │   │   ├── 📁 logs/                     # Log directory\n        │   │   ├── 📁 ssl/                      # SSL directory\n        │   │   │   ├── 📄 certificate_meta.json # Certificate metadata\n        │   │   │   ├── 📄 certificate.pem       # Certificate\n        │   │   │   ├── 📄 chain.pem             # Chain of certificates\n        │   │   │   └── 📄 private.key           # Private key\n        │   │   ├── 📄 nginx.conf                # Nginx configuration\n        │   │   └── 📄 proxy_config.json         # Proxy configuration\n        │   ├── 📄 all_hosts_[DATE].json         # List of all hosts\n        │   └── 📄 all_hosts_latest.json         # Symlink to latest backup        \n        ├── 📁 .settings/                        # NPM settings\n        ├── 📁 .ssl/                             # SSL certificates\n        ├── 📁 .user/                            # User configurations\n        └── 📄 full_config.json                  # Complete backup file\n        └── 📁 token/  \n            ├── 📄 token.txt                     # Authentication token\n            └── 📄 expiry.txt                    # Token expiry date        \n```\n\n\n1. **Proxy Hosts** (`/.Proxy_Hosts/`)\n   - Individual host configurations\n   - Nginx configurations\n   - Complete host list with timestamps\n\n2. **SSL Certificates** (`/.ssl/`)\n   - Certificates and private keys\n   - Certificate metadata\n   - Chain certificates\n\n3. **Access Lists** (`/.access_lists/`)\n   - Access list configurations\n   - Client authorizations\n   - Access rules\n\n4. **Users** (`/.user/`)\n   - User accounts\n   - Permissions\n   - Authentication settings\n\n5. **Settings** (`/.settings/`)\n   - Global NPM settings\n   - System configurations\n   - Default parameters\n\n\nThe `token/` directory contains:\n- Authentication tokens\n- Token expiry information\n- One file per NPM instance\n\n#### --host-update      \n##### update specific fields of an existing proxy host\n\nThe `--host-update` command allows you to **update specific fields** of an existing proxy host in Nginx Proxy Manager **without recreating it**.  \n\nSimply specify the **proxy host ID** and the **field you want to update**, like this:\n\n```bash\n./npm-api.sh --update-host 42 forward_host=new.backend.local\n```\n \n| Field Name               | Type      | Description                                                                 |\n|--------------------------|-----------|-----------------------------------------------------------------------------|\n| `domain_names`           | `array`   | List of domains handled by this proxy.                                      |\n| `forward_host`           | `string`  | The destination (backend) hostname or IP.                                   |\n| `forward_port`           | `integer` | The destination port (e.g., `8000`, `443`).                                 |\n| `forward_scheme`         | `string`  | The scheme: `http` or `https`.                                              |\n| `enabled`                | `boolean` | Whether the proxy is enabled (`true` or `false`).                           |\n| `ssl_forced`             | `boolean` | Redirect all HTTP requests to HTTPS.                                        |\n| `certificate_id`         | `integer` | The ID of the SSL certificate to use.                                       |\n| `meta.letsencrypt_agree` | `boolean` | Agree to Let's Encrypt TOS (`true` or `false`).                             |\n| `meta.dns_challenge`     | `boolean` | Use DNS challenge for SSL cert (`true` or `false`).                         |\n| `allow_websocket_upgrade`| `boolean` | Enable WebSocket support (`true` or `false`).                               |\n| `http2_support`          | `boolean` | Enable HTTP/2 (`true` or `false`).                                          |\n| `caching_enabled`        | `boolean` | Enable caching (`true` or `false`).                                         |\n| `block_exploits`         | `boolean` | Block known exploits (`true` or `false`).                                   |\n| `advanced_config`        | `string`  | Custom Nginx directives (multiline string).                                 |\n| `locations`              | `array`   | Custom location blocks (advanced use).                                      |\n\n\n\u003c/details\u003e\n\n\n\u003cdetails\u003e\n\u003csummary\u003e🔍 Info\u003c/summary\u003e\n\n#### Verifying the Configuration\n\nSome info of settings in the script with `./npm-api.sh --info`\n   \n```bash\n./npm-api.sh --info\n\n 🔍 Checking system dependencies and directories...\n ✅ All dependencies and directories are properly set up\n    ├── System tools: OK\n    ├── Directories : OK\n    └── Permissions : OK\n\n 🔑 Checking token validity...\n ✅ Token is valid\n 📅 Expires: 2026-03-14T10:24:56.267Z\n\n Script Info:  3.0.0\n Script Variables Information:\n Config      : /home/tools/Project/nginx_proxy/npm-api.conf\n BASE  URL   : http://127.0.0.1:8099/api\n NGINX  IP   : 127.0.0.1\n USER NPM    : user@mail.com\n BACKUP DIR  : /home/tools/Project/nginx_proxy/data/127_0_0_1_8099\n\n 📂 Backup Locations:\n  • Backup: /home/tools/Project/nginx_proxy/data/127_0_0_1_8099/backups\n  • Token: /home/tools/Project/nginx_proxy/data/127_0_0_1_8099/backups/token/\n\n 📊 NGINX - Proxy Manager - Dashboard 🔧\n ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n ┌─────────────────┬─────────┐\n │  COMPONENT      │ STATUS  │\n ├─────────────────┼─────────┤\n │ 🌐 Proxy Hosts  │ 11      │\n │ ├─ Enabled      │ 9       │\n │ └─ Disabled     │ 2       │\n ├─────────────────┼─────────┤\n │ 🔄 Redirections │ 1       │\n │ 🔌 Stream Hosts │ 0       │\n ├─────────────────┼─────────┤\n │ 🔒 Certificates │ 1       │\n │ ├─ Valid        │ 1       │\n │ └─ Expired      │ 0       │\n ├─────────────────┼─────────┤\n │ 🔒 Access Lists │ 1       │\n │ └─ Clients      │ 0       │\n ├─────────────────┼─────────┤\n │ 👥 Users        │ 3       │\n ├─────────────────┼─────────┤\n │ ⏱️  Uptime       │ 2 days  │\n │ 📦 NPM Version  │ 2.12.3  │\n └─────────────────┴─────────┘\n\n 💡 Use --help to see available commands\n    Check --examples for more help examples\n```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e 🔐 How to activate SSL ?\u003c/summary\u003e\n\nBy following these steps, you can enable SSL for your proxy host for the first time using Let's Encrypt.\n\n List all Host in one command and show ´id´ , ´status´ and ´SSL´ status to know ID :\n\n      ./npm-api.sh --host-list\n\n      👉 List of proxy hosts (simple)\n        ID     Domain                               Status    SSL    Certificate Domain\n        14     example.com                           enabled  ✘\n        15     example.titi                          enabled  ✘\n        1      domain.com                            disable  8      domain.com\n        11     titi.eu                               enabled  ✘\n        12     toutou                                disable  ✘\n        13     toutoux                               enabled  ✘\n\n##### Enable SSL for the Host\n\n  Assuming the host ID is *1*, you would enable SSL for the host as follows:\n\n    ./npm-api.sh --host-ssl-enable 1\n\n##### Host proxy info command `--host-show id`\n\n```json\n ./npm-api.sh --host-show 1\n\n 👉 Full details for proxy host ID: 59...\n\n{\n  \"id\": 10,\n  \"created_on\": \"2024-07-11 13:16:34\",\n  \"modified_on\": \"2024-07-13 09:42:40\",\n  \"owner_user_id\": 1,\n  \"domain_names\": [\n    \"test.domain.com\"\n  ],\n  \"forward_host\": \"127.0.0.1\",\n  \"forward_port\": 80,\n  \"access_list_id\": 0,\n  \"certificate_id\": 81,\n  \"ssl_forced\": 1,\n  \"caching_enabled\": 0,\n  \"block_exploits\": 1,\n  \"advanced_config\": \"\",\n  \"meta\": {\n    \"letsencrypt_agree\": true,\n    \"letsencrypt_email\": \"\",\n    \"nginx_online\": true,\n    \"nginx_err\": null\n  },\n  \"allow_websocket_upgrade\": 1,\n  \"http2_support\": 1,\n  \"forward_scheme\": \"http\",\n  \"enabled\": 1,\n  \"locations\": [],\n  \"hsts_enabled\": 1,\n  \"hsts_subdomains\": 0\n}\n\n```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eTODO:\u003c/summary\u003e\n\n \n- [x] add setting for ADVANCED configuration in npm `location / { ... }`\n- [x] Add documentation on certain functions\n- [x] ADD: a configuration function for Custom Locations\n- [x] Backup all settings from NPM\n- [x] Add automatic confirmation with -y parameter\n- [X] Clean/minimize output when using -y parameter for better script integration\n- [X] Creation of ACCESS list through CLI\n- [ ] Restore Function not working properly, need to find FIX\n\u003c/details\u003e\n\n\n\n## Star History\n\n[![Star History Chart](https://api.star-history.com/svg?repos=Erreur32/nginx-proxy-manager-Bash-API\u0026type=date\u0026legend=top-left)](https://www.star-history.com/#Erreur32/nginx-proxy-manager-Bash-API\u0026type=date\u0026legend=top-left)\n\n\n## Credits \u0026 Thanks\n\nSpecial thanks to:\n\n- [@ichbinder](https://github.com/ichbinder) for implementing the `-y` parameter for automatic confirmations\n\n- 🙏 **Special thanks to [zafar-2020](https://github.com/zafar-2020)** for his valuable help with testing and reporting issues during the development of version 3.0.0!\n\n## License\n\nMIT License - see the [LICENSE.md][license] file for details\n\n[contributors]: https://github.com/Erreur32/nginx-proxy-manager-Bash-API/graphs/contributors\n[erreur32]: https://github.com/Erreur32\n[issue]: https://github.com/Erreur32/nginx-proxy-manager-Bash-API/issues\n[license]: https://github.com/Erreur32/nginx-proxy-manager-Bash-API/blob/main/LICENSE.md\n[maintenance-shield]: https://img.shields.io/maintenance/yes/2024.svg\n[project-stage-shield]: https://img.shields.io/badge/project%20stage-stable-green.svg\n[release-shield]: https://img.shields.io/badge/version-v3.1.0-blue.svg\n[release]: https://github.com/Erreur32/nginx-proxy-manager-Bash-API/releases/tag/v3.1.0\n[contributors-shield]: https://img.shields.io/github/contributors/Erreur32/nginx-proxy-manager-Bash-API.svg\n[license-shield]: https://img.shields.io/github/license/Erreur32/nginx-proxy-manager-Bash-API.svg\n[issues-shield]: https://img.shields.io/github/issues/Erreur32/nginx-proxy-manager-Bash-API.svg\n[stars-shield]: https://img.shields.io/github/stars/Erreur32/nginx-proxy-manager-Bash-API.svg\n[stars]: https://github.com/Erreur32/nginx-proxy-manager-Bash-API/stargazers\n\n---\n\n## 🙏 Acknowledgments\n\nSpecial thanks to [@popy2k14](https://github.com/popy2k14) for identifying and reporting the certificate download issue in [PR #20](https://github.com/Erreur32/nginx-proxy-manager-Bash-API/pull/20). Their contribution helped improve the script's compatibility with newer NPM installations by highlighting the API changes and the need for fallback support.\n\nSpecial thanks to the contributors of [PR #28](https://github.com/Erreur32/nginx-proxy-manager-Bash-API/pull/28) for fixing the `host_list` function to properly handle proxy hosts with multiple domain names. This critical bug fix ensures that the listing function works correctly when domain names contain spaces or when multiple domains are configured.\n\nSpecial thanks to the contributors of [PR #29](https://github.com/Erreur32/nginx-proxy-manager-Bash-API/pull/29) for adding the TARGET column to the `host_list` output. This enhancement makes it much easier to see where each proxy host forwards traffic without needing to check individual host details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ferreur32%2Fnginx-proxy-manager-bash-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ferreur32%2Fnginx-proxy-manager-bash-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ferreur32%2Fnginx-proxy-manager-bash-api/lists"}