Caddy Proxy Manager supports a master/slave synchronization model for multi-instance deployments. The master pushes proxy hosts, certificates, access lists, and settings to one or more slave instances on every configuration change, keeping all nodes consistent without manual intervention. User accounts and API tokens are not synced — each instance maintains its own user database.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/fuomag9/caddy-proxy-manager/llms.txt
Use this file to discover all available pages before exploring further.
How instance sync works
When a configuration change is saved on the master, CPM immediately sends the updated configuration to all registered slave instances over HTTPS. Each slave applies the change to its own Caddy instance. The sync is triggered on every save, so slaves stay up to date without polling. Optionally, you can configure a periodic full-sync interval to recover slaves that were temporarily offline.Configuration
Master instance
SetINSTANCE_MODE=master and provide a JSON array of slave definitions in INSTANCE_SLAVES. Each slave entry requires a display name, URL, and a bearer token.
.env
Slave instance
SetINSTANCE_MODE=slave and provide the token the master will use to authenticate sync requests.
.env
INSTANCE_SYNC_TOKEN on the slave must match the token field in the master’s INSTANCE_SLAVES entry for that slave.
Environment variable reference
| Variable | Description | Default |
|---|---|---|
INSTANCE_MODE | Role: standalone, master, or slave | standalone |
INSTANCE_SYNC_TOKEN | Bearer token slaves use to authenticate sync requests | — |
INSTANCE_SLAVES | JSON array of slave instances (master only) | — |
INSTANCE_SYNC_INTERVAL | Periodic full-sync interval in seconds (0 = push-only) | 0 |
INSTANCE_SYNC_ALLOW_HTTP | Allow sync over HTTP for isolated internal Docker networks | false |
What gets synced
| Resource | Synced |
|---|---|
| Proxy hosts | Yes |
| L4 proxy hosts | Yes |
| Certificates | Yes |
| Access lists | Yes |
| Settings | Yes |
| User accounts | No |
| API tokens | No |
Periodic sync
SetINSTANCE_SYNC_INTERVAL to a positive number of seconds to trigger a full configuration push on a schedule, in addition to change-triggered pushes. This is useful for recovering slaves that were temporarily offline and missed one or more change events.
.env
Multiple slaves
TheINSTANCE_SLAVES JSON array accepts multiple entries. Each slave can have its own bearer token.
.env