flake/flake.nix
2025-01-09 12:05:18 +00:00

99 lines
2.9 KiB
Nix

{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
home-manager.url = "github:nix-community/home-manager";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
stylix.url = "github:danth/stylix";
nix-minecraft.url = "git+https://codeberg.org/nix-astral/nix-minecraft.git";
nix-alien.url = "github:thiagokokada/nix-alien";
};
outputs = inputs@{ nixpkgs, home-manager, stylix, ... }:
let
system = "x86_64-linux";
pkgs' = (import inputs.nixpkgs { inherit system; }).applyPatches {
name = "nixpkgs-unstable-patched";
src = inputs.nixpkgs;
patches = [
(builtins.fetchurl {
url =
"https://patch-diff.githubusercontent.com/raw/NixOS/nixpkgs/pull/369042.patch";
sha256 =
"sha256:08asxmd34rzaxb8dr4nccy26k3vxnx7psy2imnp40fdplqna0a85";
})
(builtins.fetchurl {
url =
"https://patch-diff.githubusercontent.com/raw/NixOS/nixpkgs/pull/368790.patch";
sha256 =
"sha256:1blsawm4l30wkrdkvvq0fw2aki7v921isdwrk9dw8yh09cglbfd9";
})
(builtins.fetchurl {
url =
"https://patch-diff.githubusercontent.com/raw/NixOS/nixpkgs/pull/368091.patch";
sha256 =
"sha256:11qnwrq8sgbmxiy9qvv7q2lbl824x90p2iklf3kjf9yb3c2dx9nj";
})
];
};
pkgs = import pkgs' { inherit system; };
utils = import ./utils.nix { inherit builtins inputs system pkgs; };
in {
nixosConfigurations = {
# desktop
muon = utils.mkHost ./hosts/muon/configuration.nix;
# laptop
muop = utils.mkHost ./hosts/muop/configuration.nix;
# vps
muho = utils.mkHost ./hosts/muho/configuration.nix;
# vps
mups = utils.mkHost ./hosts/mups/configuration.nix;
# vm
muvm = utils.mkHost ./hosts/muvm/configuration.nix;
};
homeManagerModules.default = ./modules/home;
colmena = {
meta = {
nixpkgs = import inputs.nixpkgs { inherit system; };
specialArgs = { inherit nixpkgs inputs system; };
};
# Remote host name
"mups" = { name, nodes, ... }: {
deployment.targetHost = "muon.host"; # SSH IP
deployment.targetUser = "root"; # SSH username
# modules
imports = [
./hosts/mups/configuration.nix
./modules/nixos
inputs.home-manager.nixosModules.default
inputs.stylix.nixosModules.stylix
];
};
"muho" = { name, nodes, ... }: {
deployment.targetHost = "muho"; # SSH IP
deployment.targetUser = "muon"; # SSH username
# modules
imports = [
./hosts/muho/configuration.nix
./modules/nixos
inputs.home-manager.nixosModules.default
inputs.stylix.nixosModules.stylix
];
};
};
};
}