= 'jph.answer.ai' host
API
Basic API for Caddy
Caddy admin
Initial functions
get_id
get_id (path)
Get a ID full URL from a path
'jph.answer.ai') get_id(
'http://localhost:2019/id/jph.answer.ai/'
get_path
get_path (path)
Get a config full URL from a path
'/apps/tls/automation/policies') get_path(
'http://localhost:2019/config/apps/tls/automation/policies/'
gid
gid (path='/')
Gets the id at path
has_id
has_id (id)
Check if id
is set up
gcfg
gcfg (path='/', method='get')
Gets the config at path
has_path
has_path (path)
Check if path
is set up
# gcfg()
pid
pid (d, path='/', method='post')
Puts the config d
into path
pcfg
pcfg (d, path='/', method='post')
Puts the config d
into path
pcfg({})
nested_setdict
nested_setdict (sd, value, *keys)
Returns sd
updated to set value
at the path keys
'a':'b'}, {'c':'d'}, 'apps', 'http', 'servers', 'srv0') nested_setdict({
{'a': 'b', 'apps': {'http': {'servers': {'srv0': {'c': 'd'}}}}}
path2keys
path2keys (path)
Split path
by ‘/’ into a list
'/apps/tls/automation/policies') path2keys(
['apps', 'tls', 'automation', 'policies']
keys2path
keys2path (*keys)
Join keys
into a ‘/’ separated path
'apps', 'tls', 'automation', 'policies') keys2path(
'/apps/tls/automation/policies'
nested_setcfg
nested_setcfg (value, *keys)
init_path
init_path (path, skip=0)
Acme setup
= os.environ.get('AAI_CF_TOKEN', 'XXX') cf_token
get_acme_config
get_acme_config (token)
add_acme_config
add_acme_config (cf_token)
add_acme_config(cf_token)
# gcfg('/apps/tls/automation/policies')[0]
Route setup
init_routes
init_routes (srv_name='srv0')
Create basic http server/routes config
init_routes()
setup_caddy
setup_caddy (cf_token, srv_name='srv0')
Create SSL config and HTTP app skeleton
# pcfg({})
setup_caddy(cf_token)
gcfg(srvs_path)
{'srv0': {'listen': [':80', ':443'], 'routes': []}}
add_route
add_route (route)
Add route
dict to config
del_id
del_id (id)
Delete route for id
(e.g. a host)
# del_id(host)
add_reverse_proxy
add_reverse_proxy (from_host, to_url)
Create a reverse proxy handler
"localhost:5001") add_reverse_proxy(host,
gcfg(rts_path)
(#1) [{'@id': 'jph.answer.ai', 'handle': [{'handler': 'reverse_proxy', 'upstreams': [{'dial': 'localhost:5001'}]}], 'match': [{'host': ['jph.answer.ai']}], 'terminal': True}]
gid(host)
{ '@id': 'jph.answer.ai',
'handle': [{'handler': 'reverse_proxy', 'upstreams': [{'dial': 'localhost:5001'}]}],
'match': [{'host': ['jph.answer.ai']}],
'terminal': True}