nixcfg/flake.nix

137 lines
No EOL
3.5 KiB
Nix
Executable file

# flake.nix
{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05";
nixos-hardware.url = "github:nixos/nixos-hardware/master";
lix-module = {
url = "https://git.lix.systems/lix-project/nixos-module/archive/2.93.0.tar.gz";
inputs.nixpkgs.follows = "nixpkgs";
};
vscode-server.url = "github:nix-community/nixos-vscode-server";
agenix.url = "github:ryantm/agenix";
zen-browser = {
url = "github:0xc000022070/zen-browser-flake";
inputs.nixpkgs.follows = "nixpkgs";
};
#microvm.url = "github:astro/microvm.nix";
#microvm.inputs.nixpkgs.follows = "nixpkgs";
catppuccin.url = "github:catppuccin/nix";
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs =
{ self, ... }@inputs:
with inputs;
let
nixosModules = builtins.listToAttrs (
map (module: {
name = module;
value = import (./modules + "/${module}");
}) (builtins.attrNames (builtins.readDir ./modules))
);
in
{
nixosConfigurations = {
focalor = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = {
inherit inputs;
system = "x86_64-linux";
};
modules = [
./hosts/focalor
lix-module.nixosModules.default
/*microvm.nixosModules.host
{
microvm.autostart = [
"windows"
];
}*/
vscode-server.nixosModules.default
agenix.nixosModules.default
catppuccin.nixosModules.catppuccin
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.backupFileExtension = "HMBackup";
home-manager.users.regent.imports = [
./home/regent/home.nix
catppuccin.homeModules.catppuccin
];
home-manager.extraSpecialArgs = {
inherit inputs;
system = "x86_64-linux";
};
}
];
};
valefar = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = {
inherit inputs;
system = "x86_64-linux";
};
modules = [
./hosts/valefar
lix-module.nixosModules.default
vscode-server.nixosModules.default
agenix.nixosModules.default
{ imports = builtins.attrValues nixosModules; }
];
};
buer = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = {
inherit inputs;
system = "x86_64-linux";
};
modules = [
./hosts/buer
agenix.nixosModules.default
];
};
morax = nixpkgs.lib.nixosSystem {
system = "aarch64-linux";
specialArgs = {
inherit inputs;
system = "aarch64-linux";
};
modules = [
./hosts/morax
nixos-hardware.nixosModules.raspberry-pi-4
agenix.nixosModules.default
];
};
# Easy to add more hosts
/*
server2 = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
./hosts/server2
agenix.nixosModules.default
# different services for server2
];
};
*/
};
};
}