nix/hosts/default.nix
2025-10-07 22:52:54 +02:00

270 lines
5.2 KiB
Nix

{
nixpkgs,
nixpkgs-unstable,
nixos-hardware,
agenix,
home-manager,
lix-module,
authentik-nix,
self,
...
}:
let
agenixOverlay = final: prev: { agenix = agenix.packages.${prev.system}.default; };
customOverlays = (
final: prev: {
}
);
pkgs =
system:
import nixpkgs {
inherit system;
overlays = [
agenixOverlay
customOverlays
];
config.allowUnfree = true;
};
pkgs-unstable =
system:
import nixpkgs-unstable {
inherit system;
overlays = [
agenixOverlay
customOverlays
];
config.allowUnfree = true;
};
nodeBaseModules = {
imports = [
# lix-module.nixosModules.default
authentik-nix.nixosModules.default
../modules
];
};
proxmoxModule = {
imports = [
"${nixpkgs}/nixos/modules/virtualisation/proxmox-lxc.nix"
../modules/virtualisation/proxmox.nix
];
};
in
{
# deadbeef = nixpkgs.lib.nixosSystem {
# pkgs = pkgs "x86_64-linux";
# modules = [
# nodeBaseModules
# ./deadbeef
# nixos-hardware.nixosModules.dell-xps-15-9560
# home-manager.nixosModules.home-manager
# agenix.nixosModules.default
# ];
# # specialArgs = { };
# };
# baseLXC = nixpkgs.lib.nixosSystem {
# pkgs = pkgs "x86_64-linux";
# modules = [
# nodeBaseModules
# proxmoxModule
# ./base-lxc.nix
# agenix.nixosModules.default
# ];
# specialArgs = {
# inherit self;
# };
# };
arr = nixpkgs.lib.nixosSystem {
pkgs = pkgs "x86_64-linux";
modules = [
nodeBaseModules
proxmoxModule
./arr
agenix.nixosModules.default
];
# specialArgs = { };
};
caddy = nixpkgs.lib.nixosSystem {
pkgs = pkgs "x86_64-linux";
modules = [
nodeBaseModules
proxmoxModule
./caddy
agenix.nixosModules.default
];
# specialArgs = { };
};
metrics = nixpkgs.lib.nixosSystem {
pkgs = pkgs "x86_64-linux";
modules = [
nodeBaseModules
proxmoxModule
./metrics
agenix.nixosModules.default
];
# specialArgs = { };
};
nextcloud = nixpkgs.lib.nixosSystem {
pkgs = pkgs "x86_64-linux";
modules = [
nodeBaseModules
proxmoxModule
./nextcloud
agenix.nixosModules.default
];
# specialArgs = { };
};
plex = nixpkgs.lib.nixosSystem {
pkgs = pkgs "x86_64-linux";
modules = [
nodeBaseModules
proxmoxModule
./plex
agenix.nixosModules.default
];
# specialArgs = { };
};
vaultwarden = nixpkgs.lib.nixosSystem {
pkgs = pkgs "x86_64-linux";
modules = [
nodeBaseModules
proxmoxModule
./vaultwarden
agenix.nixosModules.default
];
# specialArgs = { };
};
portainer = nixpkgs.lib.nixosSystem {
pkgs = pkgs "x86_64-linux";
modules = [
nodeBaseModules
proxmoxModule
./portainer
agenix.nixosModules.default
];
# specialArgs = { };
};
authentik = nixpkgs-unstable.lib.nixosSystem {
pkgs = pkgs-unstable "x86_64-linux";
modules = [
nodeBaseModules
proxmoxModule
./authentik
agenix.nixosModules.default
];
# specialArgs = { };
};
colmena = nixpkgs.lib.nixosSystem {
pkgs = pkgs "x86_64-linux";
modules = [
nodeBaseModules
proxmoxModule
./colmena
agenix.nixosModules.default
];
# specialArgs = { };
};
dns01 = nixpkgs.lib.nixosSystem {
pkgs = pkgs "x86_64-linux";
modules = [
nodeBaseModules
proxmoxModule
./dns/dns-01.nix
agenix.nixosModules.default
];
# specialArgs = { };
};
dns02 = nixpkgs.lib.nixosSystem {
pkgs = pkgs "x86_64-linux";
modules = [
nodeBaseModules
proxmoxModule
./dns/dns-02.nix
agenix.nixosModules.default
];
# specialArgs = { };
};
shadowsocks = nixpkgs.lib.nixosSystem {
pkgs = pkgs "x86_64-linux";
modules = [
nodeBaseModules
proxmoxModule
./shadowsocks
agenix.nixosModules.default
];
# specialArgs = { };
};
immich = nixpkgs.lib.nixosSystem {
pkgs = pkgs "x86_64-linux";
modules = [
nodeBaseModules
proxmoxModule
./immich
agenix.nixosModules.default
];
# specialArgs = { };
};
firefly-iii = nixpkgs.lib.nixosSystem {
pkgs = pkgs "x86_64-linux";
modules = [
nodeBaseModules
proxmoxModule
./firefly-iii
agenix.nixosModules.default
];
# specialArgs = { };
};
paperless = nixpkgs-unstable.lib.nixosSystem {
pkgs = pkgs-unstable "x86_64-linux";
modules = [
nodeBaseModules
proxmoxModule
./paperless
agenix.nixosModules.default
];
# specialArgs = { };
};
zigbee2mqtt = nixpkgs-unstable.lib.nixosSystem {
pkgs = pkgs-unstable "x86_64-linux";
modules = [
nodeBaseModules
proxmoxModule
./zigbee2mqtt
agenix.nixosModules.default
];
# specialArgs = { };
};
forgejo = nixpkgs.lib.nixosSystem {
pkgs = pkgs "x86_64-linux";
modules = [
nodeBaseModules
proxmoxModule
./forgejo
agenix.nixosModules.default
];
# specialArgs = { };
};
}