2025-07-20 17:46:39 +02:00
|
|
|
{
|
|
|
|
|
description = "NixOS configuration for all hosts";
|
|
|
|
|
|
|
|
|
|
inputs = {
|
2025-08-25 16:01:00 +02:00
|
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05";
|
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-08-25 16:01:00 +02:00
|
|
|
flake-utils = {
|
|
|
|
|
url = "github:numtide/flake-utils";
|
|
|
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
|
};
|
2025-07-21 20:58:31 +02:00
|
|
|
home-manager = {
|
2025-08-25 16:01:00 +02:00
|
|
|
url = "github:nix-community/home-manager/release-25.05";
|
2025-07-21 20:58:31 +02:00
|
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
|
};
|
2025-07-20 17:46:39 +02:00
|
|
|
};
|
|
|
|
|
|
2025-09-04 15:05:45 +02:00
|
|
|
outputs = { self, nixpkgs, nixpkgs-unstable, nur, nur-unstable, flake-utils, home-manager, ... }:
|
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;
|
2025-08-08 21:43:53 +02:00
|
|
|
};
|
2025-07-23 19:46:19 +02:00
|
|
|
sharedModules = [
|
2025-08-14 12:27:04 +02:00
|
|
|
./hosts/common/base.nix
|
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-08-14 12:27:04 +02:00
|
|
|
./hosts/common/workstation.nix
|
2025-07-23 19:56:00 +02:00
|
|
|
./hosts/electra/configuration.nix
|
2025-08-25 10:01:53 +02:00
|
|
|
./hosts/common/wm/gnome.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-08-25 10:01:53 +02:00
|
|
|
./home/wm/gnome.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-08-14 12:27:04 +02:00
|
|
|
./hosts/common/workstation.nix
|
2025-07-23 13:16:55 +02:00
|
|
|
./hosts/tower/configuration.nix
|
2025-08-24 16:05:54 +02:00
|
|
|
./hosts/common/wm/gnome.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-08-24 16:05:54 +02:00
|
|
|
./home/wm/gnome.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
|
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
|
|
|
];
|
|
|
|
|
}) # end home-manager
|
2025-08-12 21:00:01 +02:00
|
|
|
]; # end modules
|
|
|
|
|
}; # end tesla-nixos
|
2025-08-26 14:00:14 +02:00
|
|
|
blogbox = nixpkgs.lib.nixosSystem {
|
|
|
|
|
inherit system;
|
|
|
|
|
inherit pkgs;
|
|
|
|
|
specialArgs = sharedSpecialArgs // {};
|
|
|
|
|
modules = sharedModules ++ [
|
|
|
|
|
./hosts/common/server.nix
|
|
|
|
|
./hosts/blogbox/configuration.nix
|
|
|
|
|
home-manager.nixosModules.home-manager
|
|
|
|
|
({ config, ...}: {
|
|
|
|
|
home-manager.users.alisceon.imports = [
|
|
|
|
|
./home/alisceon/base.nix
|
|
|
|
|
./home/alisceon/server.nix
|
|
|
|
|
];
|
|
|
|
|
}) # end home-manager
|
|
|
|
|
]; # end modules
|
|
|
|
|
}; # end tesla-nixos
|
2025-07-23 19:46:19 +02:00
|
|
|
}; # end nixos conf
|
|
|
|
|
}; # end "in"
|
|
|
|
|
} # end file
|