From 01351c20dc7fc2dc5eaa364cefa58de4c7c72519 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 --- fighter/config/ddns/README.md | 6 +++++- fighter/config/ddns/ddclient/ddclient.template | 4 ++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/fighter/config/ddns/README.md b/fighter/config/ddns/README.md index f199b0a..bc972be 100644 --- a/fighter/config/ddns/README.md +++ b/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/fighter/config/ddns/ddclient/ddclient.template b/fighter/config/ddns/ddclient/ddclient.template index b80cf76..074d2f6 100644 --- a/fighter/config/ddns/ddclient/ddclient.template +++ b/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