feat(nix): add sops for secrets
This commit is contained in:
		
							parent
							
								
									89232a7cd1
								
							
						
					
					
						commit
						d04ba5d01a
					
				
					 5 changed files with 75 additions and 3 deletions
				
			
		
							
								
								
									
										21
									
								
								.sops.yaml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								.sops.yaml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,21 @@
 | 
				
			||||||
 | 
					keys:
 | 
				
			||||||
 | 
					  - &server_lappy age1ew0qvrhjafqcdluupf0etgchh7h7987kgqnfvh7plxe44k8xy94qw9pe5n
 | 
				
			||||||
 | 
					  - &server_tanzanite age1myy382gauvgg77lyaqmj4ty7a9pgzqu85pqufk2rytudg9g8edeq5rupzw
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					creation_rules:
 | 
				
			||||||
 | 
					  - path_regex: secrets/[^/]+\.(yaml|json|env|ini)$
 | 
				
			||||||
 | 
					    key_groups:
 | 
				
			||||||
 | 
					      - age:
 | 
				
			||||||
 | 
					        - *admin_lappy
 | 
				
			||||||
 | 
					  - path_regex: secrets/stitchynyan/[^/]+\.(yaml|json|env|ini)$
 | 
				
			||||||
 | 
					    key_groups:
 | 
				
			||||||
 | 
					      - age:
 | 
				
			||||||
 | 
					        - *admin_lappy
 | 
				
			||||||
 | 
					  - path_regex: secrets/nyadmin/[^/]+\.(yaml|json|env|ini)$
 | 
				
			||||||
 | 
					    key_groups:
 | 
				
			||||||
 | 
					      - age:
 | 
				
			||||||
 | 
					        - *admin_tanzanite
 | 
				
			||||||
 | 
					  - path_regex: secrets/email_accounts/[^/]+\.(yaml|json|env|ini)$
 | 
				
			||||||
 | 
					    key_groups:
 | 
				
			||||||
 | 
					      - age:
 | 
				
			||||||
 | 
					        - *server_tanzanite
 | 
				
			||||||
							
								
								
									
										23
									
								
								flake.lock
									
										
									
										generated
									
									
									
								
							
							
						
						
									
										23
									
								
								flake.lock
									
										
									
										generated
									
									
									
								
							| 
						 | 
					@ -344,7 +344,8 @@
 | 
				
			||||||
        "nixos-hardware": "nixos-hardware",
 | 
					        "nixos-hardware": "nixos-hardware",
 | 
				
			||||||
        "nixpkgs": "nixpkgs_2",
 | 
					        "nixpkgs": "nixpkgs_2",
 | 
				
			||||||
        "nixpkgs-quartus": "nixpkgs-quartus",
 | 
					        "nixpkgs-quartus": "nixpkgs-quartus",
 | 
				
			||||||
        "nixpkgs-xr": "nixpkgs-xr"
 | 
					        "nixpkgs-xr": "nixpkgs-xr",
 | 
				
			||||||
 | 
					        "sops-nix": "sops-nix"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "rust-overlay": {
 | 
					    "rust-overlay": {
 | 
				
			||||||
| 
						 | 
					@ -368,6 +369,26 @@
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "sops-nix": {
 | 
				
			||||||
 | 
					      "inputs": {
 | 
				
			||||||
 | 
					        "nixpkgs": [
 | 
				
			||||||
 | 
					          "nixpkgs"
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "locked": {
 | 
				
			||||||
 | 
					        "lastModified": 1760998189,
 | 
				
			||||||
 | 
					        "narHash": "sha256-ee2e1/AeGL5X8oy/HXsZQvZnae6XfEVdstGopKucYLY=",
 | 
				
			||||||
 | 
					        "owner": "Mic92",
 | 
				
			||||||
 | 
					        "repo": "sops-nix",
 | 
				
			||||||
 | 
					        "rev": "5a7d18b5c55642df5c432aadb757140edfeb70b3",
 | 
				
			||||||
 | 
					        "type": "github"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "original": {
 | 
				
			||||||
 | 
					        "owner": "Mic92",
 | 
				
			||||||
 | 
					        "repo": "sops-nix",
 | 
				
			||||||
 | 
					        "type": "github"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "systems": {
 | 
					    "systems": {
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1689347949,
 | 
					        "lastModified": 1689347949,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										10
									
								
								flake.nix
									
										
									
									
									
								
							
							
						
						
									
										10
									
								
								flake.nix
									
										
									
									
									
								
							| 
						 | 
					@ -2,12 +2,13 @@
 | 
				
			||||||
  description = "System Configuration Flake";
 | 
					  description = "System Configuration Flake";
 | 
				
			||||||
  outputs = inputs@{
 | 
					  outputs = inputs@{
 | 
				
			||||||
    catppuccin,
 | 
					    catppuccin,
 | 
				
			||||||
 | 
					    home-manager,
 | 
				
			||||||
    lanzaboote,
 | 
					    lanzaboote,
 | 
				
			||||||
    nixpkgs,
 | 
					    nixpkgs,
 | 
				
			||||||
    nixpkgs-xr,
 | 
					    nixpkgs-xr,
 | 
				
			||||||
    nixos-hardware,
 | 
					    nixos-hardware,
 | 
				
			||||||
    nixpkgs-quartus,
 | 
					    nixpkgs-quartus,
 | 
				
			||||||
    home-manager,
 | 
					    sops-nix,
 | 
				
			||||||
    ...
 | 
					    ...
 | 
				
			||||||
  } : {
 | 
					  } : {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -17,6 +18,7 @@
 | 
				
			||||||
        specialArgs = { inherit inputs; };
 | 
					        specialArgs = { inherit inputs; };
 | 
				
			||||||
        modules = [
 | 
					        modules = [
 | 
				
			||||||
          catppuccin.nixosModules.catppuccin
 | 
					          catppuccin.nixosModules.catppuccin
 | 
				
			||||||
 | 
					          sops-nix.nixosModules.sops
 | 
				
			||||||
 | 
					
 | 
				
			||||||
          ./hosts/malachite/default.nix
 | 
					          ./hosts/malachite/default.nix
 | 
				
			||||||
          ./users/stitchynyan/default.nix
 | 
					          ./users/stitchynyan/default.nix
 | 
				
			||||||
| 
						 | 
					@ -44,6 +46,7 @@
 | 
				
			||||||
          catppuccin.nixosModules.catppuccin
 | 
					          catppuccin.nixosModules.catppuccin
 | 
				
			||||||
          lanzaboote.nixosModules.lanzaboote
 | 
					          lanzaboote.nixosModules.lanzaboote
 | 
				
			||||||
          nixos-hardware.nixosModules.framework-12th-gen-intel
 | 
					          nixos-hardware.nixosModules.framework-12th-gen-intel
 | 
				
			||||||
 | 
					          sops-nix.nixosModules.sops
 | 
				
			||||||
 | 
					
 | 
				
			||||||
          ./hosts/lappy/default.nix
 | 
					          ./hosts/lappy/default.nix
 | 
				
			||||||
          ./users/stitchynyan/default.nix
 | 
					          ./users/stitchynyan/default.nix
 | 
				
			||||||
| 
						 | 
					@ -87,6 +90,7 @@
 | 
				
			||||||
        specialArgs = { inherit inputs; };
 | 
					        specialArgs = { inherit inputs; };
 | 
				
			||||||
        modules = [
 | 
					        modules = [
 | 
				
			||||||
          catppuccin.nixosModules.catppuccin
 | 
					          catppuccin.nixosModules.catppuccin
 | 
				
			||||||
 | 
					          sops-nix.nixosModules.sops
 | 
				
			||||||
 | 
					
 | 
				
			||||||
          ./hosts/tanzanite/default.nix
 | 
					          ./hosts/tanzanite/default.nix
 | 
				
			||||||
          ./users/nyadmin/default.nix
 | 
					          ./users/nyadmin/default.nix
 | 
				
			||||||
| 
						 | 
					@ -127,5 +131,9 @@
 | 
				
			||||||
    nixpkgs-xr.url = "github:nix-community/nixpkgs-xr";
 | 
					    nixpkgs-xr.url = "github:nix-community/nixpkgs-xr";
 | 
				
			||||||
    nixos-hardware.url = "github:Nixos/nixos-hardware/master";
 | 
					    nixos-hardware.url = "github:Nixos/nixos-hardware/master";
 | 
				
			||||||
    nixpkgs-quartus.url = "github:nixos/nixpkgs/nixos-22.05";
 | 
					    nixpkgs-quartus.url = "github:nixos/nixpkgs/nixos-22.05";
 | 
				
			||||||
 | 
					    sops-nix = {
 | 
				
			||||||
 | 
					      url = "github:Mic92/sops-nix";
 | 
				
			||||||
 | 
					      inputs.nixpkgs.follows = "nixpkgs";
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										17
									
								
								secrets/stitchynyan/secrets.yaml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								secrets/stitchynyan/secrets.yaml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,17 @@
 | 
				
			||||||
 | 
					password-hash:
 | 
				
			||||||
 | 
					    stitchynyan: ENC[AES256_GCM,data:bYrGWN3qhak742yo5fP+R767NrCDlc91ngxKA/e68uIXesx+J9od0C9VwBYtK6VfqUHT/3CkGRPxj9r73wrnSkYgpzZZ41syqg==,iv:uD1BBpzcRpGZpWEjxWT9cqDJfBqtj336/FOmVkEASE4=,tag:zEc0QlQPaKUfQpxwfbp68A==,type:str]
 | 
				
			||||||
 | 
					sops:
 | 
				
			||||||
 | 
					    age:
 | 
				
			||||||
 | 
					        - recipient: age1ew0qvrhjafqcdluupf0etgchh7h7987kgqnfvh7plxe44k8xy94qw9pe5n
 | 
				
			||||||
 | 
					          enc: |
 | 
				
			||||||
 | 
					            -----BEGIN AGE ENCRYPTED FILE-----
 | 
				
			||||||
 | 
					            YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB4MFdlSFQ4WjVwbFExUFdD
 | 
				
			||||||
 | 
					            c05BOTJTSkdXM3hzdkdVTXN1bGh6bk92TFdJCjB5OUZyWDdqalU3akRKaHV4a3FE
 | 
				
			||||||
 | 
					            YkdVUW9SRHA5NDJoT01wa1VOQTZGTGsKLS0tIGMwWVpGMHJEWDhpSVNLV1liWUhj
 | 
				
			||||||
 | 
					            ZW1XSm9Td0JVODhBYnFpcnlNMHFvWkUKz0GCB+DYOXO5szkAtVhjnzjzPgMvAvc1
 | 
				
			||||||
 | 
					            NuQRV9uI5OPElhkucxhO9QhQQ8OLl/5rv4UYJHuEaGbz9ijMOdrvFQ==
 | 
				
			||||||
 | 
					            -----END AGE ENCRYPTED FILE-----
 | 
				
			||||||
 | 
					    lastmodified: "2025-10-30T05:24:37Z"
 | 
				
			||||||
 | 
					    mac: ENC[AES256_GCM,data:+XXEIMIWoPhJFWQ4D8CFLNFL5ZjHya9tFrVlW6rUb7/NXEkN3UoqtnUxOJFw6dGjU7L9vX6p5dSYnGejhRFgZPXWGJywDoJiNg/A63HPhQNECNO7xKrHsB238PsNzBCC0p47R0XELywd77zZ8BHtezty6+8x5x6md7+kE5sDzgU=,iv:+MZKzxv5oYCldq7SQxl7kYwPb9IoDKp0im8yoU7KsSw=,tag:FXrj7o1Y6n9Ir9V03aLyww==,type:str]
 | 
				
			||||||
 | 
					    unencrypted_suffix: _unencrypted
 | 
				
			||||||
 | 
					    version: 3.11.0
 | 
				
			||||||
| 
						 | 
					@ -54,11 +54,16 @@
 | 
				
			||||||
    xserver.enable = true;
 | 
					    xserver.enable = true;
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  sops.secrets."password-hash/stitchynyan" = {
 | 
				
			||||||
 | 
					    neededForUsers = true;
 | 
				
			||||||
 | 
					    sopsFile = ../../secrets/stitchynyan/secrets.yaml;
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  users.users.stitchynyan = {
 | 
					  users.users.stitchynyan = {
 | 
				
			||||||
    description = "Personal user";
 | 
					    description = "Personal user";
 | 
				
			||||||
    extraGroups = [ "audio" "dialout" "docker" "kvm" "libvirtd" "networkmanager" "plugdev" "wireshark" "wheel" ];
 | 
					    extraGroups = [ "audio" "dialout" "docker" "kvm" "libvirtd" "networkmanager" "plugdev" "wireshark" "wheel" ];
 | 
				
			||||||
    home = "/home/stitchynyan";
 | 
					    home = "/home/stitchynyan";
 | 
				
			||||||
    initialHashedPassword = "$y$j9T$rvySCWHYE4AO4A9J0Vf20.$x5hpBNsOWovQFtNfFUIt17OAH5MJFwFBGjxbaEIagJ3";
 | 
					    hashedPasswordFile = config.sops.secrets."password-hash/stitchynyan".path;
 | 
				
			||||||
    isNormalUser = true;
 | 
					    isNormalUser = true;
 | 
				
			||||||
    shell = pkgs.zsh;
 | 
					    shell = pkgs.zsh;
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue