Additive. The new unified nixos repo (projects/nixos/) uses a fresh git-crypt key so we can retire the two per-repo keys later. Deploying this change alone makes /run/agenix/git-crypt-key-nixos available on muffin; the nixos CI's git-crypt unlock step can then succeed once the new repo lands on Gitea.
213 lines
5.1 KiB
Nix
213 lines
5.1 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
inputs,
|
|
...
|
|
}:
|
|
{
|
|
imports = [
|
|
inputs.agenix.nixosModules.default
|
|
];
|
|
|
|
# Configure all agenix secrets
|
|
age.secrets = {
|
|
# ZFS encryption key
|
|
# path is set to /etc/zfs-key to match the ZFS dataset keylocation property
|
|
zfs-key = {
|
|
file = ../secrets/zfs-key.age;
|
|
mode = "0400";
|
|
owner = "root";
|
|
group = "root";
|
|
path = "/etc/zfs-key";
|
|
};
|
|
|
|
# Secureboot keys archive
|
|
secureboot-tar = {
|
|
file = ../secrets/secureboot.tar.age;
|
|
mode = "0400";
|
|
owner = "root";
|
|
group = "root";
|
|
};
|
|
|
|
# System passwords
|
|
hashedPass = {
|
|
file = ../secrets/hashedPass.age;
|
|
mode = "0400";
|
|
owner = "root";
|
|
group = "root";
|
|
};
|
|
|
|
# Service authentication
|
|
caddy_auth = {
|
|
file = ../secrets/caddy_auth.age;
|
|
mode = "0400";
|
|
owner = "caddy";
|
|
group = "caddy";
|
|
};
|
|
|
|
# Njalla API token (NJALLA_API_TOKEN=...) for Caddy DNS-01 challenge
|
|
njalla-api-token-env = {
|
|
file = ../secrets/njalla-api-token-env.age;
|
|
mode = "0400";
|
|
owner = "caddy";
|
|
group = "caddy";
|
|
};
|
|
|
|
# ddns-updater config.json with Njalla provider credentials
|
|
ddns-updater-config = {
|
|
file = ../secrets/ddns-updater-config.age;
|
|
mode = "0400";
|
|
owner = "ddns-updater";
|
|
group = "ddns-updater";
|
|
};
|
|
|
|
jellyfin-api-key = {
|
|
file = ../secrets/jellyfin-api-key.age;
|
|
mode = "0400";
|
|
owner = "root";
|
|
group = "root";
|
|
};
|
|
|
|
slskd_env = {
|
|
file = ../secrets/slskd_env.age;
|
|
mode = "0500";
|
|
owner = config.services.slskd.user;
|
|
group = config.services.slskd.group;
|
|
};
|
|
|
|
# Network configuration
|
|
wg0-conf = {
|
|
file = ../secrets/wg0.conf.age;
|
|
mode = "0400";
|
|
owner = "root";
|
|
group = "root";
|
|
};
|
|
|
|
# ntfy-alerts secrets (group-readable for CI runner notifications)
|
|
ntfy-alerts-topic = {
|
|
file = ../secrets/ntfy-alerts-topic.age;
|
|
mode = "0440";
|
|
owner = "root";
|
|
group = "gitea-runner";
|
|
};
|
|
|
|
ntfy-alerts-token = {
|
|
file = ../secrets/ntfy-alerts-token.age;
|
|
mode = "0440";
|
|
owner = "root";
|
|
group = "gitea-runner";
|
|
};
|
|
|
|
# Firefox Sync server secrets (SYNC_MASTER_SECRET)
|
|
firefox-syncserver-env = {
|
|
file = ../secrets/firefox-syncserver-env.age;
|
|
mode = "0400";
|
|
};
|
|
|
|
# MollySocket env (MOLLY_VAPID_PRIVKEY + MOLLY_ALLOWED_UUIDS)
|
|
mollysocket-env = {
|
|
file = ../secrets/mollysocket-env.age;
|
|
mode = "0400";
|
|
};
|
|
|
|
# Murmur (Mumble) server password
|
|
murmur-password-env = {
|
|
file = ../secrets/murmur-password-env.age;
|
|
mode = "0400";
|
|
owner = "murmur";
|
|
group = "murmur";
|
|
};
|
|
|
|
# Coturn static auth secret
|
|
coturn-auth-secret = {
|
|
file = ../secrets/coturn-auth-secret.age;
|
|
mode = "0400";
|
|
owner = "turnserver";
|
|
group = "turnserver";
|
|
};
|
|
|
|
# Matrix (continuwuity) registration token
|
|
matrix-reg-token = {
|
|
file = ../secrets/matrix-reg-token.age;
|
|
mode = "0400";
|
|
owner = "continuwuity";
|
|
group = "continuwuity";
|
|
};
|
|
|
|
# Matrix (continuwuity) TURN secret — same secret as coturn-auth-secret,
|
|
# decrypted separately so continuwuity can read it with its own ownership
|
|
matrix-turn-secret = {
|
|
file = ../secrets/coturn-auth-secret.age;
|
|
mode = "0400";
|
|
owner = "continuwuity";
|
|
group = "continuwuity";
|
|
};
|
|
|
|
# CI deploy SSH key
|
|
ci-deploy-key = {
|
|
file = ../secrets/ci-deploy-key.age;
|
|
mode = "0400";
|
|
owner = "gitea-runner";
|
|
group = "gitea-runner";
|
|
};
|
|
|
|
# Git-crypt symmetric key for dotfiles repo
|
|
git-crypt-key-dotfiles = {
|
|
file = ../secrets/git-crypt-key-dotfiles.age;
|
|
mode = "0400";
|
|
owner = "gitea-runner";
|
|
group = "gitea-runner";
|
|
};
|
|
|
|
# Git-crypt symmetric key for server-config repo
|
|
git-crypt-key-server-config = {
|
|
file = ../secrets/git-crypt-key-server-config.age;
|
|
mode = "0400";
|
|
owner = "gitea-runner";
|
|
group = "gitea-runner";
|
|
};
|
|
|
|
# Git-crypt symmetric key for the new unified nixos repo (Phase 5 of the unify migration).
|
|
# Added additively here so muffin can decrypt nixos's secrets once Phase 6 cuts CI over.
|
|
git-crypt-key-nixos = {
|
|
file = ../secrets/git-crypt-key-nixos.age;
|
|
mode = "0400";
|
|
owner = "gitea-runner";
|
|
group = "gitea-runner";
|
|
};
|
|
|
|
# Gitea Actions runner registration token
|
|
gitea-runner-token = {
|
|
file = ../secrets/gitea-runner-token.age;
|
|
mode = "0400";
|
|
owner = "gitea-runner";
|
|
group = "gitea-runner";
|
|
};
|
|
|
|
# llama-cpp API key for bearer token auth
|
|
llama-cpp-api-key = {
|
|
file = ../secrets/llama-cpp-api-key.age;
|
|
mode = "0400";
|
|
owner = "root";
|
|
group = "root";
|
|
};
|
|
|
|
# Harmonia binary cache signing key
|
|
harmonia-sign-key = {
|
|
file = ../secrets/harmonia-sign-key.age;
|
|
mode = "0400";
|
|
owner = "harmonia";
|
|
group = "harmonia";
|
|
};
|
|
|
|
# Caddy basic auth for nix binary cache (separate from main caddy_auth)
|
|
nix-cache-auth = {
|
|
file = ../secrets/nix-cache-auth.age;
|
|
mode = "0400";
|
|
owner = "caddy";
|
|
group = "caddy";
|
|
};
|
|
};
|
|
}
|