refactor(unifi): move to utsuho

This commit is contained in:
arcnmx 2024-03-21 08:19:43 -07:00
parent 18f69d3b07
commit a157150956
5 changed files with 19 additions and 13 deletions

View file

@ -10,6 +10,8 @@ in {
services.unifi = { services.unifi = {
enable = mkDefault true; enable = mkDefault true;
unifiPackage = mkDefault pkgs.unifi8; unifiPackage = mkDefault pkgs.unifi8;
#seems to be *much* harder to compile so not going with this for now...
#mongodbPackage = mkDefault pkgs.mongodb-5_0;
}; };
networking.firewall.interfaces.local = mkIf cfg.enable { networking.firewall.interfaces.local = mkIf cfg.enable {
@ -34,4 +36,9 @@ in {
users.unifi.uid = 990; users.unifi.uid = 990;
groups.unifi.gid = 990; groups.unifi.gid = 990;
}; };
systemd.services.unifi = mkIf cfg.enable {
serviceConfig.BindPaths = [
"/mnt/shared/unifi:/var/lib/unifi"
];
};
} }

View file

@ -9,10 +9,12 @@
keycloak = access.nixosFor "keycloak"; keycloak = access.nixosFor "keycloak";
mediabox = access.nixosFor "mediabox"; mediabox = access.nixosFor "mediabox";
tei = access.nixosFor "tei"; tei = access.nixosFor "tei";
utsuho = access.nixosFor "utsuho";
inherit (mediabox.services) plex; inherit (mediabox.services) plex;
inherit (keycloak.services) vouch-proxy; inherit (keycloak.services) vouch-proxy;
inherit (tei.services) home-assistant zigbee2mqtt; inherit (tei.services) home-assistant zigbee2mqtt;
inherit (config.services) nginx tailscale; inherit (utsuho.services) unifi;
inherit (config.services) nginx;
in { in {
imports = let imports = let
inherit (meta) nixos; inherit (meta) nixos;
@ -53,15 +55,16 @@ in {
}; };
services.cloudflared = let services.cloudflared = let
inherit (nginx) virtualHosts; inherit (nginx) virtualHosts defaultHTTPListenPort;
tunnelId = "964121e3-b3a9-4cc1-8480-954c4728b604"; tunnelId = "964121e3-b3a9-4cc1-8480-954c4728b604";
localNginx = "http://localhost:${toString defaultHTTPListenPort}";
in { in {
tunnels.${tunnelId} = { tunnels.${tunnelId} = {
default = "http_status:404"; default = "http_status:404";
credentialsFile = config.sops.secrets.cloudflared-tunnel-hakurei.path; credentialsFile = config.sops.secrets.cloudflared-tunnel-hakurei.path;
ingress = { ingress = {
${virtualHosts.prox.serverName}.service = "http://localhost"; ${virtualHosts.prox.serverName}.service = localNginx;
${virtualHosts.gensokyoZone.serverName}.service = "http://localhost"; ${virtualHosts.gensokyoZone.serverName}.service = localNginx;
}; };
}; };
}; };
@ -191,8 +194,8 @@ in {
access.vouch = assert vouch-proxy.enable; { access.vouch = assert vouch-proxy.enable; {
url = "http://${keycloak.lib.access.hostnameForNetwork.local}:${toString vouch-proxy.settings.vouch.port}"; url = "http://${keycloak.lib.access.hostnameForNetwork.local}:${toString vouch-proxy.settings.vouch.port}";
}; };
access.unifi = { access.unifi = assert unifi.enable; {
host = tei.lib.access.hostnameForNetwork.local; host = utsuho.lib.access.hostnameForNetwork.local;
}; };
access.freeipa = { access.freeipa = {
host = "idp.local.${config.networking.domain}"; host = "idp.local.${config.networking.domain}";

View file

@ -6,7 +6,6 @@
"/rpool/shared/mosquitto mnt/shared/mosquitto none bind,optional,create=dir", "/rpool/shared/mosquitto mnt/shared/mosquitto none bind,optional,create=dir",
"/rpool/shared/hass mnt/shared/hass none bind,optional,create=dir", "/rpool/shared/hass mnt/shared/hass none bind,optional,create=dir",
"/rpool/shared/postgresql mnt/shared/postgresql none bind,optional,create=dir", "/rpool/shared/postgresql mnt/shared/postgresql none bind,optional,create=dir",
"/rpool/shared/unifi mnt/shared/unifi none bind,optional,create=dir",
"/dev/ttyZigbee dev/ttyZigbee none bind,optional,create=file", "/dev/ttyZigbee dev/ttyZigbee none bind,optional,create=file",
"/dev/net/tun dev/net/tun none bind,optional,create=file" "/dev/net/tun dev/net/tun none bind,optional,create=file"
], ],

View file

@ -17,8 +17,6 @@ in {
nixos.postgres nixos.postgres
nixos.nginx nixos.nginx
nixos.access.zigbee2mqtt nixos.access.zigbee2mqtt
nixos.access.unifi
nixos.unifi
nixos.mosquitto nixos.mosquitto
nixos.home-assistant nixos.home-assistant
nixos.zigbee2mqtt nixos.zigbee2mqtt

View file

@ -11,16 +11,18 @@ in {
nixos.cloudflared nixos.cloudflared
nixos.nginx nixos.nginx
nixos.access.unifi nixos.access.unifi
nixos.unifi
]; ];
services.cloudflared = let services.cloudflared = let
tunnelId = "28bcd3fc-3467-4997-806b-546ba9995028"; tunnelId = "28bcd3fc-3467-4997-806b-546ba9995028";
inherit (config.services) unifi;
in { in {
tunnels.${tunnelId} = { tunnels.${tunnelId} = {
default = "http_status:404"; default = "http_status:404";
credentialsFile = config.sops.secrets.cloudflared-tunnel-utsuho.path; credentialsFile = config.sops.secrets.cloudflared-tunnel-utsuho.path;
ingress = { ingress = {
${virtualHosts.unifi.serverName} = { ${virtualHosts.unifi.serverName} = assert unifi.enable; {
service = "http://localhost"; service = "http://localhost";
}; };
}; };
@ -28,9 +30,6 @@ in {
}; };
services.nginx = { services.nginx = {
access.unifi = {
host = tei.lib.access.hostnameForNetwork.local;
};
virtualHosts = { virtualHosts = {
unifi.proxied.enable = "cloudflared"; unifi.proxied.enable = "cloudflared";
}; };