Nix configurations for my homelab
at main 1.9 kB view raw
1{ 2 inputs = { 3 nixpkgs.url = "github:NixOS/nixpkgs?ref=nixos-unstable-small"; 4 nixpkgs-stable.url = "github:NixOS/nixpkgs?ref=nixos-25.05-small"; 5 nixpkgs-unstable.url = "github:NixOS/nixpkgs?ref=nixos-unstable"; 6 7 impermanence.url = "github:nix-community/impermanence"; 8 sops-nix.url = "github:Mic92/sops-nix"; 9 10 yemou-dotfiles = { 11 url = "git+https://tangled.org/yemou.pink/dotfiles"; 12 flake = false; 13 }; 14 yemou-scripts = { 15 url = "git+https://tangled.org/yemou.pink/scripts"; 16 inputs.nixpkgs.follows = "nixpkgs"; 17 }; 18 home-manager = { 19 url = "github:nix-community/home-manager"; 20 inputs.nixpkgs.follows = "nixpkgs"; 21 }; 22 23 roc-lang.url = "github:roc-lang/roc"; 24 tangled.url = "git+https://tangled.org/tangled.org/core?ref=refs/tags/v1.11.0-alpha"; 25 }; 26 27 outputs = 28 { 29 self, 30 nixpkgs, 31 impermanence, 32 sops-nix, 33 home-manager, 34 ... 35 }@inputs: 36 let 37 genSystemConfigs = nixpkgs.lib.genAttrs [ 38 "lily" 39 "lutea" 40 ]; 41 systems = [ "x86_64-linux" ]; 42 forSystems = func: nixpkgs.lib.genAttrs systems (system: func (import nixpkgs { inherit system; })); 43 in 44 { 45 formatter = forSystems (p: p.nixfmt-tree.override { settings.formatter.nixfmt.options = [ "-w 120" ]; }); 46 nixosConfigurations = genSystemConfigs ( 47 hostname: 48 nixpkgs.lib.nixosSystem { 49 specialArgs = inputs; 50 modules = [ 51 impermanence.nixosModules.impermanence 52 ./${hostname}/config.nix 53 sops-nix.nixosModules.sops 54 home-manager.nixosModules.home-manager 55 { 56 home-manager = { 57 extraSpecialArgs = inputs; 58 useGlobalPkgs = true; 59 useUserPackages = true; 60 users.mou = import ./${hostname}/home.nix; 61 }; 62 } 63 ]; 64 } 65 ); 66 }; 67}