Skip to content

eighteen73/nginx-proxy-manager-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Nginx Proxy Manager PHP Library

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);

Links

About

A PHP Library for managing hosts inside NginxProxyManager

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages