Secrets
Secrets are managed with SOPS and sops-nix. The repository uses SSH-derived age recipients for
normal host and user operation, plus a PGP recipient for bootstrap and recovery.
Recipient Model
Section titled “Recipient Model”- User secrets under
secrets/johnson/are encrypted to the user age recipient and the PGP recipient. - Core bootstrap secrets under
secrets/johnson/core/are PGP-only. - Service secrets under
secrets/services/are encrypted to host recipients and the PGP recipient.
The authoritative recipient rules live in .sops.yaml.
Common Commands
Section titled “Common Commands”Edit a secret:
sops secrets/services/default.yamlsops secrets/johnson/default.yamlUpdate recipients after changing .sops.yaml:
sops updatekeys -y secrets/services/default.yamlValidate decryption without printing the secret:
sops -d secrets/services/default.yaml >/dev/nullBootstrap
Section titled “Bootstrap”Initialize local keys for an existing host:
just init-local <host>Initialize a remote machine:
just init-remote <host> <ip>For the longer operational notes, see the Markdown source at docs/SOPS.md.