From f04aff5ff8f037dd9711912f22f15f6fdf8255ef Mon Sep 17 00:00:00 2001 From: Joey Hafner Date: Tue, 28 May 2024 13:15:48 -0700 Subject: [PATCH] Update all zones to update root Also CNAME'd wildcard subdomains to root --- homelab/fighter/config/ddns/README.md | 6 +++++- homelab/fighter/config/ddns/ddclient/ddclient.template | 4 ++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/homelab/fighter/config/ddns/README.md b/homelab/fighter/config/ddns/README.md index f199b0a8..bc972be9 100644 --- a/homelab/fighter/config/ddns/README.md +++ b/homelab/fighter/config/ddns/README.md @@ -10,9 +10,13 @@ cd ~/homelab/fighter/config/ddns/ && \ export $(cat ddclient_secrets.env | xargs) && \ envsubst < ./ddclient/ddclient.template > ./ddclient/ddclient.conf && \ unset $(grep -v '^#' ddclient_secrets.env | sed -E 's/(.*)=.*/\1/' | xargs) && \ -docker-compose up -d --force-recreate +docker compose up -d --force-recreate && docker compose logs -f ``` +If you want to check the differences between the previous and new config before updating, run: + +`export $(cat ddclient_secrets.env | xargs) && envsubst < ./ddclient/ddclient.template | sdiff ddclient/ddclient.conf -` + First we export the variables in the `ddclient_secrets.env` file (which are all simple key-value pairs). Then, the [`envsubst`](https://www.baeldung.com/linux/envsubst-command) command looks for env variable references (like `$USER_Jafner_chat`) in the `ddclient.template` file (via stdin) and replaces them with the values from the current shell. We remove the secrets from the shell to preserve security. Finally, we recreate the container to apply the new settings. [StackOverflow - Set environment variables from file of ke/value pairs](https://stackoverflow.com/questions/19331497/set-environment-variables-from-file-of-key-value-pairs) diff --git a/homelab/fighter/config/ddns/ddclient/ddclient.template b/homelab/fighter/config/ddns/ddclient/ddclient.template index b80cf766..074d2f6e 100644 --- a/homelab/fighter/config/ddns/ddclient/ddclient.template +++ b/homelab/fighter/config/ddns/ddclient/ddclient.template @@ -16,11 +16,11 @@ protocol=cloudflare, \ zone=jafner.net, \ ttl=1, \ password='$TOKEN_Jafner_net', \ -jafner.net, *.jafner.net +jafner.net # jafner.chat protocol=cloudflare,\ zone=jafner.chat,\ ttl=1,\ password='$TOKEN_Jafner_chat',\ -jafner.chat, *.jafner.chat +jafner.chat