mirror of
https://github.com/nmasur/dotfiles
synced 2025-03-15 03:27:06 +00:00
move encrypted secrets near relevant files
This commit is contained in:
parent
f59ac536a2
commit
37d1d7724a
@ -1,5 +0,0 @@
|
|||||||
# Disks
|
|
||||||
|
|
||||||
These are my [disko](https://github.com/nix-community/disko) configurations,
|
|
||||||
which allow me to save desired disk formatting layouts as a declarative file so
|
|
||||||
I don't have to remember how to format my disks later on.
|
|
@ -52,7 +52,7 @@ rec {
|
|||||||
nmasur.presets.services.cloudflared = {
|
nmasur.presets.services.cloudflared = {
|
||||||
tunnel = {
|
tunnel = {
|
||||||
id = "bd250ee1-ed2e-42d2-b627-039f1eb5a4d2";
|
id = "bd250ee1-ed2e-42d2-b627-039f1eb5a4d2";
|
||||||
credentialsFile = ../../../private/cloudflared-flame.age;
|
credentialsFile = ./cloudflared-flame.age;
|
||||||
ca = "ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBK/6oyVqjFGX3Uvrc3VS8J9sphxzAnRzKC85xgkHfYgR3TK6qBGXzHrknEj21xeZrr3G2y1UsGzphWJd9ZfIcdA= open-ssh-ca@cloudflareaccess.org";
|
ca = "ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBK/6oyVqjFGX3Uvrc3VS8J9sphxzAnRzKC85xgkHfYgR3TK6qBGXzHrknEj21xeZrr3G2y1UsGzphWJd9ZfIcdA= open-ssh-ca@cloudflareaccess.org";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -34,7 +34,7 @@ in
|
|||||||
];
|
];
|
||||||
x86_64-linux-hosts = lib.pipe (lib.filesystem.listFilesRecursive ./x86_64-linux) [
|
x86_64-linux-hosts = lib.pipe (lib.filesystem.listFilesRecursive ./x86_64-linux) [
|
||||||
# Get only files ending in default.nix
|
# Get only files ending in default.nix
|
||||||
(builtins.filter (name: lib.hasSuffix ".nix" name))
|
(builtins.filter (name: lib.hasSuffix "default.nix" name))
|
||||||
# Import each host function
|
# Import each host function
|
||||||
(map (file: {
|
(map (file: {
|
||||||
name = lib.removeSuffix ".nix" (builtins.baseNameOf file);
|
name = lib.removeSuffix ".nix" (builtins.baseNameOf file);
|
||||||
|
@ -85,7 +85,7 @@ rec {
|
|||||||
nmasur.presets.services.cloudflared = {
|
nmasur.presets.services.cloudflared = {
|
||||||
tunnel = {
|
tunnel = {
|
||||||
id = "646754ac-2149-4a58-b51a-e1d0a1f3ade2";
|
id = "646754ac-2149-4a58-b51a-e1d0a1f3ade2";
|
||||||
credentialsFile = ../../private/cloudflared-swan.age;
|
credentialsFile = ./cloudflared-swan.age;
|
||||||
ca = "ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBCHF/UMtJqPFrf6f6GRY0ZFnkCW7b6sYgUTjTtNfRj1RdmNic1NoJZql7y6BrqQinZvy7nsr1UFDNWoHn6ah3tg= open-ssh-ca@cloudflareaccess.org";
|
ca = "ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBCHF/UMtJqPFrf6f6GRY0ZFnkCW7b6sYgUTjTtNfRj1RdmNic1NoJZql7y6BrqQinZvy7nsr1UFDNWoHn6ah3tg= open-ssh-ca@cloudflareaccess.org";
|
||||||
};
|
};
|
||||||
};
|
};
|
@ -98,7 +98,7 @@ rec {
|
|||||||
nmasur.presets.services.cloudflared = {
|
nmasur.presets.services.cloudflared = {
|
||||||
tunnel = {
|
tunnel = {
|
||||||
id = "ac133a82-31fb-480c-942a-cdbcd4c58173";
|
id = "ac133a82-31fb-480c-942a-cdbcd4c58173";
|
||||||
credentialsFile = ../../../private/cloudflared-tempest.age;
|
credentialsFile = ./cloudflared-tempest.age;
|
||||||
ca = "ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBPY6C0HmdFCaxYtJxFr3qV4/1X4Q8KrYQ1hlme3u1hJXK+xW+lc9Y9glWHrhiTKilB7carYTB80US0O47gI5yU4= open-ssh-ca@cloudflareaccess.org";
|
ca = "ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBPY6C0HmdFCaxYtJxFr3qV4/1X4Q8KrYQ1hlme3u1hJXK+xW+lc9Y9glWHrhiTKilB7carYTB80US0O47gI5yU4= open-ssh-ca@cloudflareaccess.org";
|
||||||
};
|
};
|
||||||
};
|
};
|
@ -1,18 +0,0 @@
|
|||||||
# Return a list of all nix-darwin hosts
|
|
||||||
|
|
||||||
{ lib, ... }:
|
|
||||||
|
|
||||||
lib.pipe (lib.filesystem.listFilesRecursive ./.) [
|
|
||||||
# Get only files ending in default.nix
|
|
||||||
(builtins.filter (name: lib.hasSuffix "default.nix" name))
|
|
||||||
# Remove this file
|
|
||||||
(builtins.filter (name: name != ./default.nix))
|
|
||||||
# Import each host function
|
|
||||||
map
|
|
||||||
(file: {
|
|
||||||
name = builtins.baseNameOf (builtins.dirOf file);
|
|
||||||
value = import file;
|
|
||||||
})
|
|
||||||
# Convert to an attrset of hostname -> host function
|
|
||||||
(builtins.listToAttrs)
|
|
||||||
]
|
|
@ -1,22 +0,0 @@
|
|||||||
# Return a list of all NixOS hosts
|
|
||||||
|
|
||||||
{ nixpkgs, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
inherit (nixpkgs) lib;
|
|
||||||
in
|
|
||||||
|
|
||||||
lib.pipe (lib.filesystem.listFilesRecursive ./.) [
|
|
||||||
# Get only files ending in default.nix
|
|
||||||
(builtins.filter (name: lib.hasSuffix "default.nix" name))
|
|
||||||
# Remove this file
|
|
||||||
(builtins.filter (name: name != ./default.nix))
|
|
||||||
# Import each host function
|
|
||||||
map
|
|
||||||
(file: {
|
|
||||||
name = builtins.baseNameOf (builtins.dirOf file);
|
|
||||||
value = import file;
|
|
||||||
})
|
|
||||||
# Convert to an attrset of hostname -> host function
|
|
||||||
(builtins.listToAttrs)
|
|
||||||
]
|
|
@ -1,22 +0,0 @@
|
|||||||
# Return a list of all NixOS hosts
|
|
||||||
|
|
||||||
{ nixpkgs, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
inherit (nixpkgs) lib;
|
|
||||||
in
|
|
||||||
|
|
||||||
lib.pipe (lib.filesystem.listFilesRecursive ./.) [
|
|
||||||
# Get only files ending in default.nix
|
|
||||||
(builtins.filter (name: lib.hasSuffix "default.nix" name))
|
|
||||||
# Remove this file
|
|
||||||
(builtins.filter (name: name != ./default.nix))
|
|
||||||
# Import each host function
|
|
||||||
map
|
|
||||||
(file: {
|
|
||||||
name = builtins.baseNameOf (builtins.dirOf file);
|
|
||||||
value = import file;
|
|
||||||
})
|
|
||||||
# Convert to an attrset of hostname -> host function
|
|
||||||
(builtins.listToAttrs)
|
|
||||||
]
|
|
@ -112,7 +112,7 @@ in
|
|||||||
notmuch.enable = true;
|
notmuch.enable = true;
|
||||||
|
|
||||||
# Used to login and send and receive emails
|
# Used to login and send and receive emails
|
||||||
passwordCommand = "${lib.getExe pkgs.age} --decrypt --identity ~/.ssh/id_ed25519 ${pkgs.writeText "mailpass.age" (builtins.readFile ../../../../../../private/mailpass.age)}";
|
passwordCommand = "${lib.getExe pkgs.age} --decrypt --identity ~/.ssh/id_ed25519 ${pkgs.writeText "mailpass.age" (builtins.readFile ./mailpass.age)}";
|
||||||
|
|
||||||
smtp = {
|
smtp = {
|
||||||
host = cfg.smtpHost;
|
host = cfg.smtpHost;
|
@ -32,7 +32,7 @@ in
|
|||||||
passwordFile = lib.mkOption {
|
passwordFile = lib.mkOption {
|
||||||
type = lib.types.path;
|
type = lib.types.path;
|
||||||
description = "Password file for SMTP";
|
description = "Password file for SMTP";
|
||||||
default = ../../../../../../private/mailpass-system.age;
|
default = ./mailpass-system.age;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
@ -250,27 +250,27 @@ in
|
|||||||
|
|
||||||
# Secrets for Prometheus exporters
|
# Secrets for Prometheus exporters
|
||||||
secrets.radarrApiKey = {
|
secrets.radarrApiKey = {
|
||||||
source = ../../../private/radarr-api-key.age;
|
source = ./radarr-api-key.age;
|
||||||
dest = "/var/private/radarr-api";
|
dest = "/var/private/radarr-api";
|
||||||
prefix = "API_KEY=";
|
prefix = "API_KEY=";
|
||||||
};
|
};
|
||||||
secrets.readarrApiKey = {
|
secrets.readarrApiKey = {
|
||||||
source = ../../../private/radarr-api-key.age;
|
source = ./radarr-api-key.age;
|
||||||
dest = "/var/private/readarr-api";
|
dest = "/var/private/readarr-api";
|
||||||
prefix = "API_KEY=";
|
prefix = "API_KEY=";
|
||||||
};
|
};
|
||||||
secrets.sonarrApiKey = {
|
secrets.sonarrApiKey = {
|
||||||
source = ../../../private/sonarr-api-key.age;
|
source = ./sonarr-api-key.age;
|
||||||
dest = "/var/private/sonarr-api";
|
dest = "/var/private/sonarr-api";
|
||||||
prefix = "API_KEY=";
|
prefix = "API_KEY=";
|
||||||
};
|
};
|
||||||
secrets.prowlarrApiKey = {
|
secrets.prowlarrApiKey = {
|
||||||
source = ../../../private/prowlarr-api-key.age;
|
source = ./prowlarr-api-key.age;
|
||||||
dest = "/var/private/prowlarr-api";
|
dest = "/var/private/prowlarr-api";
|
||||||
prefix = "API_KEY=";
|
prefix = "API_KEY=";
|
||||||
};
|
};
|
||||||
secrets.sabnzbdApiKey = {
|
secrets.sabnzbdApiKey = {
|
||||||
source = ../../../private/sabnzbd-api-key.age;
|
source = ./sabnzbd-api-key.age;
|
||||||
dest = "/var/private/sabnzbd-api";
|
dest = "/var/private/sabnzbd-api";
|
||||||
prefix = "API_KEY=";
|
prefix = "API_KEY=";
|
||||||
};
|
};
|
@ -98,7 +98,7 @@ in
|
|||||||
|
|
||||||
# Private key is used for LetsEncrypt
|
# Private key is used for LetsEncrypt
|
||||||
secrets.letsencrypt-key = {
|
secrets.letsencrypt-key = {
|
||||||
source = ../../../../../../private/letsencrypt-key.age;
|
source = ./letsencrypt-key.age;
|
||||||
dest = "${config.secretsDirectory}/letsencrypt-key";
|
dest = "${config.secretsDirectory}/letsencrypt-key";
|
||||||
owner = "caddy";
|
owner = "caddy";
|
||||||
group = "caddy";
|
group = "caddy";
|
||||||
@ -106,7 +106,7 @@ in
|
|||||||
|
|
||||||
# API key must have access to modify Cloudflare DNS records
|
# API key must have access to modify Cloudflare DNS records
|
||||||
secrets.cloudflare-api = {
|
secrets.cloudflare-api = {
|
||||||
source = ../../../../../../private/cloudflare-api.age;
|
source = ./cloudflare-api.age;
|
||||||
dest = "${config.secretsDirectory}/cloudflare-api";
|
dest = "${config.secretsDirectory}/cloudflare-api";
|
||||||
owner = "caddy";
|
owner = "caddy";
|
||||||
group = "caddy";
|
group = "caddy";
|
@ -52,7 +52,7 @@ in
|
|||||||
|
|
||||||
# API key needed to connect to Gitea
|
# API key needed to connect to Gitea
|
||||||
secrets.giteaRunnerToken = {
|
secrets.giteaRunnerToken = {
|
||||||
source = ../../../private/gitea-runner-token.age; # TOKEN=xyz
|
source = ./gitea-runner-token.age; # TOKEN=xyz
|
||||||
dest = "${config.secretsDirectory}/gitea-runner-token";
|
dest = "${config.secretsDirectory}/gitea-runner-token";
|
||||||
};
|
};
|
||||||
systemd.services.giteaRunnerToken-secret = {
|
systemd.services.giteaRunnerToken-secret = {
|
@ -17,7 +17,7 @@ in
|
|||||||
|
|
||||||
# Allow Grafana to connect to email service
|
# Allow Grafana to connect to email service
|
||||||
secrets.mailpass-grafana = {
|
secrets.mailpass-grafana = {
|
||||||
source = ../../../../../../private/mailpass-grafana.age;
|
source = ./mailpass-grafana.age;
|
||||||
dest = "${config.secretsDirectory}/mailpass-grafana";
|
dest = "${config.secretsDirectory}/mailpass-grafana";
|
||||||
owner = "grafana";
|
owner = "grafana";
|
||||||
group = "grafana";
|
group = "grafana";
|
@ -33,7 +33,7 @@ in
|
|||||||
|
|
||||||
# Create credentials file for InfluxDB admin
|
# Create credentials file for InfluxDB admin
|
||||||
secrets.influxdb2Password = lib.mkIf config.services.influxdb2.enable {
|
secrets.influxdb2Password = lib.mkIf config.services.influxdb2.enable {
|
||||||
source = ../../../../../../private/influxdb2-password.age;
|
source = ./influxdb2-password.age;
|
||||||
dest = "${config.secretsDirectory}/influxdb2-password";
|
dest = "${config.secretsDirectory}/influxdb2-password";
|
||||||
owner = "influxdb2";
|
owner = "influxdb2";
|
||||||
group = "influxdb2";
|
group = "influxdb2";
|
||||||
@ -44,7 +44,7 @@ in
|
|||||||
before = [ "influxdb2.service" ];
|
before = [ "influxdb2.service" ];
|
||||||
};
|
};
|
||||||
secrets.influxdb2Token = lib.mkIf config.services.influxdb2.enable {
|
secrets.influxdb2Token = lib.mkIf config.services.influxdb2.enable {
|
||||||
source = ../../../../../../private/influxdb2-token.age;
|
source = ./influxdb2-token.age;
|
||||||
dest = "${config.secretsDirectory}/influxdb2-token";
|
dest = "${config.secretsDirectory}/influxdb2-token";
|
||||||
owner = "influxdb2";
|
owner = "influxdb2";
|
||||||
group = "influxdb2";
|
group = "influxdb2";
|
@ -29,7 +29,7 @@ in
|
|||||||
accessKeySecret = lib.mkOption {
|
accessKeySecret = lib.mkOption {
|
||||||
type = lib.types.nullOr lib.types.path;
|
type = lib.types.nullOr lib.types.path;
|
||||||
description = "S3 secret key path for Litestream backups";
|
description = "S3 secret key path for Litestream backups";
|
||||||
default = ../../../../../../private/backup.age;
|
default = ./backup.age;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
@ -38,7 +38,7 @@ in
|
|||||||
|
|
||||||
# Create credentials file for remote Prometheus push
|
# Create credentials file for remote Prometheus push
|
||||||
secrets.prometheus = {
|
secrets.prometheus = {
|
||||||
source = ../../../../../../private/prometheus.age;
|
source = ./prometheus.age;
|
||||||
dest = "${config.secretsDirectory}/prometheus";
|
dest = "${config.secretsDirectory}/prometheus";
|
||||||
owner = "prometheus";
|
owner = "prometheus";
|
||||||
group = "prometheus";
|
group = "prometheus";
|
@ -71,7 +71,7 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
secrets.vmauth = lib.mkIf config.services.victoriametrics.enable {
|
secrets.vmauth = lib.mkIf config.services.victoriametrics.enable {
|
||||||
source = ../../../../../../private/prometheus.age;
|
source = ./prometheus.age;
|
||||||
dest = "${config.secretsDirectory}/vmauth";
|
dest = "${config.secretsDirectory}/vmauth";
|
||||||
prefix = "PASSWORD=";
|
prefix = "PASSWORD=";
|
||||||
};
|
};
|
@ -47,7 +47,7 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
secrets.vmagent = {
|
secrets.vmagent = {
|
||||||
source = ../../../../../../private/prometheus.age;
|
source = ./prometheus.age;
|
||||||
dest = "${config.secretsDirectory}/vmagent";
|
dest = "${config.secretsDirectory}/vmagent";
|
||||||
};
|
};
|
||||||
systemd.services.vmagent-secret = lib.mkIf config.services.vmagent.enable {
|
systemd.services.vmagent-secret = lib.mkIf config.services.vmagent.enable {
|
@ -200,7 +200,7 @@ in
|
|||||||
|
|
||||||
# Create credentials file for nextcloud
|
# Create credentials file for nextcloud
|
||||||
secrets.nextcloud = {
|
secrets.nextcloud = {
|
||||||
source = ../../../private/nextcloud.age;
|
source = ./nextcloud.age;
|
||||||
dest = "${config.secretsDirectory}/nextcloud";
|
dest = "${config.secretsDirectory}/nextcloud";
|
||||||
owner = "nextcloud";
|
owner = "nextcloud";
|
||||||
group = "nextcloud";
|
group = "nextcloud";
|
@ -51,7 +51,7 @@ in
|
|||||||
services.cloudflare-dyndns.domains = [ hostnames.paperless ];
|
services.cloudflare-dyndns.domains = [ hostnames.paperless ];
|
||||||
|
|
||||||
secrets.paperless = {
|
secrets.paperless = {
|
||||||
source = ../../../../../../private/prometheus.age;
|
source = ./paperless.age;
|
||||||
dest = "${config.secretsDirectory}/paperless";
|
dest = "${config.secretsDirectory}/paperless";
|
||||||
owner = "paperless";
|
owner = "paperless";
|
||||||
group = "paperless";
|
group = "paperless";
|
@ -10,7 +10,7 @@ in
|
|||||||
resticPassword = lib.mkOption {
|
resticPassword = lib.mkOption {
|
||||||
type = lib.types.nullOr lib.types.path;
|
type = lib.types.nullOr lib.types.path;
|
||||||
description = "Password file path for Restic backups";
|
description = "Password file path for Restic backups";
|
||||||
default = ../../../../../../private/restic.age;
|
default = ./restic.age;
|
||||||
};
|
};
|
||||||
s3 = {
|
s3 = {
|
||||||
endpoint = lib.mkOption {
|
endpoint = lib.mkOption {
|
||||||
@ -26,7 +26,7 @@ in
|
|||||||
accessKeySecretPair = lib.mkOption {
|
accessKeySecretPair = lib.mkOption {
|
||||||
type = lib.types.nullOr lib.types.path;
|
type = lib.types.nullOr lib.types.path;
|
||||||
description = "Path to file containing S3 access and secret key for Restic backups";
|
description = "Path to file containing S3 access and secret key for Restic backups";
|
||||||
default = ../../../../../../private/s3-glacier.age;
|
default = ./s3-glacier.age;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
@ -43,7 +43,7 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
secrets.vaultwarden = {
|
secrets.vaultwarden = {
|
||||||
source = ../../../../../../private/vaultwarden.age;
|
source = ./vaultwarden.age;
|
||||||
dest = "${config.secretsDirectory}/vaultwarden";
|
dest = "${config.secretsDirectory}/vaultwarden";
|
||||||
owner = "vaultwarden";
|
owner = "vaultwarden";
|
||||||
group = "vaultwarden";
|
group = "vaultwarden";
|
@ -52,7 +52,7 @@ in
|
|||||||
|
|
||||||
# Create private key file for wireguard
|
# Create private key file for wireguard
|
||||||
secrets.wireguard = {
|
secrets.wireguard = {
|
||||||
source = ../../../private/wireguard.age;
|
source = ./wireguard.age;
|
||||||
dest = "${config.secretsDirectory}/wireguard";
|
dest = "${config.secretsDirectory}/wireguard";
|
||||||
};
|
};
|
||||||
};
|
};
|
Loading…
x
Reference in New Issue
Block a user