mirror of
https://github.com/gensokyo-zone/infrastructure.git
synced 2026-02-09 12:29:19 -08:00
refactor(unifi): move to utsuho
This commit is contained in:
parent
18f69d3b07
commit
a157150956
5 changed files with 19 additions and 13 deletions
|
|
@ -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"
|
||||||
|
];
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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}";
|
||||||
|
|
|
||||||
|
|
@ -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"
|
||||||
],
|
],
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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";
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue