47 lines
1.1 KiB
Nix
47 lines
1.1 KiB
Nix
|
{ config, lib, ... }:
|
||
|
{
|
||
|
options.snowflake.services.homebridge.enable = lib.mkEnableOption "Enable homebridge service for Apple HomeKit";
|
||
|
|
||
|
config = lib.mkIf config.snowflake.services.homebridge.enable {
|
||
|
networking.firewall = lib.mkIf config.networking.firewall.enable {
|
||
|
allowedTCPPorts = [
|
||
|
5353
|
||
|
8581
|
||
|
51241
|
||
|
];
|
||
|
allowedTCPPortRanges = [
|
||
|
{
|
||
|
from = 52100;
|
||
|
to = 52150;
|
||
|
}
|
||
|
];
|
||
|
allowedUDPPorts = [
|
||
|
5353
|
||
|
8581
|
||
|
51241
|
||
|
];
|
||
|
allowedUDPPortRanges = [
|
||
|
{
|
||
|
from = 52100;
|
||
|
to = 52150;
|
||
|
}
|
||
|
];
|
||
|
};
|
||
|
|
||
|
virtualisation.oci-containers.containers.homebridge = {
|
||
|
image = "docker.io/homebridge/homebridge:latest";
|
||
|
volumes = [ "/var/lib/homebridge:/homebridge" ];
|
||
|
environment = {
|
||
|
TZ = config.time.timeZone;
|
||
|
};
|
||
|
ports = [ "8581:8581" ];
|
||
|
extraOptions = [
|
||
|
"--privileged"
|
||
|
"--net=host"
|
||
|
# For podman
|
||
|
"label=io.containers.autoupdate=registry"
|
||
|
];
|
||
|
};
|
||
|
};
|
||
|
}
|