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