refactor: avahi

This commit is contained in:
arcnmx 2024-01-14 13:33:40 -08:00
parent 42bf19cf47
commit 56e8011300
6 changed files with 36 additions and 12 deletions

View file

@ -7,6 +7,11 @@ NF_HOST=${NF_HOST-tewi}
NIXOS_TOPLEVEL=network.nodes.$NF_HOST.system.build.toplevel
NF_ADDR=${NF_ADDR-${NF_HOST}.local}
if [[ $NF_ADDR = tewi.local ]]; then
# work around homekit namespace clash
NF_ADDR=tewi.local.cutie.moe
fi
if [[ $# -eq 0 ]]; then
set -- ""
fi

View file

@ -8,6 +8,9 @@
inherit (config.networking) hostName;
in {
options.networking.access = with lib.types; {
static.ipv4 = mkOption {
type = str;
};
hostnameForNetwork = mkOption {
type = attrsOf str;
default = { };

19
nixos/avahi.nix Normal file
View file

@ -0,0 +1,19 @@
{
config,
lib,
...
}: let
inherit (lib.modules) mkDefault;
in {
services.avahi = {
enable = mkDefault true;
ipv6 = mkDefault config.networking.enableIPv6;
publish = {
enable = mkDefault true;
domain = mkDefault true;
addresses = mkDefault true;
userServices = mkDefault true;
};
wideArea = mkDefault false;
};
}

View file

@ -86,7 +86,7 @@ in {
homekit = [ {
name = "Tewi";
port = 21063;
ip_address = "10.1.1.38";
ip_address = config.networking.access.static.ipv4;
filter = let
inherit (cfg.config) google_assistant;
in {

View file

@ -2,22 +2,18 @@
lib,
config,
options,
meta,
...
}: let
inherit (lib.modules) mkIf mkDefault;
in {
imports = let
inherit (meta) nixos;
in [
nixos.avahi
];
services.resolved.enable = true;
services.avahi = {
enable = mkDefault true;
ipv6 = mkDefault config.networking.enableIPv6;
publish = {
enable = mkDefault true;
domain = mkDefault true;
addresses = mkDefault true;
userServices = mkDefault true;
};
wideArea = mkDefault false;
};
systemd.services.avahi-daemon = mkIf (options ? proxmoxLXC && config.services.avahi.enable) {
serviceConfig.ExecStartPre = mkIf config.services.resolved.enable [
"+-${config.systemd.package}/bin/resolvectl mdns eth0 yes"

View file

@ -24,6 +24,7 @@
];
sops.defaultSopsFile = ./secrets.yaml;
networking.access.static.ipv4 = "10.1.1.39";
system.stateVersion = "23.11";
}