Compare commits

...
3 Commits
Author SHA1 Message Date
blake fe112cb380 wyoming fin 2026-05-01 02:39:04 -05:00
blake d84db54669 wyoming testing start 2026-05-01 02:23:24 -05:00
blake e781ca769b wyoming testing start 2026-05-01 02:22:43 -05:00
3 changed files with 13 additions and 80 deletions
+1
View File
@@ -65,6 +65,7 @@ in
flaresolverr.enable = true; flaresolverr.enable = true;
zigbee2mqtt.enable = true; zigbee2mqtt.enable = true;
mosquitto.enable = true; mosquitto.enable = true;
wyoming.enable = true;
caddy.enable = true; caddy.enable = true;
uptime-kuma.enable = true; uptime-kuma.enable = true;
vaultwarden.enable = true; vaultwarden.enable = true;
+1
View File
@@ -62,6 +62,7 @@ in
./jellyfin ./jellyfin
./arr/flaresolverr ./arr/flaresolverr
./home/mosquitto ./home/mosquitto
./home/wyoming
./uptime-kuma ./uptime-kuma
./tailscale ./tailscale
./ddns ./ddns
+11 -80
View File
@@ -11,53 +11,20 @@ in
enable = lib.mkEnableOption "enables ${service}"; enable = lib.mkEnableOption "enables ${service}";
# set port options # set port options
port = lib.mkOption { faster_whisper_port = lib.mkOption {
type = lib.types.int; type = lib.types.str;
default = 7706; default = "7706";
description = "set port for ${service} (default: ${toString cfg.port}"; description = "set port for ${service} (default: ${toString cfg.port}";
}; };
url = lib.mkOption { piper_port = lib.mkOption {
type = lib.types.str; type = lib.types.str;
default = "z2m.${homelab.base_domain}"; default = "7707";
description = "set domain for ${service}"; description = "set port for ${service} (default: ${toString cfg.port}";
};
data_dir = lib.mkOption {
type = lib.types.str;
default = "/var/lib/${service}";
description = "set data directory for ${service}";
};
ids = lib.mkOption {
type = lib.types.int;
default = cfg.port;
description = "set uid and pid of ${service} user (matches port by default)";
};
backup = lib.mkOption {
type = lib.types.bool;
default = true;
description = "enable backups for ${service}";
};
motd = lib.mkOption {
type = lib.types.nullOr lib.types.str;
default = service;
}; };
}; };
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
# declare ${service} group
users.groups.${service} = { gid = lib.mkForce cfg.ids; };
# declare ${service} user
users.users.${service} = {
description = "${service} server user";
uid = lib.mkForce cfg.ids;
isSystemUser = true;
home = cfg.data_dir;
createHome = true;
group = service;
extraGroups = [];
};
# enable the ${service} service # enable the ${service} service
services.${service} = { services.${service} = {
faster-whisper = { faster-whisper = {
@@ -65,7 +32,7 @@ in
vanessa = { vanessa = {
enable = true; enable = true;
language = "en"; language = "en";
uri = "tcp://0.0.0.0:${cfg.port}"; uri = "tcp://0.0.0.0:${cfg.faster_whisper_port}";
model = "medium"; model = "medium";
device = "auto"; device = "auto";
}; };
@@ -75,52 +42,16 @@ in
servers = { servers = {
vanessa = { vanessa = {
enable = true; enable = true;
uri = "tcp://0.0.0.0:7707"; uri = "tcp://0.0.0.0:${cfg.piper_port}";
voice = "en_US-amy-medium";
}; };
}; };
}; };
}; };
# override umask to make permissions work out
systemd.services.${service}.serviceConfig = {
UMask = lib.mkForce "0007";
User = service;
Group = service;
};
# # open firewall # # open firewall
networking.firewall.allowedTCPPorts = [ cfg.port ]; #networking.firewall.allowedTCPPorts = [ cfg.faster_whisper_port cfg.piper_port ];
networking.firewall.allowedTCPPorts = [ 7706 7707 ];
# add to caddy for reverse proxy
services.caddy.virtualHosts."${cfg.url}" = {
serverAliases = [ "z2m.${homelab.public_domain}" ];
extraConfig = ''
tls ${sec."ssl_blakedheld_crt".path} ${sec."ssl_blakedheld_key".path}
reverse_proxy 127.0.0.1:${toString cfg.port}
'';
};
# add to glance
homelab.glance.links.services = [{
title = service;
url = "https://${cfg.url}";
error-url = "http://${homelab.host_ip}:${toString cfg.port}";
check-url = "http://${homelab.host_ip}:${toString cfg.port}";
icon = "di:${service}"; }];
sops.secrets = {
"mosquitto_passwd.yaml" = {
owner = service;
group = service;
};
};
# add to backups
homelab.backups.baks = {
${service} = { paths = [ cfg.data_dir ]; };
};
}; };
} }