{ inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05"; nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; home-manager = { url = "github:nix-community/home-manager/release-24.05"; inputs.nixpkgs.follows = "nixpkgs"; }; agenix = { url = "github:ryantm/agenix"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = { self , nixpkgs , nixpkgs-unstable , home-manager , agenix , ... } @ inputs: let inherit (self) outputs; in { overlays = import ./overlays { inherit inputs; }; nixosConfigurations = { woodpecker = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [ # Base configuration and modules. ./modules/bspwm ./modules/fstrim ./modules/libvirtd ./modules/nvidia ./modules/pipewire ./modules/steam ./modules/wireshark # System configuration. ./hosts/workstations ./hosts/workstations/woodpecker # User configuration. ./users/tdback home-manager.nixosModules.home-manager { home-manager = { useGlobalPkgs = true; useUserPackages = true; users.tdback = import ./users/tdback/dots.nix; extraSpecialArgs = { inherit inputs; }; }; } ]; specialArgs = { inherit inputs outputs; }; }; sparrow = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [ # Base configuration and modules. ./modules/bspwm ./modules/pipewire ./modules/vpn # System configuration. ./hosts/workstations ./hosts/workstations/sparrow # User configuration. ./users/tdback home-manager.nixosModules.home-manager { home-manager = { useGlobalPkgs = true; useUserPackages = true; users.tdback = import ./users/tdback/dots.nix; extraSpecialArgs = { inherit inputs; }; }; } ]; specialArgs = { inherit inputs outputs; }; }; raindog = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [ # Base configuration and modules. ./containers/pihole ./modules/motd ./modules/podman ./modules/searx ./modules/ssh # System configuration. ./hosts/servers ./hosts/servers/raindog # User configuration. ./users/tdback ]; specialArgs = { inherit inputs outputs; }; }; oasis = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [ # Base configuration and modules. ./modules/forgejo ./modules/motd ./modules/podman ./modules/proxy ./modules/pushover ./modules/sftpgo ./modules/ssh ./modules/wireguard ./modules/zfs # System configuration and secrets. ./hosts/servers ./hosts/servers/oasis agenix.nixosModules.default # User configuration. ./users/tdback ]; specialArgs = { inherit inputs outputs; }; }; hive = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [ # Base configuration and modules. ./modules/fediverse ./modules/mealie ./modules/motd ./modules/proxy ./modules/ssh ./modules/wireguard # System configuration. ./hosts/servers ./hosts/servers/hive # User configuration. ./users/tdback ]; specialArgs = { inherit inputs outputs; }; }; eden = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [ # Base configuration and modules. ./containers/freshrss ./containers/jellyfin ./containers/navidrome ./containers/pinchflat ./containers/stirling-pdf ./containers/vaultwarden ./containers/watchtower ./modules/immich ./modules/motd ./modules/podman ./modules/proxy ./modules/pushover ./modules/ssh ./modules/wireguard ./modules/zfs # System configuration and secrets. ./hosts/servers ./hosts/servers/eden agenix.nixosModules.default # User configuration. ./users/tdback ]; specialArgs = { inherit inputs outputs; }; }; }; }; }