Last active
June 9, 2020 17:51
-
-
Save abiosoft/844bb5eb5d0dcd4071509d0b1d6be957 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"logging": { | |
"logs": { | |
"default": { | |
"level": "DEBUG" | |
} | |
} | |
}, | |
"admin": { | |
"listen": ":2020", | |
"origins": [ | |
"192.168.10.2:2020" | |
], | |
"enforce_origin": false | |
}, | |
"apps": { | |
"http": { | |
"servers": { | |
"srv": { | |
"listen": [ | |
":443", | |
":80" | |
], | |
"routes": [ | |
{ | |
"match": [ | |
{ | |
"host": [ | |
"jackett.example.eu" | |
] | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "subroute", | |
"routes": [ | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"192.168.10.0/24", | |
"192.168.20.0/24", | |
"172.18.0.0/16" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "reverse_proxy", | |
"upstreams": [ | |
{ | |
"dial": "172.18.0.3:9117" | |
} | |
], | |
"headers": { | |
"request": { | |
"set": { | |
"X-Real-Ip": [ | |
"{http.request.remote.host}" | |
] | |
} | |
} | |
} | |
} | |
] | |
}, | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"0.0.0.0/0" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "static_response", | |
"body": " " | |
} | |
] | |
} | |
] | |
} | |
], | |
"terminal": true | |
}, | |
{ | |
"match": [ | |
{ | |
"host": [ | |
"dash.example.eu" | |
] | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "subroute", | |
"routes": [ | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"192.168.10.0/24", | |
"192.168.20.0/24", | |
"172.18.0.0/16" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "reverse_proxy", | |
"upstreams": [ | |
{ | |
"dial": "172.18.0.23:8080" | |
} | |
], | |
"headers": { | |
"request": { | |
"set": { | |
"X-Real-Ip": [ | |
"{http.request.remote.host}" | |
] | |
} | |
} | |
} | |
} | |
] | |
}, | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"0.0.0.0/0" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "static_response", | |
"body": " " | |
} | |
] | |
} | |
] | |
} | |
], | |
"terminal": true | |
}, | |
{ | |
"match": [ | |
{ | |
"host": [ | |
"radarr.example.eu" | |
] | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "subroute", | |
"routes": [ | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"192.168.10.0/24", | |
"192.168.20.0/24", | |
"172.18.0.0/16" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "reverse_proxy", | |
"upstreams": [ | |
{ | |
"dial": "172.18.0.13:7878" | |
} | |
], | |
"headers": { | |
"request": { | |
"set": { | |
"X-Real-Ip": [ | |
"{http.request.remote.host}" | |
] | |
} | |
} | |
} | |
} | |
] | |
}, | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"0.0.0.0/0" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "static_response", | |
"body": " " | |
} | |
] | |
} | |
] | |
} | |
], | |
"terminal": true | |
}, | |
{ | |
"match": [ | |
{ | |
"host": [ | |
"hass.example.eu" | |
] | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "subroute", | |
"routes": [ | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"0.0.0.0/0" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "reverse_proxy", | |
"upstreams": [ | |
{ | |
"dial": "172.18.0.20:8123" | |
} | |
], | |
"headers": { | |
"request": { | |
"set": { | |
"X-Real-Ip": [ | |
"{http.request.remote.host}" | |
] | |
} | |
} | |
} | |
} | |
] | |
} | |
] | |
} | |
], | |
"terminal": true | |
}, | |
{ | |
"match": [ | |
{ | |
"host": [ | |
"bazarr.example.eu" | |
] | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "subroute", | |
"routes": [ | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"192.168.10.0/24", | |
"192.168.20.0/24", | |
"172.18.0.0/16" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "reverse_proxy", | |
"upstreams": [ | |
{ | |
"dial": "172.18.0.17:6767" | |
} | |
], | |
"headers": { | |
"request": { | |
"set": { | |
"X-Real-Ip": [ | |
"{http.request.remote.host}" | |
] | |
} | |
} | |
} | |
} | |
] | |
}, | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"0.0.0.0/0" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "static_response", | |
"body": " " | |
} | |
] | |
} | |
] | |
} | |
], | |
"terminal": true | |
}, | |
[ | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"0.0.0.0/0" | |
] | |
}, | |
"path": [ | |
"/notifications/hub/negotiate" | |
] | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "reverse_proxy", | |
"upstreams": [ | |
{ | |
"dial": "172.18.0.8:8080" | |
} | |
] | |
} | |
] | |
}, | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"0.0.0.0/0" | |
] | |
}, | |
"path": [ | |
"/notifications/hub" | |
] | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "reverse_proxy", | |
"upstreams": [ | |
{ | |
"dial": "172.18.0.8:3012" | |
} | |
] | |
} | |
] | |
}, | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"0.0.0.0/0" | |
] | |
}, | |
"path": [ | |
"*" | |
] | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "reverse_proxy", | |
"upstreams": [ | |
{ | |
"dial": "172.18.0.8:80" | |
} | |
] | |
} | |
] | |
} | |
], | |
{ | |
"match": [ | |
{ | |
"host": [ | |
"heimdall.example.eu" | |
] | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "subroute", | |
"routes": [ | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"192.168.10.0/24", | |
"192.168.20.0/24", | |
"172.18.0.0/16" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "reverse_proxy", | |
"upstreams": [ | |
{ | |
"dial": "172.18.0.21:80" | |
} | |
], | |
"headers": { | |
"request": { | |
"set": { | |
"X-Real-Ip": [ | |
"{http.request.remote.host}" | |
] | |
} | |
} | |
} | |
} | |
] | |
}, | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"0.0.0.0/0" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "static_response", | |
"body": " " | |
} | |
] | |
} | |
] | |
} | |
], | |
"terminal": true | |
}, | |
{ | |
"match": [ | |
{ | |
"host": [ | |
"nextcloud.example.eu" | |
] | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "subroute", | |
"routes": [ | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"0.0.0.0/0" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "reverse_proxy", | |
"upstreams": [ | |
{ | |
"dial": "172.18.0.7:80" | |
} | |
], | |
"headers": { | |
"request": { | |
"set": { | |
"X-Real-Ip": [ | |
"{http.request.remote.host}" | |
] | |
} | |
} | |
} | |
} | |
] | |
} | |
] | |
} | |
], | |
"terminal": true | |
}, | |
{ | |
"match": [ | |
{ | |
"host": [ | |
"sonarr.example.eu" | |
] | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "subroute", | |
"routes": [ | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"192.168.10.0/24", | |
"192.168.20.0/24", | |
"172.18.0.0/16" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "reverse_proxy", | |
"upstreams": [ | |
{ | |
"dial": "172.18.0.15:8989" | |
} | |
], | |
"headers": { | |
"request": { | |
"set": { | |
"X-Real-Ip": [ | |
"{http.request.remote.host}" | |
] | |
} | |
} | |
} | |
} | |
] | |
}, | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"0.0.0.0/0" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "static_response", | |
"body": " " | |
} | |
] | |
} | |
] | |
} | |
], | |
"terminal": true | |
}, | |
{ | |
"match": [ | |
{ | |
"host": [ | |
"emby.example.eu" | |
] | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "subroute", | |
"routes": [ | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"192.168.10.0/24", | |
"192.168.20.0/24", | |
"172.18.0.0/16" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "reverse_proxy", | |
"upstreams": [ | |
{ | |
"dial": "172.18.0.12:8096" | |
} | |
], | |
"headers": { | |
"request": { | |
"set": { | |
"X-Real-Ip": [ | |
"{http.request.remote.host}" | |
] | |
} | |
} | |
} | |
} | |
] | |
}, | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"0.0.0.0/0" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "static_response", | |
"body": " " | |
} | |
] | |
} | |
] | |
} | |
], | |
"terminal": true | |
}, | |
{ | |
"match": [ | |
{ | |
"host": [ | |
"portainer.example.eu" | |
] | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "subroute", | |
"routes": [ | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"192.168.10.0/24", | |
"192.168.20.0/24", | |
"172.18.0.0/16" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "reverse_proxy", | |
"upstreams": [ | |
{ | |
"dial": "172.18.0.4:9000" | |
} | |
], | |
"headers": { | |
"request": { | |
"set": { | |
"X-Real-Ip": [ | |
"{http.request.remote.host}" | |
] | |
} | |
} | |
} | |
} | |
] | |
}, | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"0.0.0.0/0" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "static_response", | |
"body": " " | |
} | |
] | |
} | |
] | |
} | |
], | |
"terminal": true | |
}, | |
{ | |
"match": [ | |
{ | |
"host": [ | |
"kibana.example.eu" | |
] | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "subroute", | |
"routes": [ | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"192.168.10.0/24", | |
"192.168.20.0/24", | |
"172.18.0.0/16" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "reverse_proxy", | |
"upstreams": [ | |
{ | |
"dial": "172.18.0.27:5601" | |
} | |
], | |
"headers": { | |
"request": { | |
"set": { | |
"X-Real-Ip": [ | |
"{http.request.remote.host}" | |
] | |
} | |
} | |
} | |
} | |
] | |
}, | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"0.0.0.0/0" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "static_response", | |
"body": " " | |
} | |
] | |
} | |
] | |
} | |
], | |
"terminal": true | |
}, | |
{ | |
"match": [ | |
{ | |
"host": [ | |
"elasticsearch.example.eu" | |
] | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "subroute", | |
"routes": [ | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"192.168.10.0/24", | |
"192.168.20.0/24", | |
"172.18.0.0/16" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "reverse_proxy", | |
"upstreams": [ | |
{ | |
"dial": "172.18.0.18:9200" | |
} | |
], | |
"headers": { | |
"request": { | |
"set": { | |
"X-Real-Ip": [ | |
"{http.request.remote.host}" | |
] | |
} | |
} | |
} | |
} | |
] | |
}, | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"0.0.0.0/0" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "static_response", | |
"body": " " | |
} | |
] | |
} | |
] | |
} | |
], | |
"terminal": true | |
}, | |
{ | |
"match": [ | |
{ | |
"host": [ | |
"wg-gen-web.example.eu" | |
] | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "subroute", | |
"routes": [ | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"192.168.10.0/24", | |
"192.168.20.0/24", | |
"172.18.0.0/16" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "reverse_proxy", | |
"upstreams": [ | |
{ | |
"dial": "172.18.0.5:8080" | |
} | |
], | |
"headers": { | |
"request": { | |
"set": { | |
"X-Real-Ip": [ | |
"{http.request.remote.host}" | |
] | |
} | |
} | |
} | |
} | |
] | |
}, | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"0.0.0.0/0" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "static_response", | |
"body": " " | |
} | |
] | |
} | |
] | |
} | |
], | |
"terminal": true | |
}, | |
{ | |
"match": [ | |
{ | |
"host": [ | |
"deluge.example.eu" | |
] | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "subroute", | |
"routes": [ | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"192.168.10.0/24", | |
"192.168.20.0/24", | |
"172.18.0.0/16" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "reverse_proxy", | |
"upstreams": [ | |
{ | |
"dial": "172.18.0.25:8112" | |
} | |
], | |
"headers": { | |
"request": { | |
"set": { | |
"X-Real-Ip": [ | |
"{http.request.remote.host}" | |
] | |
} | |
} | |
} | |
} | |
] | |
}, | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"0.0.0.0/0" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "static_response", | |
"body": " " | |
} | |
] | |
} | |
] | |
} | |
], | |
"terminal": true | |
}, | |
{ | |
"match": [ | |
{ | |
"host": [ | |
"gotify.example.eu" | |
] | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "subroute", | |
"routes": [ | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"192.168.10.0/24", | |
"192.168.20.0/24", | |
"172.18.0.0/16" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "reverse_proxy", | |
"upstreams": [ | |
{ | |
"dial": "172.18.0.9:80" | |
} | |
], | |
"headers": { | |
"request": { | |
"set": { | |
"X-Real-Ip": [ | |
"{http.request.remote.host}" | |
] | |
} | |
} | |
} | |
} | |
] | |
}, | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"0.0.0.0/0" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "static_response", | |
"body": " " | |
} | |
] | |
} | |
] | |
} | |
], | |
"terminal": true | |
}, | |
{ | |
"match": [ | |
{ | |
"host": [ | |
"appdaemon.example.eu" | |
] | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "subroute", | |
"routes": [ | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"192.168.10.0/24", | |
"192.168.20.0/24", | |
"172.18.0.0/16" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "reverse_proxy", | |
"upstreams": [ | |
{ | |
"dial": "172.18.0.26:5050" | |
} | |
], | |
"headers": { | |
"request": { | |
"set": { | |
"X-Real-Ip": [ | |
"{http.request.remote.host}" | |
] | |
} | |
} | |
} | |
} | |
] | |
}, | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"0.0.0.0/0" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "static_response", | |
"body": " " | |
} | |
] | |
} | |
] | |
} | |
], | |
"terminal": true | |
}, | |
{ | |
"match": [ | |
{ | |
"host": [ | |
"jellyfin.example.eu" | |
] | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "subroute", | |
"routes": [ | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"192.168.10.0/24", | |
"192.168.20.0/24", | |
"172.18.0.0/16" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "reverse_proxy", | |
"upstreams": [ | |
{ | |
"dial": "172.18.0.11:8096" | |
} | |
], | |
"headers": { | |
"request": { | |
"set": { | |
"X-Real-Ip": [ | |
"{http.request.remote.host}" | |
] | |
} | |
} | |
} | |
} | |
] | |
}, | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"0.0.0.0/0" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "static_response", | |
"body": " " | |
} | |
] | |
} | |
] | |
} | |
], | |
"terminal": true | |
}, | |
{ | |
"match": [ | |
{ | |
"host": [ | |
"registry.example.eu" | |
] | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "subroute", | |
"routes": [ | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"192.168.10.0/24", | |
"192.168.20.0/24", | |
"172.18.0.0/16" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "reverse_proxy", | |
"upstreams": [ | |
{ | |
"dial": "172.18.0.16:5000" | |
} | |
], | |
"headers": { | |
"request": { | |
"set": { | |
"X-Real-Ip": [ | |
"{http.request.remote.host}" | |
] | |
} | |
} | |
} | |
} | |
] | |
}, | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"0.0.0.0/0" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "static_response", | |
"body": " " | |
} | |
] | |
} | |
] | |
} | |
], | |
"terminal": true | |
} | |
], | |
"automatic_https": { | |
"skip": [ | |
"dash.example.eu" | |
] | |
} | |
} | |
} | |
}, | |
"tls": { | |
"automation": { | |
"policies": [ | |
{ | |
"issuer": { | |
"email": "[email protected]", | |
"module": "acme" | |
} | |
} | |
] | |
} | |
} | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"logging": { | |
"logs": { | |
"default": { | |
"level": "DEBUG" | |
} | |
} | |
}, | |
"admin": { | |
"listen": ":2020", | |
"origins": [ | |
"192.168.10.2:2020" | |
], | |
"enforce_origin": false | |
}, | |
"apps": { | |
"http": { | |
"servers": { | |
"srv": { | |
"listen": [ | |
":443", | |
":80" | |
], | |
"routes": [ | |
{ | |
"match": [ | |
{ | |
"host": [ | |
"jackett.example.eu" | |
] | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "subroute", | |
"routes": [ | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"192.168.10.0/24", | |
"192.168.20.0/24", | |
"172.18.0.0/16" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "reverse_proxy", | |
"upstreams": [ | |
{ | |
"dial": "172.18.0.3:9117" | |
} | |
], | |
"headers": { | |
"request": { | |
"set": { | |
"X-Real-Ip": [ | |
"{http.request.remote.host}" | |
] | |
} | |
} | |
} | |
} | |
] | |
}, | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"0.0.0.0/0" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "static_response", | |
"body": " " | |
} | |
] | |
} | |
] | |
} | |
], | |
"terminal": true | |
}, | |
{ | |
"match": [ | |
{ | |
"host": [ | |
"dash.example.eu" | |
] | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "subroute", | |
"routes": [ | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"192.168.10.0/24", | |
"192.168.20.0/24", | |
"172.18.0.0/16" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "reverse_proxy", | |
"upstreams": [ | |
{ | |
"dial": "172.18.0.23:8080" | |
} | |
], | |
"headers": { | |
"request": { | |
"set": { | |
"X-Real-Ip": [ | |
"{http.request.remote.host}" | |
] | |
} | |
} | |
} | |
} | |
] | |
}, | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"0.0.0.0/0" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "static_response", | |
"body": " " | |
} | |
] | |
} | |
] | |
} | |
], | |
"terminal": true | |
}, | |
{ | |
"match": [ | |
{ | |
"host": [ | |
"radarr.example.eu" | |
] | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "subroute", | |
"routes": [ | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"192.168.10.0/24", | |
"192.168.20.0/24", | |
"172.18.0.0/16" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "reverse_proxy", | |
"upstreams": [ | |
{ | |
"dial": "172.18.0.13:7878" | |
} | |
], | |
"headers": { | |
"request": { | |
"set": { | |
"X-Real-Ip": [ | |
"{http.request.remote.host}" | |
] | |
} | |
} | |
} | |
} | |
] | |
}, | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"0.0.0.0/0" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "static_response", | |
"body": " " | |
} | |
] | |
} | |
] | |
} | |
], | |
"terminal": true | |
}, | |
{ | |
"match": [ | |
{ | |
"host": [ | |
"hass.example.eu" | |
] | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "subroute", | |
"routes": [ | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"0.0.0.0/0" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "reverse_proxy", | |
"upstreams": [ | |
{ | |
"dial": "172.18.0.20:8123" | |
} | |
], | |
"headers": { | |
"request": { | |
"set": { | |
"X-Real-Ip": [ | |
"{http.request.remote.host}" | |
] | |
} | |
} | |
} | |
} | |
] | |
} | |
] | |
} | |
], | |
"terminal": true | |
}, | |
{ | |
"match": [ | |
{ | |
"host": [ | |
"bazarr.example.eu" | |
] | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "subroute", | |
"routes": [ | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"192.168.10.0/24", | |
"192.168.20.0/24", | |
"172.18.0.0/16" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "reverse_proxy", | |
"upstreams": [ | |
{ | |
"dial": "172.18.0.17:6767" | |
} | |
], | |
"headers": { | |
"request": { | |
"set": { | |
"X-Real-Ip": [ | |
"{http.request.remote.host}" | |
] | |
} | |
} | |
} | |
} | |
] | |
}, | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"0.0.0.0/0" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "static_response", | |
"body": " " | |
} | |
] | |
} | |
] | |
} | |
], | |
"terminal": true | |
}, | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"0.0.0.0/0" | |
] | |
}, | |
"path": [ | |
"/notifications/hub/negotiate" | |
] | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "reverse_proxy", | |
"upstreams": [ | |
{ | |
"dial": "172.18.0.8:8080" | |
} | |
] | |
} | |
] | |
}, | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"0.0.0.0/0" | |
] | |
}, | |
"path": [ | |
"/notifications/hub" | |
] | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "reverse_proxy", | |
"upstreams": [ | |
{ | |
"dial": "172.18.0.8:3012" | |
} | |
] | |
} | |
] | |
}, | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"0.0.0.0/0" | |
] | |
}, | |
"path": [ | |
"*" | |
] | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "reverse_proxy", | |
"upstreams": [ | |
{ | |
"dial": "172.18.0.8:80" | |
} | |
] | |
} | |
] | |
}, | |
{ | |
"match": [ | |
{ | |
"host": [ | |
"heimdall.example.eu" | |
] | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "subroute", | |
"routes": [ | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"192.168.10.0/24", | |
"192.168.20.0/24", | |
"172.18.0.0/16" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "reverse_proxy", | |
"upstreams": [ | |
{ | |
"dial": "172.18.0.21:80" | |
} | |
], | |
"headers": { | |
"request": { | |
"set": { | |
"X-Real-Ip": [ | |
"{http.request.remote.host}" | |
] | |
} | |
} | |
} | |
} | |
] | |
}, | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"0.0.0.0/0" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "static_response", | |
"body": " " | |
} | |
] | |
} | |
] | |
} | |
], | |
"terminal": true | |
}, | |
{ | |
"match": [ | |
{ | |
"host": [ | |
"nextcloud.example.eu" | |
] | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "subroute", | |
"routes": [ | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"0.0.0.0/0" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "reverse_proxy", | |
"upstreams": [ | |
{ | |
"dial": "172.18.0.7:80" | |
} | |
], | |
"headers": { | |
"request": { | |
"set": { | |
"X-Real-Ip": [ | |
"{http.request.remote.host}" | |
] | |
} | |
} | |
} | |
} | |
] | |
} | |
] | |
} | |
], | |
"terminal": true | |
}, | |
{ | |
"match": [ | |
{ | |
"host": [ | |
"sonarr.example.eu" | |
] | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "subroute", | |
"routes": [ | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"192.168.10.0/24", | |
"192.168.20.0/24", | |
"172.18.0.0/16" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "reverse_proxy", | |
"upstreams": [ | |
{ | |
"dial": "172.18.0.15:8989" | |
} | |
], | |
"headers": { | |
"request": { | |
"set": { | |
"X-Real-Ip": [ | |
"{http.request.remote.host}" | |
] | |
} | |
} | |
} | |
} | |
] | |
}, | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"0.0.0.0/0" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "static_response", | |
"body": " " | |
} | |
] | |
} | |
] | |
} | |
], | |
"terminal": true | |
}, | |
{ | |
"match": [ | |
{ | |
"host": [ | |
"emby.example.eu" | |
] | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "subroute", | |
"routes": [ | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"192.168.10.0/24", | |
"192.168.20.0/24", | |
"172.18.0.0/16" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "reverse_proxy", | |
"upstreams": [ | |
{ | |
"dial": "172.18.0.12:8096" | |
} | |
], | |
"headers": { | |
"request": { | |
"set": { | |
"X-Real-Ip": [ | |
"{http.request.remote.host}" | |
] | |
} | |
} | |
} | |
} | |
] | |
}, | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"0.0.0.0/0" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "static_response", | |
"body": " " | |
} | |
] | |
} | |
] | |
} | |
], | |
"terminal": true | |
}, | |
{ | |
"match": [ | |
{ | |
"host": [ | |
"portainer.example.eu" | |
] | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "subroute", | |
"routes": [ | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"192.168.10.0/24", | |
"192.168.20.0/24", | |
"172.18.0.0/16" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "reverse_proxy", | |
"upstreams": [ | |
{ | |
"dial": "172.18.0.4:9000" | |
} | |
], | |
"headers": { | |
"request": { | |
"set": { | |
"X-Real-Ip": [ | |
"{http.request.remote.host}" | |
] | |
} | |
} | |
} | |
} | |
] | |
}, | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"0.0.0.0/0" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "static_response", | |
"body": " " | |
} | |
] | |
} | |
] | |
} | |
], | |
"terminal": true | |
}, | |
{ | |
"match": [ | |
{ | |
"host": [ | |
"kibana.example.eu" | |
] | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "subroute", | |
"routes": [ | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"192.168.10.0/24", | |
"192.168.20.0/24", | |
"172.18.0.0/16" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "reverse_proxy", | |
"upstreams": [ | |
{ | |
"dial": "172.18.0.27:5601" | |
} | |
], | |
"headers": { | |
"request": { | |
"set": { | |
"X-Real-Ip": [ | |
"{http.request.remote.host}" | |
] | |
} | |
} | |
} | |
} | |
] | |
}, | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"0.0.0.0/0" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "static_response", | |
"body": " " | |
} | |
] | |
} | |
] | |
} | |
], | |
"terminal": true | |
}, | |
{ | |
"match": [ | |
{ | |
"host": [ | |
"elasticsearch.example.eu" | |
] | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "subroute", | |
"routes": [ | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"192.168.10.0/24", | |
"192.168.20.0/24", | |
"172.18.0.0/16" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "reverse_proxy", | |
"upstreams": [ | |
{ | |
"dial": "172.18.0.18:9200" | |
} | |
], | |
"headers": { | |
"request": { | |
"set": { | |
"X-Real-Ip": [ | |
"{http.request.remote.host}" | |
] | |
} | |
} | |
} | |
} | |
] | |
}, | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"0.0.0.0/0" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "static_response", | |
"body": " " | |
} | |
] | |
} | |
] | |
} | |
], | |
"terminal": true | |
}, | |
{ | |
"match": [ | |
{ | |
"host": [ | |
"wg-gen-web.example.eu" | |
] | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "subroute", | |
"routes": [ | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"192.168.10.0/24", | |
"192.168.20.0/24", | |
"172.18.0.0/16" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "reverse_proxy", | |
"upstreams": [ | |
{ | |
"dial": "172.18.0.5:8080" | |
} | |
], | |
"headers": { | |
"request": { | |
"set": { | |
"X-Real-Ip": [ | |
"{http.request.remote.host}" | |
] | |
} | |
} | |
} | |
} | |
] | |
}, | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"0.0.0.0/0" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "static_response", | |
"body": " " | |
} | |
] | |
} | |
] | |
} | |
], | |
"terminal": true | |
}, | |
{ | |
"match": [ | |
{ | |
"host": [ | |
"deluge.example.eu" | |
] | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "subroute", | |
"routes": [ | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"192.168.10.0/24", | |
"192.168.20.0/24", | |
"172.18.0.0/16" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "reverse_proxy", | |
"upstreams": [ | |
{ | |
"dial": "172.18.0.25:8112" | |
} | |
], | |
"headers": { | |
"request": { | |
"set": { | |
"X-Real-Ip": [ | |
"{http.request.remote.host}" | |
] | |
} | |
} | |
} | |
} | |
] | |
}, | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"0.0.0.0/0" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "static_response", | |
"body": " " | |
} | |
] | |
} | |
] | |
} | |
], | |
"terminal": true | |
}, | |
{ | |
"match": [ | |
{ | |
"host": [ | |
"gotify.example.eu" | |
] | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "subroute", | |
"routes": [ | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"192.168.10.0/24", | |
"192.168.20.0/24", | |
"172.18.0.0/16" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "reverse_proxy", | |
"upstreams": [ | |
{ | |
"dial": "172.18.0.9:80" | |
} | |
], | |
"headers": { | |
"request": { | |
"set": { | |
"X-Real-Ip": [ | |
"{http.request.remote.host}" | |
] | |
} | |
} | |
} | |
} | |
] | |
}, | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"0.0.0.0/0" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "static_response", | |
"body": " " | |
} | |
] | |
} | |
] | |
} | |
], | |
"terminal": true | |
}, | |
{ | |
"match": [ | |
{ | |
"host": [ | |
"appdaemon.example.eu" | |
] | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "subroute", | |
"routes": [ | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"192.168.10.0/24", | |
"192.168.20.0/24", | |
"172.18.0.0/16" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "reverse_proxy", | |
"upstreams": [ | |
{ | |
"dial": "172.18.0.26:5050" | |
} | |
], | |
"headers": { | |
"request": { | |
"set": { | |
"X-Real-Ip": [ | |
"{http.request.remote.host}" | |
] | |
} | |
} | |
} | |
} | |
] | |
}, | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"0.0.0.0/0" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "static_response", | |
"body": " " | |
} | |
] | |
} | |
] | |
} | |
], | |
"terminal": true | |
}, | |
{ | |
"match": [ | |
{ | |
"host": [ | |
"jellyfin.example.eu" | |
] | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "subroute", | |
"routes": [ | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"192.168.10.0/24", | |
"192.168.20.0/24", | |
"172.18.0.0/16" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "reverse_proxy", | |
"upstreams": [ | |
{ | |
"dial": "172.18.0.11:8096" | |
} | |
], | |
"headers": { | |
"request": { | |
"set": { | |
"X-Real-Ip": [ | |
"{http.request.remote.host}" | |
] | |
} | |
} | |
} | |
} | |
] | |
}, | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"0.0.0.0/0" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "static_response", | |
"body": " " | |
} | |
] | |
} | |
] | |
} | |
], | |
"terminal": true | |
}, | |
{ | |
"match": [ | |
{ | |
"host": [ | |
"registry.example.eu" | |
] | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "subroute", | |
"routes": [ | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"192.168.10.0/24", | |
"192.168.20.0/24", | |
"172.18.0.0/16" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "reverse_proxy", | |
"upstreams": [ | |
{ | |
"dial": "172.18.0.16:5000" | |
} | |
], | |
"headers": { | |
"request": { | |
"set": { | |
"X-Real-Ip": [ | |
"{http.request.remote.host}" | |
] | |
} | |
} | |
} | |
} | |
] | |
}, | |
{ | |
"match": [ | |
{ | |
"remote_ip": { | |
"ranges": [ | |
"0.0.0.0/0" | |
] | |
} | |
} | |
], | |
"handle": [ | |
{ | |
"handler": "static_response", | |
"body": " " | |
} | |
] | |
} | |
] | |
} | |
], | |
"terminal": true | |
} | |
], | |
"automatic_https": { | |
"skip": [ | |
"dash.example.eu" | |
] | |
} | |
} | |
} | |
}, | |
"tls": { | |
"automation": { | |
"policies": [ | |
{ | |
"issuer": { | |
"email": "[email protected]", | |
"module": "acme" | |
} | |
} | |
] | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment