big restructure, wrappers

This commit is contained in:
2025-10-09 11:36:06 -05:00
parent 15b31a51ec
commit 8194729e4e
10 changed files with 486 additions and 71 deletions

View File

@@ -1,17 +1,48 @@
{ pkgs, config, lib, ... }:
let
cfg = config.modules.homelab;
in
{
options.modules.homelab = {
enable = lib.mkEnableOption "enable homelab services and configuration"
media_user = lib.mkOption = {
default = "media";
type = lib.types.str;
description = "user for media file permissions";
};
media_group = lib.mkOption = {
default = "media";
type = lib.types.str;
description = "group for media file permissions";
};
tz = lib.mkOption = {
default = "America/Chicago";
type = lib.types.str;
description = "set timezone";
};
base_domain = lib.mkOption = {
default = "snowbelle.lan";
type = lib.types.str;
description = "base domain used for reverse proxy";
};
};
imports = [
./zfs.nix
./smb.nix
./nfs.nix
./nginx-proxy.nix
./services/default.nix
./services
];
modules.homelab.zfs.enable = lib.mkDefault false;
modules.homelab.smb.enable = lib.mkDefault false;
modules.homelab.nfs.enable = lib.mkDefault false;
modules.homelab.nginx-proxy.enable = lib.mkDefault false;
config = lib.mkIf cfg.enable {
users = {
groups.${cfg.group} = {
gid = 700;
};
users.${cfg.user} = {
uid = 700;
isSystemUser = true;
group = cfg.group;
};
};
}
}