services: move all secrets into /media/secrets

moves all secrets into one centralised location in
/media/secrets and uses systemd-tmpfiles to set the
appropriate permissions for them
This commit is contained in:
Nico 2026-02-15 22:58:48 +11:00
parent 0dc8c93281
commit 93f912d548
Signed by: nico
SSH key fingerprint: SHA256:XuacYOrGqRxC3jVFjfLROn1CSvLz85Dec6N7O9Gwu/0
6 changed files with 35 additions and 5 deletions

View file

@ -30,7 +30,6 @@
dnsProvider = "cloudflare";
dnsResolver = "1.1.1.1:53";
dnsPropagationCheck = true;
environmentFile = /var/lib/caddy/secret;
};
services.caddy.virtualHosts."${config.homelab.authDomain}" = {

View file

@ -21,10 +21,14 @@
environmentFiles = [
# set variable PROVIDERS_KANIDM_CLIENT_SECRET here
/var/lib/tinyauth
/media/secrets/tinyauth
];
};
systemd.tmpfiles.rules = [
"f /media/secrets/tinyauth 0400 root root"
];
services.caddy.extraConfig = ''
(tinyauth_forwarder) {
forward_auth 127.0.0.1:3009 {

View file

@ -33,6 +33,8 @@
security.acme = {
acceptTerms = true;
defaults.email = "hello@astolfo.org";
defaults.environmentFile = /media/secrets/acme;
defaults.profile = "shortlived";
certs."${config.homelab.domain}" = {
group = config.services.caddy.group;
@ -42,8 +44,11 @@
dnsProvider = "cloudflare";
dnsResolver = "1.1.1.1:53";
dnsPropagationCheck = true;
environmentFile = /var/lib/caddy/secret;
};
};
systemd.tmpfiles.rules = [
"f /media/secrets/acme 0400 acme acme"
];
};
}

View file

@ -16,7 +16,16 @@
# put OAUTH_CLIENT_SECRET and OAUTH_CLIENT_ID in file
# https://docs.karakeep.app/configuration/environment-variables#authentication--signup
environmentFile = "/var/lib/karakeep/oidc";
environmentFile = "/media/secrets/karakeep";
};
systemd.tmpfiles.rules = [
"f /media/secrets/karakeep 0400 karakeep karakeep"
];
fileSystems."/var/lib/karakeep" = {
device = "/media/apps/karakeep";
options = [ "bind" ];
};
services.caddy.virtualHosts."karakeep.${config.homelab.domain}" = {

View file

@ -10,7 +10,7 @@
# OAUTH2_CLIENT_ID = "<client ID>";
# OAUTH2_CLIENT_SECRET = "<client secret>";
# https://pocket-id.org/docs/client-examples/miniflux/
adminCredentialsFile = /var/lib/miniflux/oidc;
adminCredentialsFile = /media/secrets/miniflux;
config = {
LISTEN_ADDR = "0.0.0.0:8021";
@ -44,6 +44,10 @@
};
};
systemd.tmpfiles.rules = [
"f /media/secrets/miniflux 0400 root root"
];
services.caddy.virtualHosts."rss.${config.homelab.domain}" = {
useACMEHost = config.homelab.domain;
extraConfig = ''

View file

@ -9,6 +9,15 @@
};
};
systemd.tmpfiles.rules = [
"d /media/secrets/uptime-kuma 0700 root root"
];
fileSystems."/var/lib/private/uptime-kuma" = {
device = "/media/apps/uptime-kuma";
options = [ "bind" ];
};
services.caddy.virtualHosts."status.${config.homelab.domain}" = {
useACMEHost = config.homelab.domain;
extraConfig = ''