2024-07-13 05:23:36 -05:00
|
|
|
{ lib, config, ... }:
|
|
|
|
with lib;
|
|
|
|
let
|
|
|
|
app = "unifi";
|
2024-08-02 22:33:57 -05:00
|
|
|
# renovate: depName=goofball222/unifi datasource=github-releases
|
2024-10-14 09:31:53 -05:00
|
|
|
version = "8.5.6";
|
2024-07-13 05:23:36 -05:00
|
|
|
cfg = config.mySystem.services.${app};
|
|
|
|
appFolder = "/eru/containers/volumes/${app}";
|
|
|
|
# persistentFolder = "${config.mySystem.persistentFolder}/var/lib/${appFolder}";
|
|
|
|
in
|
|
|
|
{
|
|
|
|
options.mySystem.services.${app} = {
|
|
|
|
enable = mkEnableOption "${app}";
|
|
|
|
};
|
|
|
|
|
|
|
|
config = mkIf cfg.enable {
|
2024-09-01 16:39:07 -05:00
|
|
|
networking.firewall.interfaces = {
|
|
|
|
enp130s0f0 = {
|
|
|
|
allowedTCPPorts = [ 8443 ];
|
|
|
|
};
|
|
|
|
podman0 = {
|
|
|
|
allowedTCPPorts = [ 8080 8443 8880 8843 ];
|
|
|
|
allowedUDPPorts = [ 3478 ];
|
|
|
|
};
|
2024-07-14 06:42:18 -05:00
|
|
|
};
|
2024-07-13 05:23:36 -05:00
|
|
|
virtualisation.oci-containers.containers.${app} = {
|
2024-08-02 11:35:11 -05:00
|
|
|
image = "ghcr.io/goofball222/unifi:${version}";
|
2024-07-13 05:23:36 -05:00
|
|
|
autoStart = true;
|
|
|
|
ports = [
|
|
|
|
"3478:3478/udp" # STUN
|
|
|
|
"8080:8080" # inform controller
|
|
|
|
"8443:8443" # https
|
|
|
|
"8880:8880" # HTTP portal redirect
|
|
|
|
"8843:8843" # HTTPS portal redirect
|
|
|
|
];
|
|
|
|
environment = {
|
|
|
|
TZ = "America/Chicago";
|
|
|
|
RUNAS_UID0 = "false";
|
|
|
|
PGID = "102";
|
|
|
|
PUID = "999";
|
|
|
|
};
|
|
|
|
volumes = [
|
|
|
|
"${appFolder}/cert:/usr/lib/unifi/cert"
|
|
|
|
"${appFolder}/data:/usr/lib/unifi/data"
|
|
|
|
"${appFolder}/logs:/usr/lib/unifi/logs"
|
|
|
|
];
|
|
|
|
};
|
|
|
|
};
|
|
|
|
}
|