# Sops Atomic secret provisioning for NixOS based on sops. View the [*synix* NixOS module on Forgejo](https://git.sid.ovh/sid/synix/tree/master/modules/nixos/sops). ## References - [GitHub](https://github.com/Mic92/sops-nix) ## Setup Generate an age key for your host from its ssh host key: ```bash nix-shell -p ssh-to-age --run 'cat /etc/ssh/ssh_host_ed25519_key.pub | ssh-to-age' ``` Then, add it to `.sops.yaml` (see [usage example](https://github.com/Mic92/sops-nix?tab=readme-ov-file#usage-example)). ## Config ### Flake ```nix # flake.nix inputs = { sops-nix.url = "github:Mic92/sops-nix"; sops-nix.inputs.nixpkgs.follows = "nixpkgs"; }; ``` ### Host configuration Create a `secrets` directory in your hosts directory. Declare all your secrets in it: ```nix # hosts/YOUR_HOST/secrets/default.nix { inputs, ... }: { imports = [ inputs.synix.nixosModules.sops ]; sops.secrets.your-secret = { }; sops.secrets.other-secret = { }; ``` ## Usage For more information on how to use sops-nix, see the [Sops Home Manager module documentation](../home/sops.md). ## Update Keys Update the keys of your SOPS files after making changes to `.sops.yaml`: ```bash sops --config PATH/TO/.sops.yaml updatekeys PATH/TO/secrets.yaml ```