Skip to content

mohammed90/caddy-storage-loader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Caddy Config Loader from Storage

Caddy supports dynamic config loading as part of an experimental feature that was introduced in v2.4.0. This module tells Caddy to load its configuration from any Caddy storage module. This means it's possible to store Caddy configuration in any caddy-compatible storage, e.g. database, s3, file_system, memory, encrypted, or any module that's part of the caddy.storage. namespace, and then load it into Caddy dynamically. This is useful for use-cases where you want to store your Caddy configuration in a database, or any form of shared location with multiple Caddy instances.

Example

Loading JSON configuration

This configuration file combination eventually configures Caddy to respond with `OK`. Store this configuration file in caddy storage under the key `config/caddy.json`
{
	"admin": {
		"listen": "localhost:2999"
	},
	"apps": {
		"http": {
			"http_port": 9080,
			"https_port": 9443,
			"servers": {
				"srv0": {
					"listen": [
						":8443"
					],
					"routes": [
						{
							"match": [
								{
									"host": [
										"localhost"
									]
								}
							],
							"handle": [
								{
									"handler": "subroute",
									"routes": [
										{
											"handle": [
												{
													"body": "OK!",
													"handler": "static_response"
												}
											]
										}
									]
								}
							],
							"terminal": true
						}
					]
				}
			}
		},
		"pki": {
			"certificate_authorities": {
				"local": {
					"install_trust": false
				}
			}
		}
	}
}

Run Caddy with the following config:

{
	"admin": {
		"listen":"localhost:2019",
		"config": {
			"load": {
				"module": "storage"
			}
		}
	}
}

Loading Caddyfile configuration

This configuration file combination eventually configures Caddy to respond with `OK`. Store this configuration file in caddy storage under the key `config/Caddyfile`
example.com {
	respond "Howdy!"
}

Run Caddy with the following config:

{
	"admin": {
		"listen":"localhost:2019",
		"config": {
			"load": {
				"module": "storage",
				"adapter": "caddyfile",
				"key": "config/Caddyfile"
			}
		}
	}
}

About

Config loader module for Caddy which reads from Caddy storage

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages