secrets in domeneshop-updater
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
{ config, pkgs, lib, inputs, ... }:
|
||||
let
|
||||
cfg = config.services.domeneshop-updater;
|
||||
in
|
||||
@@ -12,7 +12,18 @@ in
|
||||
};
|
||||
};
|
||||
|
||||
config = {
|
||||
config = lib.mkIf (cfg.targets != []) {
|
||||
|
||||
users.users.domeneshop.isSystemUser = true;
|
||||
users.users.domeneshop.group = "domeneshop";
|
||||
users.groups.domeneshop = {};
|
||||
|
||||
sops.secrets."domeneshop/token".sopsFile = "${inputs.self}/secrets/dns.yaml";
|
||||
sops.secrets."domeneshop/token".owner = "domeneshop";
|
||||
sops.secrets."domeneshop/token".group = "domeneshop";
|
||||
sops.secrets."domeneshop/secret".sopsFile = "${inputs.self}/secrets/dns.yaml";
|
||||
sops.secrets."domeneshop/secret".owner = "domeneshop";
|
||||
sops.secrets."domeneshop/secret".group = "domeneshop";
|
||||
|
||||
systemd.services.domeneshop-updater = {
|
||||
description = "domene.shop dyndns domain updater";
|
||||
@@ -24,14 +35,18 @@ in
|
||||
name = "domeneshop-dyndns-updater.sh";
|
||||
runtimeInputs = with pkgs; [ curl yq ];
|
||||
text = ''
|
||||
test -s /var/lib/secrets/domeneshop.toml || {
|
||||
>&2 echo "ERROR: /var/lib/secrets/domeneshop.toml not found!"
|
||||
test -s /run/secrets/domeneshop/token || {
|
||||
>&2 echo "ERROR: /run/secrets/domeneshop/token not found!"
|
||||
exit 1
|
||||
}
|
||||
DOMENESHOP_TOKEN="$( tomlq </var/lib/secrets/domeneshop.toml .secrets.DOMENESHOP_TOKEN --raw-output)"
|
||||
DOMENESHOP_SECRET="$(tomlq </var/lib/secrets/domeneshop.toml .secrets.DOMENESHOP_SECRET --raw-output)"
|
||||
test -s /run/secrets/domeneshop/secret || {
|
||||
>&2 echo "ERROR: /run/secrets/domeneshop/secret not found!"
|
||||
exit 1
|
||||
}
|
||||
DOMENESHOP_TOKEN="$( cat /run/secrets/domeneshop/token)"
|
||||
DOMENESHOP_SECRET="$(cat /run/secrets/domeneshop/secret)"
|
||||
${lib.concatMapStringsSep "\n" (target: ''
|
||||
curl https://"$DOMENESHOP_TOKEN":"$DOMENESHOP_SECRET"@api.domeneshop.no/v0/dyndns/update?hostname=${target}
|
||||
curl https://"$DOMENESHOP_TOKEN":"$DOMENESHOP_SECRET"@api.domeneshop.no/v0/dyndns/update?hostname="${target}"
|
||||
'') cfg.targets}
|
||||
'';
|
||||
};
|
||||
@@ -52,9 +67,6 @@ in
|
||||
Unit = "domeneshop-updater.service";
|
||||
};
|
||||
};
|
||||
users.users.domeneshop.isSystemUser = true;
|
||||
users.users.domeneshop.group = "domeneshop";
|
||||
users.groups.domeneshop = {};
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user