{ lib, ... }: let hardwarePath = ./hardware-configuration.nix; in { imports = [ ../../profiles/server-base.nix ../../modules/control.nix ../../modules/services/homeassistant.nix ../../modules/services/jellyfin.nix ../../modules/services/gitea.nix ../../modules/services/navidrome.nix ../../modules/services/vaultwarden.nix ../../modules/services/nextcloud.nix ../../modules/services/k3s.nix ] ++ lib.optionals (builtins.pathExists hardwarePath) [ hardwarePath ]; networking.hostName = "nixos"; # Bootloader defaults; adjust per host. boot.loader.grub.enable = true; boot.loader.grub.device = "/dev/sda"; boot.loader.grub.useOSProber = true; # Central service switchboard. control = { homeassistant.enable = true; jellyfin.enable = false; gitea.enable = false; navidrome = { enable = false; musicFolder = "/mnt/seagate8tb/navidrome/music"; dataFolder = "/mnt/seagate8tb/navidrome/data"; port = 4533; openFirewall = true; }; vaultwarden = { enable = false; domain = "http://vaultwarden.local"; port = 8222; openFirewall = true; }; nextcloud = { enable = false; hostName = "nextcloud.local"; adminPassFile = null; openFirewall = true; }; k3s = { enable = true; role = "server"; clusterInit = true; tokenFile = null; serverAddr = null; openFirewall = true; }; }; }