eighteen73 / nginx-proxy-manager-api
PHP Library for controlling NginxProxyManager https://github.com/NginxProxyManager
Installs: 1 150
Dependents: 0
Suggesters: 0
Security: 0
Stars: 6
Watchers: 5
Forks: 1
Open Issues: 1
Requires
- php: ^8.2
- ext-json: *
- guzzlehttp/guzzle: ^7.4
Requires (Dev)
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2025-02-22 17:23:34 UTC
README
PHP Library for NginxProxyManager API.
Requirements
- PHP 8.0+
- guzzlehttp/guzzle 7.4+
- ext-json extension
Installation
composer require eighteen73/nginx-proxy-manager-api
Otherwise just download the package and add it to the autoloader.
Usage
Retrieve an API Token.
$accessToken = Eighteen73\NginxProxyManager\NginxProxyManager::createAccessToken($baseUrl, $username, $password);
Create a new VHost
$nginx = Eighteen73\NginxProxyManager\NginxProxyManager::create($baseUrl, $accessToken); $nginx->hosts()->create([ 'access_list_id' => '0', // ID of an Access List to restrict host 'advanced_config' => '', // Advanced Nginx rules 'allow_websocket_upgrade' => false 'block_exploits' => true, 'caching_enabled' => false, 'certificate_id' => "new", // Either ID of existing cert, or "new" to request a new cert 'domain_names' => ['example.com'], // Array of domains 'forward_host' => '127.0.0.1', // Backend server hostname or IP 'forward_port' => 8080, // Backend server port 'forward_scheme' => 'http', // Backend listen scheme/protocol 'hsts_enabled' => true, 'hsts_subdomains' => false, 'http2_support' => true, 'ssl_forced' => true, 'locations' => [], // Custom location directives for Nginx 'meta' => [ 'letsencrypt_agree': false, 'dns_challenge': false, ], ]);
Update an existing record
$nginx = Eighteen73\NginxProxyManager\NginxProxyManager::create($baseUrl, $accessToken); $nginx->hosts()->update($id, [ // As create method above ]);
Delete a host
$nginx = Eighteen73\NginxProxyManager\NginxProxyManager::create($baseUrl, $accessToken); $nginx->hosts()->delete($id);