nix-config/flake.nix

186 lines
5 KiB
Nix

{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
home-manager = {
url = "github:nix-community/home-manager/release-24.11";
inputs.nixpkgs.follows = "nixpkgs";
};
agenix = {
url = "github:ryantm/agenix";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs =
{ self
, nixpkgs
, nixpkgs-unstable
, home-manager
, agenix
, ...
} @ inputs:
let
inherit (self) outputs;
in
{
overlays = import ./overlays { inherit inputs; };
nixosConfigurations = {
woodpecker = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
# Base configuration and modules.
./modules/bspwm
./modules/fstrim
./modules/libvirtd
./modules/nvidia
./modules/pipewire
./modules/steam
./modules/wireshark
# System configuration.
./hosts/workstations
./hosts/workstations/woodpecker
# User configuration.
./users/tdback
home-manager.nixosModules.home-manager {
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
users.tdback = import ./users/tdback/dots.nix;
extraSpecialArgs = { inherit inputs; };
};
}
];
specialArgs = { inherit inputs outputs; };
};
sparrow = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
# Base configuration and modules.
./modules/bspwm
./modules/pipewire
./modules/vpn
# System configuration.
./hosts/workstations
./hosts/workstations/sparrow
# User configuration.
./users/tdback
home-manager.nixosModules.home-manager {
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
users.tdback = import ./users/tdback/dots.nix;
extraSpecialArgs = { inherit inputs; };
};
}
];
specialArgs = { inherit inputs outputs; };
};
raindog = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
# Base configuration and modules.
./containers/pihole
./modules/motd
./modules/podman
./modules/searx
./modules/ssh
# System configuration and secrets.
./hosts/servers
./hosts/servers/raindog
agenix.nixosModules.default
# User configuration.
./users/tdback
];
specialArgs = { inherit inputs outputs; };
};
oasis = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
# Base configuration and modules.
./modules/forgejo
./modules/motd
./modules/podman
./modules/proxy
./modules/pushover
./modules/sftpgo
./modules/ssh
./modules/wireguard
./modules/zfs
# System configuration and secrets.
./hosts/servers
./hosts/servers/oasis
agenix.nixosModules.default
# User configuration.
./users/tdback
];
specialArgs = { inherit inputs outputs; };
};
hive = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
# Base configuration and modules.
./modules/fediverse
./modules/mealie
./modules/motd
./modules/proxy
./modules/ssh
./modules/wireguard
# System configuration and secrets.
./hosts/servers
./hosts/servers/hive
agenix.nixosModules.default
# User configuration.
./users/tdback
];
specialArgs = { inherit inputs outputs; };
};
eden = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
# Base configuration and modules.
./containers/freshrss
./containers/jellyfin
./containers/navidrome
./containers/pinchflat
./containers/stirling-pdf
./containers/vaultwarden
./containers/watchtower
./modules/immich
./modules/motd
./modules/podman
./modules/proxy
./modules/pushover
./modules/ssh
./modules/wireguard
./modules/zfs
# System configuration and secrets.
./hosts/servers
./hosts/servers/eden
agenix.nixosModules.default
# User configuration.
./users/tdback
];
specialArgs = { inherit inputs outputs; };
};
};
};
}