diff --git a/config/dynamic/router.yml b/config/dynamic/router.yml new file mode 100644 index 0000000..d179e9e --- /dev/null +++ b/config/dynamic/router.yml @@ -0,0 +1,108 @@ +http: + middlewares: + dach-geo-block: + plugin: + geoblock: + allowLocalRequests: false + allowUnknownCountries: false + api: https://get.geojs.io/v1/ip/country/{ip} + apiTimeoutMs: 150 + cacheSize: 15 + countries: + - CH + - AT + - DE + forceMonthlyUpdate: true + logAllowedRequests: false + logApiRequests: true + logLocalRequests: false + silentStartUp: false + unknownCountryApiResponse: nil + + routers: + jf-router: + rule: "Host(`jf.example.com`)" + middlewares: + - dach-geo-block + service: jf-service + entryPoints: + - web + - websecure + tls: + certResolver: letsencrypt + ha-router: + rule: "Host(`ha.example.com`)" + middlewares: + - dach-geo-block + service: ha-service + entryPoints: + - web + - websecure + tls: + certResolver: letsencrypt + mealie-router: + rule: "Host(`mealie.example.com`)" + middlewares: + - dach-geo-block + service: mealie-service + entryPoints: + - web + - websecure + tls: + certResolver: letsencrypt + nextcloud-router: + rule: "Host(`nextcloud.example.com`)" + middlewares: + - dach-geo-block + service: nextcloud-service + entryPoints: + - web + - websecure + tls: + certResolver: letsencrypt + + services: + jf-service: + failover: + healthCheck: {} + service: jf-first-service + fallback: jf-second-service + jf-first-service: + loadBalancer: + healthCheck: + path: http://192.168.1.2:8096/health + interval: 10s + timeout: 3s + servers: + - url: "http://192.168.1.2:8096" + jf-second-service: + loadBalancer: + healthCheck: + path: http://192.168.1.3:8096/health + interval: 10s + timeout: 3s + servers: + - url: "http://192.168.1.3:8096" + ha-service: + loadBalancer: + sticky: + cookie: + name: homeassistant + secure: true + passHostHeader: true + servers: + - url: "http://192.168.1.4:8123" + mealie-service: + loadBalancer: + passHostHeader: true + servers: + - url: "http://192.168.1.5:9925" + nextcloud-service: + loadBalancer: + sticky: + cookie: + name: nextcloud + secure: true + passHostHeader: true + servers: + - url: "http://192.168.1.6:8100"