From 514fa3068af337bce42a36cf388b1e4519fbddbd Mon Sep 17 00:00:00 2001 From: beatzaplenty Date: Sun, 28 Jun 2026 17:31:02 +1000 Subject: [PATCH] add overlay for docker version for flake.nix --- flake.nix | 205 +++++++++++++++++++++++++++++++----------------------- 1 file changed, 117 insertions(+), 88 deletions(-) diff --git a/flake.nix b/flake.nix index d64e50e..e7657a1 100644 --- a/flake.nix +++ b/flake.nix @@ -1,7 +1,6 @@ { - description = "LAN NixOS configs"; - # GitHub tokens must be provided outside this repository (local nix.conf, env, or deployment secrets). + inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11"; nixos-conf-editor.url = "github:snowfallorg/nixos-conf-editor"; @@ -12,101 +11,131 @@ }; outputs = { self, nixpkgs, nixos-conf-editor, home-manager, ... } @ inputs: - let system = "x86_64-linux"; in { + + let + system = "x86_64-linux"; + + # 🔧 Docker override (pin version here) + dockerOverlay = final: prev: { + docker = prev.docker_29; + docker_cli = prev.docker_29; + }; + + in { + nixosConfigurations = { - # automatically use each host folder by name - nixos = nixpkgs.lib.nixosSystem { - inherit system; - modules = [ - ./hosts/nixos/configuration.nix - ./common/hardware-configuration.nix - home-manager.nixosModules.home-manager { - home-manager.useGlobalPkgs = true; - home-manager.useUserPackages = true; - home-manager.users.nixos = import ./hosts/nixos/home.nix; - - } - ]; + nixos = nixpkgs.lib.nixosSystem { + inherit system; + modules = [ + ./hosts/nixos/configuration.nix + ./common/hardware-configuration.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; - modules = [ - ./hosts/docker/configuration.nix - ./common/hardware-configuration.nix - home-manager.nixosModules.home-manager { - home-manager.useGlobalPkgs = true; - home-manager.useUserPackages = true; - home-manager.users.nixos = import ./common/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 + ./common/hardware-configuration.nix + + home-manager.nixosModules.home-manager { + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.users.nixos = import ./common/home.nix; + } + ]; +}; kuma = nixpkgs.lib.nixosSystem { - inherit system; - modules = [ - ./hosts/kuma/configuration.nix - ./common/hardware-configuration.nix - home-manager.nixosModules.home-manager { - home-manager.useGlobalPkgs = true; - home-manager.useUserPackages = true; - home-manager.users.nixos = import ./common/home.nix; - } - ]; - }; + inherit system; + modules = [ + ./hosts/kuma/configuration.nix + ./common/hardware-configuration.nix + + home-manager.nixosModules.home-manager { + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.users.nixos = import ./common/home.nix; + } + ]; + }; + server = nixpkgs.lib.nixosSystem { - inherit system; - modules = [ - ./hosts/server/configuration.nix - ./common/hardware-configuration.nix - home-manager.nixosModules.home-manager { - home-manager.useGlobalPkgs = true; - home-manager.useUserPackages = true; - home-manager.users.nixos = import ./common/home.nix; - } - ]; - }; + inherit system; + modules = [ + ./hosts/server/configuration.nix + ./common/hardware-configuration.nix + + home-manager.nixosModules.home-manager { + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.users.nixos = import ./common/home.nix; + } + ]; + }; + nix-cache = nixpkgs.lib.nixosSystem { - inherit system; - modules = [ - ./hosts/nix-cache/configuration.nix - ./common/hardware-configuration.nix - home-manager.nixosModules.home-manager { - home-manager.useGlobalPkgs = true; - home-manager.useUserPackages = true; - home-manager.users.nixos = import ./common/home.nix; - } - ]; - - }; + inherit system; + modules = [ + ./hosts/nix-cache/configuration.nix + ./common/hardware-configuration.nix + + home-manager.nixosModules.home-manager { + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.users.nixos = import ./common/home.nix; + } + ]; + }; + nix-minimal = nixpkgs.lib.nixosSystem { - inherit system; - modules = [ - ./hosts/nix-minimal/configuration.nix - ./common/hardware-configuration.nix - home-manager.nixosModules.home-manager { - home-manager.useGlobalPkgs = true; - home-manager.useUserPackages = true; - home-manager.users.nixos = import ./common/home.nix; - } - ]; - - }; + inherit system; + modules = [ + ./hosts/nix-minimal/configuration.nix + ./common/hardware-configuration.nix + + home-manager.nixosModules.home-manager { + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.users.nixos = import ./common/home.nix; + } + ]; + }; + pxe-boot = nixpkgs.lib.nixosSystem { - inherit system; - modules = [ - ./hosts/pxe-boot/configuration.nix - ./common/hardware-configuration.nix - home-manager.nixosModules.home-manager { - home-manager.useGlobalPkgs = true; - home-manager.useUserPackages = true; - home-manager.users.nixos = import ./common/home.nix; - } - ]; - - }; + inherit system; + modules = [ + ./hosts/pxe-boot/configuration.nix + ./common/hardware-configuration.nix + + home-manager.nixosModules.home-manager { + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.users.nixos = import ./common/home.nix; + } + ]; + }; }; }; }