Download the PHP package mattvb91/caddy-php without Composer
On this page you can find all versions of the php package mattvb91/caddy-php. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download mattvb91/caddy-php
More information about mattvb91/caddy-php
Files in mattvb91/caddy-php
Package caddy-php
Short Description Control your Caddy instance through PHP
License MIT
Informations about the package caddy-php
Control your Caddy instance through PHP
This is more of a proof of concept rather than a fully working project. This tries to replicate the caddy JSON API structure to work through chainable PHP classes.
At the moment there is only a tiny subset of commands available from Caddy 2.0 that covered my currently needed use case.
Install
Basic Usage
A basic example of a http server with a static response:
This will result in the following Caddy config:
Managing Hostnames
If you are managing hostnames dynamically (in a database) and can't build out the config with a list of existing hostnames because you need to manage them at runtime you can do the following:
The important part in this example is the host_group_name
identifier which is later
used to add / remove domains to this host.
Adding Hostnames
Now later on in a script or event on your system you can get your caddy configuration object and post a new domain to it under that route:
Removing Hostnames
Advanced Example
Let's take a case where you want to have a Node frontend and a PHP backend taking requests on the /api/*
route.
In this case the example breaks down to 2 reverse proxy's with a route matcher to filter the /api/*
to the PHP
upstream.
This assumes the 3 hosts (Caddy, Node, PHP) are all docker containers and accessible by container name within the same docker network, so you may have to adjust your hostnames as required.
This will post the following caddy config:
Take a look in the tests for more examples.