nixdots/flake.nix
2026-05-09 17:04:06 +03:00

196 lines
5.4 KiB
Nix

{
description = "NixOS configuration";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
spicetify-nix.url = "github:Gerg-L/spicetify-nix";
xray-3x-ui.url = "github:sunmeplz/xray-3x-ui";
nixarr.url = "github:nix-media-server/nixarr";
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
agenix = {
url = "github:ryantm/agenix";
};
deploy-rs.url = "github:serokell/deploy-rs";
quickshell = {
url = "github:outfoxxed/quickshell";
inputs.nixpkgs.follows = "nixpkgs";
};
noctalia = {
url = "github:noctalia-dev/noctalia-shell";
inputs.nixpkgs.follows = "nixpkgs";
# inputs.quickshell.follows = "quickshell"; # Use same quickshell version
};
nix-colors.url = "github:misterio77/nix-colors";
nixos-vfio.url = "github:/j-brn/nixos-vfio";
nixos-vfio.inputs.nixpkgs.follows = "nixpkgs";
zen-browser = {
url = "github:0xc000022070/zen-browser-flake";
inputs.nixpkgs.follows = "nixpkgs";
};
disko = {
url = "github:nix-community/disko";
inputs.nixpkgs.follows = "nixpkgs";
};
stylix = {
url = "github:nix-community/stylix";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = {
self,
nixpkgs,
home-manager,
nix-colors,
stylix,
disko,
agenix,
xray-3x-ui,
deploy-rs,
nixarr,
...
} @ inputs: let
system = "x86_64-linux";
pkgs = import nixpkgs {
inherit system;
config.allowUnfree = true;
};
in {
nixosConfigurations.virgil = nixpkgs.lib.nixosSystem {
inherit system;
specialArgs = {inherit inputs;};
modules = [
./hosts/virgil/configuration.nix
home-manager.nixosModules.home-manager
inputs.disko.nixosModules.disko
stylix.nixosModules.stylix
agenix.nixosModules.default
#./modules/home-manager/stylix.nix
{
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
extraSpecialArgs = {inherit inputs nix-colors;};
backupFileExtension = "backup";
users.tulg = {
imports = [
./modules/home-manager/home.nix
stylix.homeModules.stylix
];
};
};
}
];
};
nixosConfigurations.archangel = nixpkgs.lib.nixosSystem {
inherit system;
specialArgs = {inherit inputs;};
modules = [
./hosts/archangel/configuration.nix
home-manager.nixosModules.home-manager
inputs.disko.nixosModules.disko
stylix.nixosModules.stylix
agenix.nixosModules.default
#./modules/home-manager/stylix.nix
{
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
extraSpecialArgs = {inherit inputs nix-colors;};
backupFileExtension = "backup";
users.tulg = {
imports = [
./modules/home-manager/home.nix
stylix.homeModules.stylix
];
};
};
}
];
};
#placeholder
nixosConfigurations.beatrice = nixpkgs.lib.nixosSystem {
inherit system;
specialArgs = {inherit inputs;};
modules = [
./hosts/beatrice/configuration.nix
home-manager.nixosModules.home-manager
inputs.disko.nixosModules.disko
agenix.nixosModules.default
stylix.nixosModules.stylix
#./modules/home-manager/stylix.nix
{
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
extraSpecialArgs = {inherit inputs nix-colors;};
backupFileExtension = "backup";
users.tulg = {
imports = [
./modules/home-manager/home.nix
stylix.homeModules.stylix
];
};
};
}
];
};
nixosConfigurations.kittykat = nixpkgs.lib.nixosSystem {
inherit system;
specialArgs = {inherit inputs;};
modules = [
./hosts/kittykat/configuration.nix
xray-3x-ui.nixosModules.default
agenix.nixosModules.default
inputs.disko.nixosModules.disko
];
};
deploy.nodes.kittykat = {
hostname = "kittykat";
profiles.system = {
sshUser = "root";
user = "root";
path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.kittykat;
};
};
nixosConfigurations.overlord = nixpkgs.lib.nixosSystem {
inherit system;
specialArgs = {inherit inputs;};
modules = [
./hosts/overlord/configuration.nix
nixarr.nixosModules.default
agenix.nixosModules.default
inputs.disko.nixosModules.disko
];
};
deploy.nodes.overlord = {
hostname = "overlord";
profiles.system = {
sshUser = "root";
user = "root";
path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.overlord;
};
};
deploy.nodes.beatrice = {
hostname = "beatrice";
profiles.system = {
sshUser = "root";
user = "root";
path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.beatrice;
};
};
checks = builtins.mapAttrs (system: deployLib: deployLib.deployChecks self.deploy) deploy-rs.lib;
};
}