Config JSON
{
"admin": {
"disabled": true
},
"apps": {
"http": {
"servers": {
"srv0": {
"listen": [
":443"
],
"routes": [
{
"match": [
{
"host": [
"nextcloud.chrisrees.dev"
]
}
],
"handle": [
{
"handler": "subroute",
"routes": [
{
"handle": [
{
"encodings": {
"gzip": {}
},
"handler": "encode"
},
{
"flush_interval": -1,
"handler": "reverse_proxy",
"transport": {
"protocol": "http",
"tls": {
"insecure_skip_verify": true
}
},
"upstreams": [
{
"dial": "192.168.128.6:443"
}
]
}
]
}
]
}
],
"terminal": true
},
{
"match": [
{
"host": [
"speedtest.chrisrees.dev"
]
}
],
"handle": [
{
"handler": "subroute",
"routes": [
{
"handle": [
{
"flush_interval": -1,
"handler": "reverse_proxy",
"upstreams": [
{
"dial": "192.168.128.12:80"
}
]
}
]
}
]
}
],
"terminal": true
},
{
"match": [
{
"host": [
"organizr.chrisrees.dev"
]
}
],
"handle": [
{
"handler": "subroute",
"routes": [
{
"handle": [
{
"flush_interval": -1,
"handler": "reverse_proxy",
"upstreams": [
{
"dial": "192.168.128.15:80"
}
]
}
]
}
]
}
],
"terminal": true
},
{
"match": [
{
"host": [
"sabnzbd.chrisrees.dev"
]
}
],
"handle": [
{
"handler": "subroute",
"routes": [
{
"handle": [
{
"flush_interval": -1,
"handler": "reverse_proxy",
"upstreams": [
{
"dial": "192.168.128.9:8080"
}
]
}
]
}
]
}
],
"terminal": true
},
{
"match": [
{
"host": [
"dozzle.chrisrees.dev"
]
}
],
"handle": [
{
"handler": "subroute",
"routes": [
{
"handle": [
{
"flush_interval": -1,
"handler": "reverse_proxy",
"upstreams": [
{
"dial": "192.168.128.8:8080"
}
]
}
]
}
]
}
],
"terminal": true
},
{
"match": [
{
"host": [
"lidarr.chrisrees.dev"
]
}
],
"handle": [
{
"handler": "subroute",
"routes": [
{
"handle": [
{
"flush_interval": -1,
"handler": "reverse_proxy",
"upstreams": [
{
"dial": "192.168.128.18:8686"
}
]
}
]
}
]
}
],
"terminal": true
},
{
"match": [
{
"host": [
"lounge.chrisrees.dev"
]
}
],
"handle": [
{
"handler": "subroute",
"routes": [
{
"handle": [
{
"flush_interval": -1,
"handler": "reverse_proxy",
"upstreams": [
{
"dial": "192.168.128.14:9000"
}
]
}
]
}
]
}
],
"terminal": true
},
{
"match": [
{
"host": [
"lychee.chrisrees.dev"
]
}
],
"handle": [
{
"handler": "subroute",
"routes": [
{
"handle": [
{
"flush_interval": -1,
"handler": "reverse_proxy",
"upstreams": [
{
"dial": "192.168.128.13:80"
}
]
}
]
}
]
}
],
"terminal": true
},
{
"match": [
{
"host": [
"radarr.chrisrees.dev"
]
}
],
"handle": [
{
"handler": "subroute",
"routes": [
{
"handle": [
{
"flush_interval": -1,
"handler": "reverse_proxy",
"upstreams": [
{
"dial": "192.168.128.20:7878"
}
]
}
]
}
]
}
],
"terminal": true
},
{
"match": [
{
"host": [
"sonarr.chrisrees.dev"
]
}
],
"handle": [
{
"handler": "subroute",
"routes": [
{
"handle": [
{
"flush_interval": -1,
"handler": "reverse_proxy",
"upstreams": [
{
"dial": "192.168.128.21:8989"
}
]
}
]
}
]
}
],
"terminal": true
},
{
"match": [
{
"host": [
"codex.chrisrees.dev"
]
}
],
"handle": [
{
"handler": "subroute",
"routes": [
{
"handle": [
{
"flush_interval": -1,
"handler": "reverse_proxy",
"upstreams": [
{
"dial": "192.168.128.16:9810"
}
]
}
]
}
]
}
],
"terminal": true
},
{
"match": [
{
"host": [
"files.chrisrees.dev"
]
}
],
"handle": [
{
"handler": "subroute",
"routes": [
{
"handle": [
{
"handler": "vars",
"root": "/var/www"
},
{
"browse": {},
"handler": "file_server",
"hide": [
"Caddyfile"
]
}
]
}
]
}
],
"terminal": true
},
{
"match": [
{
"host": [
"grocy.chrisrees.dev"
]
}
],
"handle": [
{
"handler": "subroute",
"routes": [
{
"handle": [
{
"flush_interval": -1,
"handler": "reverse_proxy",
"upstreams": [
{
"dial": "192.168.128.7:80"
}
]
}
]
}
]
}
],
"terminal": true
},
{
"match": [
{
"host": [
"hydra.chrisrees.dev"
]
}
],
"handle": [
{
"handler": "subroute",
"routes": [
{
"handle": [
{
"flush_interval": -1,
"handler": "reverse_proxy",
"upstreams": [
{
"dial": "192.168.128.17:5076"
}
]
}
]
}
]
}
],
"terminal": true
},
{
"match": [
{
"host": [
"mylar.chrisrees.dev"
]
}
],
"handle": [
{
"handler": "subroute",
"routes": [
{
"handle": [
{
"flush_interval": -1,
"handler": "reverse_proxy",
"upstreams": [
{
"dial": "192.168.128.19:8090"
}
]
}
]
}
]
}
],
"terminal": true
},
{
"match": [
{
"host": [
"plex.chrisrees.dev"
]
}
],
"handle": [
{
"handler": "subroute",
"routes": [
{
"handle": [
{
"flush_interval": -1,
"handler": "reverse_proxy",
"upstreams": [
{
"dial": "192.168.128.10:32400"
}
]
}
]
}
]
}
],
"terminal": true
},
{
"match": [
{
"host": [
"sync.chrisrees.dev"
]
}
],
"handle": [
{
"handler": "subroute",
"routes": [
{
"handle": [
{
"flush_interval": -1,
"handler": "reverse_proxy",
"upstreams": [
{
"dial": "192.168.128.11:8384"
}
]
}
],
"match": [
{
"path": [
"/*"
]
}
]
}
]
}
],
"terminal": true
}
]
}
}
},
"tls": {
"automation": {
"policies": [
{
"subjects": [
"nextcloud.chrisrees.dev",
"speedtest.chrisrees.dev",
"organizr.chrisrees.dev",
"sabnzbd.chrisrees.dev",
"dozzle.chrisrees.dev",
"lidarr.chrisrees.dev",
"lounge.chrisrees.dev",
"lychee.chrisrees.dev",
"radarr.chrisrees.dev",
"sonarr.chrisrees.dev",
"codex.chrisrees.dev",
"files.chrisrees.dev",
"grocy.chrisrees.dev",
"hydra.chrisrees.dev",
"mylar.chrisrees.dev",
"plex.chrisrees.dev",
"sync.chrisrees.dev"
],
"issuer": {
"challenges": {
"dns": {
"provider": {
"api_token": "<TOKEN>",
"name": "cloudflare"
}
}
},
"email": "i.am@chrisrees.dev",
"module": "acme"
}
},
{
"issuer": {
"email": "i.am@chrisrees.dev",
"module": "acme"
}
}
]
}
}
}
}