mirror of
https://github.com/gensokyo-zone/infrastructure.git
synced 2026-02-09 12:29:19 -08:00
refactor: avahi
This commit is contained in:
parent
42bf19cf47
commit
56e8011300
6 changed files with 36 additions and 12 deletions
|
|
@ -7,6 +7,11 @@ NF_HOST=${NF_HOST-tewi}
|
||||||
NIXOS_TOPLEVEL=network.nodes.$NF_HOST.system.build.toplevel
|
NIXOS_TOPLEVEL=network.nodes.$NF_HOST.system.build.toplevel
|
||||||
NF_ADDR=${NF_ADDR-${NF_HOST}.local}
|
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
|
if [[ $# -eq 0 ]]; then
|
||||||
set -- ""
|
set -- ""
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,9 @@
|
||||||
inherit (config.networking) hostName;
|
inherit (config.networking) hostName;
|
||||||
in {
|
in {
|
||||||
options.networking.access = with lib.types; {
|
options.networking.access = with lib.types; {
|
||||||
|
static.ipv4 = mkOption {
|
||||||
|
type = str;
|
||||||
|
};
|
||||||
hostnameForNetwork = mkOption {
|
hostnameForNetwork = mkOption {
|
||||||
type = attrsOf str;
|
type = attrsOf str;
|
||||||
default = { };
|
default = { };
|
||||||
|
|
|
||||||
19
nixos/avahi.nix
Normal file
19
nixos/avahi.nix
Normal 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;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -86,7 +86,7 @@ in {
|
||||||
homekit = [ {
|
homekit = [ {
|
||||||
name = "Tewi";
|
name = "Tewi";
|
||||||
port = 21063;
|
port = 21063;
|
||||||
ip_address = "10.1.1.38";
|
ip_address = config.networking.access.static.ipv4;
|
||||||
filter = let
|
filter = let
|
||||||
inherit (cfg.config) google_assistant;
|
inherit (cfg.config) google_assistant;
|
||||||
in {
|
in {
|
||||||
|
|
|
||||||
|
|
@ -2,22 +2,18 @@
|
||||||
lib,
|
lib,
|
||||||
config,
|
config,
|
||||||
options,
|
options,
|
||||||
|
meta,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (lib.modules) mkIf mkDefault;
|
inherit (lib.modules) mkIf mkDefault;
|
||||||
in {
|
in {
|
||||||
|
imports = let
|
||||||
|
inherit (meta) nixos;
|
||||||
|
in [
|
||||||
|
nixos.avahi
|
||||||
|
];
|
||||||
|
|
||||||
services.resolved.enable = true;
|
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) {
|
systemd.services.avahi-daemon = mkIf (options ? proxmoxLXC && config.services.avahi.enable) {
|
||||||
serviceConfig.ExecStartPre = mkIf config.services.resolved.enable [
|
serviceConfig.ExecStartPre = mkIf config.services.resolved.enable [
|
||||||
"+-${config.systemd.package}/bin/resolvectl mdns eth0 yes"
|
"+-${config.systemd.package}/bin/resolvectl mdns eth0 yes"
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,7 @@
|
||||||
];
|
];
|
||||||
|
|
||||||
sops.defaultSopsFile = ./secrets.yaml;
|
sops.defaultSopsFile = ./secrets.yaml;
|
||||||
|
networking.access.static.ipv4 = "10.1.1.39";
|
||||||
|
|
||||||
system.stateVersion = "23.11";
|
system.stateVersion = "23.11";
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue