nix/hosts/hosts.nix

183 lines
2.4 KiB
Nix

# Single source of truth for all host definitions
# Each host specifies its module path, deployment tags, and optional flags
{
arr = {
module = ./arr;
tags = [
"lxc"
"bacco"
"arr"
];
};
authentik = {
module = ./authentik;
unstable = true;
tags = [
"lxc"
"bacco"
"auth"
];
};
caddy = {
module = ./caddy;
tags = [
"lxc"
"bacco"
"arr"
"auth"
"metrics"
"nextcloud"
"portainer"
"vaultwarden"
"immich"
"firefly-iii"
"paperless"
];
};
colmena = {
module = ./colmena;
tags = [
"lxc"
"bacco"
"colmena"
];
};
dns01 = {
module = ./dns/dns-01.nix;
tags = [
"lxc"
"bacco"
"dns"
];
};
dns02 = {
module = ./dns/dns-02.nix;
tags = [
"lxc"
"bacco"
"dns"
];
};
firefly-iii = {
module = ./firefly-iii;
tags = [
"lxc"
"bacco"
"firefly-iii"
];
};
forgejo = {
module = ./forgejo;
tags = [
"lxc"
"bacco"
"forgejo"
];
};
immich = {
module = ./immich;
tags = [
"lxc"
"bacco"
"immich"
];
};
metrics = {
module = ./metrics;
tags = [
"lxc"
"bacco"
"metrics"
];
};
n8n = {
module = ./n8n;
tags = [
"lxc"
"bacco"
"n8n"
];
};
nextcloud = {
module = ./nextcloud;
tags = [
"lxc"
"bacco"
"nextcloud"
];
};
paperless = {
module = ./paperless;
unstable = true;
tags = [
"lxc"
"bacco"
"paperless"
];
};
plex = {
module = ./plex;
tags = [
"lxc"
"node"
];
};
portainer = {
module = ./portainer;
tags = [
"lxc"
"bacco"
"portainer"
];
};
shadowsocks = {
module = ./shadowsocks;
tags = [
"lxc"
"bacco"
"shadowsocks"
];
};
vaultwarden = {
module = ./vaultwarden;
tags = [
"lxc"
"bacco"
"vaultwarden"
];
};
zigbee2mqtt = {
module = ./zigbee2mqtt;
unstable = true;
tags = [
"lxc"
"bacco"
"zigbee2mqtt"
];
};
# Special hosts (non-LXC or local deployment)
# deadbeef = {
# module = ./deadbeef;
# type = "workstation"; # Not an LXC
# localDeployment = true;
# tags = [ "local" ];
# };
}