From a4c50351f5d55438a102d48c63dcbb62f9ef5e8d Mon Sep 17 00:00:00 2001 From: "Henry J. Webster" Date: Tue, 4 Aug 2026 17:10:10 -0500 Subject: networking: expose Ollama and mDNS on Wi-Fi LAN Serve Ollama on kusanagi's Wi-Fi LAN while removing the blanket tailscale0 firewall trust so tailnet traffic follows explicit host firewall rules instead of inheriting every listening service. Add shared LAN networking for both hosts: allow ping, publish and resolve .local names with Avahi, and scope mDNS to each machine's declared Wi-Fi interface. Assisted-by: OpenAI:gpt-5 --- machines/enzo/default.nix | 1 + machines/kusanagi/default.nix | 8 +++++++- machines/kusanagi/desktop.nix | 7 ------- 3 files changed, 8 insertions(+), 8 deletions(-) (limited to 'machines') diff --git a/machines/enzo/default.nix b/machines/enzo/default.nix index 3246ca3..c243a80 100644 --- a/machines/enzo/default.nix +++ b/machines/enzo/default.nix @@ -16,6 +16,7 @@ ]; networking.hostName = "enzo"; + lanDiscovery.interface = "wlp1s0"; # Set this to the NixOS release the laptop is first installed from, then # leave it. (See the comment in machines/kusanagi/default.nix.) diff --git a/machines/kusanagi/default.nix b/machines/kusanagi/default.nix index 1c8ccb1..867a5eb 100644 --- a/machines/kusanagi/default.nix +++ b/machines/kusanagi/default.nix @@ -1,7 +1,7 @@ # kusanagi — AMD workstation. Everything here is specific to this machine: # ROCm/GPU, the Focusrite Scarlett audio interface, optical-disc archiving, the # NAS mounts, and the Kavita/Immich/Ollama servers. -{ pkgs, ... }: +{ config, pkgs, ... }: { imports = [ @@ -18,6 +18,11 @@ sandbox.owner = "henz"; networking.hostName = "kusanagi"; + lanDiscovery.interface = "wlp8s0"; + + # Ollama is served on the Wi-Fi LAN only. Tailscale remains governed by ACLs + # plus the host firewall because tailscale0 is not a trusted interface. + networking.firewall.interfaces.${config.lanDiscovery.interface}.allowedTCPPorts = [ 11434 ]; # This value determines the NixOS release from which the default # settings for stateful data, like file locations and database versions @@ -219,6 +224,7 @@ services.ollama = { enable = true; package = pkgs.ollama-rocm; + host = "0.0.0.0"; environmentVariables = { # No HIP_VISIBLE_DEVICES / HSA_OVERRIDE_GFX_VERSION: the 7900 XT is # native gfx1100 and discovery excludes the unsupported Raphael iGPU diff --git a/machines/kusanagi/desktop.nix b/machines/kusanagi/desktop.nix index c865844..44b9c81 100644 --- a/machines/kusanagi/desktop.nix +++ b/machines/kusanagi/desktop.nix @@ -22,13 +22,6 @@ drivers = with pkgs; [ gutenprint ]; }; - # mDNS: printer discovery, and resolves kusanagi's *.local NAS names. - services.avahi = { - enable = true; - nssmdns4 = true; - openFirewall = true; - }; - # prevent auto-mounting optical disks services.udisks2.enable = true; -- cgit v1.3