nix/hosts/default.nix
2024-12-24 15:09:59 +01:00

146 lines
2.8 KiB
Nix

{
nixpkgs,
nixpkgs-unstable,
nixos-hardware,
agenix,
home-manager,
lix-module,
self,
...
}:
let
agenixOverlay = final: prev: { agenix = agenix.packages.${prev.system}.default; };
customOverlays = (
final: prev: {
# caddy-custom = prev.callPackage ../overlay/caddy-custom.nix { };
jellyseerr = nixpkgs-unstable.legacyPackages."x86_64-linux".jellyseerr;
}
);
pkgs =
system:
import nixpkgs {
inherit system;
overlays = [
agenixOverlay
customOverlays
];
config.allowUnfree = true;
# Necessary for Sonarr on arr host
config.permittedInsecurePackages = [
"aspnetcore-runtime-6.0.36"
"aspnetcore-runtime-wrapped-6.0.36"
"dotnet-sdk-6.0.428"
"dotnet-sdk-wrapped-6.0.428"
];
};
myModule = {
imports = [
lix-module.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 = [
myModule
./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 = [
myModule
proxmoxModule
./base-lxc.nix
agenix.nixosModules.default
];
specialArgs = {
inherit self;
};
};
arr = nixpkgs.lib.nixosSystem {
pkgs = pkgs "x86_64-linux";
modules = [
myModule
proxmoxModule
./arr
agenix.nixosModules.default
];
# specialArgs = { };
};
caddy = nixpkgs.lib.nixosSystem {
pkgs = pkgs "x86_64-linux";
modules = [
myModule
proxmoxModule
./caddy
agenix.nixosModules.default
];
# specialArgs = { };
};
metrics = nixpkgs.lib.nixosSystem {
pkgs = pkgs "x86_64-linux";
modules = [
myModule
proxmoxModule
./metrics
agenix.nixosModules.default
];
# specialArgs = { };
};
nextcloud = nixpkgs.lib.nixosSystem {
pkgs = pkgs "x86_64-linux";
modules = [
myModule
proxmoxModule
./nextcloud
agenix.nixosModules.default
];
# specialArgs = { };
};
plex = nixpkgs.lib.nixosSystem {
pkgs = pkgs "x86_64-linux";
modules = [
myModule
proxmoxModule
./plex
agenix.nixosModules.default
];
# specialArgs = { };
};
vaultwarden = nixpkgs.lib.nixosSystem {
pkgs = pkgs "x86_64-linux";
modules = [
myModule
proxmoxModule
./vaultwarden
agenix.nixosModules.default
];
# specialArgs = { };
};
}