This repository has been archived on 2026-07-30. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
nixos/flake.nix
T
2026-07-13 19:49:45 +10:00

162 lines
4.6 KiB
Nix

{
description = "LAN NixOS configs";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-26.05";
nixos-conf-editor.url = "github:snowfallorg/nixos-conf-editor";
home-manager = {
url = "github:nix-community/home-manager/release-26.05";
inputs.nixpkgs.follows = "nixpkgs";
};
disko = {
url = "github:nix-community/disko";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = { self, nixpkgs, nixos-conf-editor, home-manager, ... } @ inputs:
let
system = "x86_64-linux";
# 🔧 Docker override (pin version here)
# dockerOverlay = final: prev: {
# docker = prev.docker_29;
# docker_cli = prev.docker_29;
# };
in {
nixosConfigurations = {
nixos = nixpkgs.lib.nixosSystem {
inherit system;
modules = [
./hosts/nixos/configuration.nix
./modules/hardware-configuration/vm/proxmox.nix
home-manager.nixosModules.home-manager {
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.nixos = import ./hosts/nixos/home.nix;
}
];
specialArgs = { inherit inputs; };
};
docker = nixpkgs.lib.nixosSystem {
inherit system;
# 🔧 create custom pkgs with overlay
pkgs = import nixpkgs {
inherit system;
overlays = [
(final: prev: {
docker = prev.docker_29;
docker_cli = prev.docker_29;
})
];
};
modules = [
./hosts/docker/configuration.nix
./modules/hardware-configuration/vm/proxmox.nix
home-manager.nixosModules.home-manager {
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.nixos = import ./modules/common/home.nix;
}
];
};
kuma = nixpkgs.lib.nixosSystem {
inherit system;
modules = [
./hosts/kuma/configuration.nix
./modules/hardware-configuration/vm/proxmox.nix
home-manager.nixosModules.home-manager {
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.nixos = import ./modules/common/home.nix;
}
];
};
server = nixpkgs.lib.nixosSystem {
inherit system;
modules = [
./hosts/server/configuration.nix
./modules/hardware-configuration/vm/proxmox.nix
home-manager.nixosModules.home-manager {
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.nixos = import ./modules/common/home.nix;
}
];
};
nix-cache = nixpkgs.lib.nixosSystem {
inherit system;
modules = [
./hosts/nix-cache/configuration.nix
./modules/hardware-configuration/vm/proxmox.nix
home-manager.nixosModules.home-manager {
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.nixos = import ./modules/common/home.nix;
}
];
};
nix-minimal = nixpkgs.lib.nixosSystem {
inherit system;
modules = [
./hosts/nix-minimal/configuration.nix
./modules/hardware-configuration/vm/proxmox.nix
home-manager.nixosModules.home-manager {
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.nixos = import ./modules/common/home.nix;
}
];
};
pxe-boot = nixpkgs.lib.nixosSystem {
inherit system;
modules = [
./hosts/pxe-boot/configuration.nix
./modules/hardware-configuration/vm/proxmox.nix
home-manager.nixosModules.home-manager {
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.nixos = import ./modules/common/home.nix;
}
];
};
linode = nixpkgs.lib.nixosSystem {
inherit system;
modules = [
./hosts/linode/configuration.nix
./modules/hardware-configuration/vm/linode.nix
./hosts/linode/disko.nix
inputs.disko.nixosModules.disko
home-manager.nixosModules.home-manager {
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.nixos = import ./modules/common/home.nix;
}
];
};
};
};
}