From f253828e0e846dc90a682e7582f277d4f21564e2 Mon Sep 17 00:00:00 2001 From: Kyattsukuro Date: Wed, 14 Jan 2026 20:46:37 +0100 Subject: [PATCH] added duckdns redirect --- compose.yml | 1 + config/config.yml | 26 +++++++++++++++++++++----- traefik.yml | 10 ++++++++++ 3 files changed, 32 insertions(+), 5 deletions(-) diff --git a/compose.yml b/compose.yml index a4be285..5d7734c 100644 --- a/compose.yml +++ b/compose.yml @@ -14,6 +14,7 @@ services: - 7443:443 environment: - HETZNER_API_TOKEN=${HETZNER_API_TOKEN} + - DUCKDNS_TOKEN=${DUCKDNS_TOKEN} - AUTH_STRING=${AUTH_STRING} volumes: - /etc/localtime:/etc/localtime:ro diff --git a/config/config.yml b/config/config.yml index 2e0445d..5b42ef2 100644 --- a/config/config.yml +++ b/config/config.yml @@ -1,10 +1,13 @@ http: routers: traefik-secure: + service: noop@internal rule: Host(`urmel.de`) entryPoints: - https + - http tls: + certResolver: hetzner domains: - main: "arpa.urmel.de" sans: @@ -12,12 +15,25 @@ http: - main: "urmel.de" sans: - "*.urmel.de" - services: - unknown-page: - loadbalancer: - server: - - url: "somedomain.invalide" + forward-duckdns: + service: noop@internal + rule: HostRegexp(`^https://([^.]+)\.urmel\.duckdns\.org(/.*$|$)`) + middlewares: redirect-duckdns@file + tls: + certResolver: duckdns + domains: + - main: "urmel.duckdns.org" + sans: + - "*.urmel.duckdns.org" + entryPoints: + - https + - http + middlewares: traefik-auth: basicauth: users: '{{ env "AUTH_STRING" }}' + redirect-duckdns: + redirectRegex: + regex: "^http(s?)://([^.]+)\\.urmel\\.duckdns\\.org(/.*$|$)" + replacement: "http${1}://${2}.urmel.de${3}" diff --git a/traefik.yml b/traefik.yml index 859bbe8..ec7c63a 100644 --- a/traefik.yml +++ b/traefik.yml @@ -19,6 +19,8 @@ providers: exposedByDefault: false file: directory: /config +# https://doc.traefik.io/traefik/reference/install-configuration/tls/certificate-resolvers/acme/ +# https://go-acme.github.io/lego/dns/ certificatesResolvers: hetzner: acme: @@ -28,3 +30,11 @@ certificatesResolvers: provider: "hetzner" resolvers: - "hydrogen.ns.hetzner.com" + duckdns: + acme: + email: nikl.free44@gmail.com + storage: /certs/duckdns_acme.json + dnsChallenge: + provider: "duckdns" + resolvers: + - "8.8.4.4" \ No newline at end of file