nixos_config/flake.nix

151 lines
5.1 KiB
Nix
Raw Normal View History

2025-07-20 17:46:39 +02:00
{
description = "NixOS configuration for all hosts";
inputs = {
2025-11-30 18:15:29 +01:00
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11";
2025-08-08 21:43:53 +02:00
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
2025-09-04 15:05:45 +02:00
nur = {
url = "github:nix-community/NUR";
inputs.nixpkgs.follows = "nixpkgs";
};
nur-unstable = {
url = "github:nix-community/NUR";
inputs.nixpkgs.follows = "nixpkgs-unstable";
};
2025-07-21 20:58:31 +02:00
home-manager = {
2025-11-30 18:15:29 +01:00
url = "github:nix-community/home-manager/release-25.11";
2025-07-21 20:58:31 +02:00
inputs.nixpkgs.follows = "nixpkgs";
};
2026-01-07 22:56:05 +01:00
stylix = {
url = "github:danth/stylix";
inputs.nixpkgs.follows = "nixpkgs";
};
2026-02-01 15:53:16 +01:00
nix-minecraft.url = "github:Infinidoge/nix-minecraft";
2025-07-20 17:46:39 +02:00
};
2026-02-01 16:19:24 +01:00
outputs = inputs @ { self, nixpkgs, nixpkgs-unstable, nur, nur-unstable, home-manager, stylix, nix-minecraft, ... }:
2025-07-21 20:58:31 +02:00
let
system = "x86_64-linux";
pkgs = import nixpkgs {
inherit system;
config.allowUnfree = true;
2025-08-25 16:01:00 +02:00
flake.setFlakeRegistry = true;
2025-09-04 15:05:45 +02:00
overlays = [ nur.overlays.default ];
2025-07-21 20:58:31 +02:00
};
2025-08-08 21:43:53 +02:00
pkgs-unstable = import nixpkgs-unstable {
inherit system;
config.allowUnfree = true;
2025-08-25 16:01:00 +02:00
flake.setFlakeRegistry = true;
2025-09-04 15:05:45 +02:00
overlays = [ nur-unstable.overlays.default ];
2025-08-25 16:01:00 +02:00
};
sharedSpecialArgs = {
inherit pkgs-unstable;
2026-02-01 16:30:27 +01:00
inherit inputs;
2025-08-08 21:43:53 +02:00
};
2025-07-23 19:46:19 +02:00
sharedModules = [
2026-03-10 21:05:35 +01:00
./hosts/common/default.nix
2026-01-07 19:19:47 +01:00
stylix.nixosModules.stylix
2025-08-08 21:43:53 +02:00
home-manager.nixosModules.home-manager
({ config, ...}: {
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.extraSpecialArgs = {
2025-08-25 16:01:00 +02:00
inherit (config.networking) hostName;
inherit pkgs pkgs-unstable;
2025-08-08 21:43:53 +02:00
}; # end extraSpecialArgs
home-manager.backupFileExtension = "backup";
}) # end home manager
2025-08-14 12:27:04 +02:00
]; # end sharedModules
2025-07-21 20:58:31 +02:00
in
{
2025-07-21 19:53:17 +02:00
nixosConfigurations = {
2025-07-23 13:16:55 +02:00
electra = nixpkgs.lib.nixosSystem {
2025-07-21 20:58:31 +02:00
inherit system;
2025-08-25 16:01:00 +02:00
inherit pkgs;
specialArgs = sharedSpecialArgs // {};
2025-07-23 19:46:19 +02:00
modules = sharedModules ++ [
2025-07-23 19:56:00 +02:00
./hosts/electra/configuration.nix
2026-01-07 19:19:47 +01:00
./hosts/common/workstation.nix
2025-12-01 20:17:06 +01:00
./hosts/common/wm/sway.nix
2026-01-07 19:19:47 +01:00
./hosts/common/stylix.nix
2025-08-14 12:27:04 +02:00
home-manager.nixosModules.home-manager
({ config, ...}: {
home-manager.users.alisceon.imports = [
./home/alisceon/base.nix
./home/alisceon/workstation.nix
2025-12-01 20:17:06 +01:00
./home/wm/sway.nix
2026-03-10 21:05:35 +01:00
./home/alisceon/hosts/electra.nix
2025-08-14 12:27:04 +02:00
];
2026-01-30 16:41:25 +01:00
home-manager.users.root.imports = [
./home/root/base.nix
];
2025-08-14 12:27:04 +02:00
}) # end home-manager
2025-07-23 19:46:19 +02:00
]; # end modules
}; # end electra
2025-07-23 13:16:55 +02:00
tower = nixpkgs.lib.nixosSystem {
inherit system;
2025-08-25 16:01:00 +02:00
inherit pkgs;
specialArgs = sharedSpecialArgs // {};
2025-07-23 19:46:19 +02:00
modules = sharedModules ++ [
2025-07-23 13:16:55 +02:00
./hosts/tower/configuration.nix
2026-01-07 19:19:47 +01:00
./hosts/common/workstation.nix
2025-12-02 19:21:57 +01:00
./hosts/common/wm/sway.nix
2026-01-07 19:19:47 +01:00
./hosts/common/stylix.nix
2025-08-14 12:27:04 +02:00
home-manager.nixosModules.home-manager
({ config, ...}: {
home-manager.users.alisceon.imports = [
./home/alisceon/base.nix
./home/alisceon/workstation.nix
2025-12-02 19:21:57 +01:00
./home/wm/sway.nix
2026-03-10 21:05:35 +01:00
./home/alisceon/hosts/tower.nix
2025-08-14 12:27:04 +02:00
];
2026-01-30 16:41:25 +01:00
home-manager.users.root.imports = [
./home/root/base.nix
];
2025-08-14 12:27:04 +02:00
}) # end home-manager
2025-07-23 19:46:19 +02:00
]; # end modules
}; # end tower
2025-08-12 21:00:01 +02:00
tesla-nixos = nixpkgs.lib.nixosSystem {
inherit system;
2025-08-25 16:01:00 +02:00
inherit pkgs;
specialArgs = sharedSpecialArgs // {};
2025-08-14 12:27:04 +02:00
modules = sharedModules ++ [
./hosts/common/server.nix
2025-08-12 21:00:01 +02:00
./hosts/tesla-nixos/configuration.nix
2026-02-01 15:53:16 +01:00
nix-minecraft.nixosModules.minecraft-servers
2026-02-01 16:54:28 +01:00
{ nixpkgs.overlays = [ inputs.nix-minecraft.overlay ]; }
2025-08-14 12:27:04 +02:00
home-manager.nixosModules.home-manager
({ config, ...}: {
home-manager.users.alisceon.imports = [
./home/alisceon/base.nix
2025-08-14 12:30:36 +02:00
./home/alisceon/server.nix
2025-08-14 12:27:04 +02:00
];
2026-01-30 16:41:25 +01:00
home-manager.users.root.imports = [
./home/root/base.nix
];
2025-08-14 12:27:04 +02:00
}) # end home-manager
2025-08-12 21:00:01 +02:00
]; # end modules
}; # end tesla-nixos
2026-02-01 21:30:23 +01:00
nuc = nixpkgs.lib.nixosSystem {
2025-08-26 14:00:14 +02:00
inherit system;
inherit pkgs;
specialArgs = sharedSpecialArgs // {};
modules = sharedModules ++ [
./hosts/common/server.nix
2026-02-01 21:30:23 +01:00
./hosts/nuc/configuration.nix
2025-08-26 14:00:14 +02:00
home-manager.nixosModules.home-manager
({ config, ...}: {
home-manager.users.alisceon.imports = [
./home/alisceon/base.nix
./home/alisceon/server.nix
];
2026-01-30 16:41:25 +01:00
home-manager.users.root.imports = [
./home/root/base.nix
];
2025-08-26 14:00:14 +02:00
}) # end home-manager
]; # end modules
}; # end tesla-nixos
2025-07-23 19:46:19 +02:00
}; # end nixos conf
}; # end "in"
} # end file