Home Assistant on TrueNAS not visible in local network (no "Host Network" option available)

Hi everyone,
I’ve run into an issue with my Home Assistant setup on TrueNAS SCALE, and I could really use some advice from people who’ve dealt with networking inside TrueNAS apps or Docker.

:gear: My Setup

  • TrueNAS SCALE (latest version)
  • Home Assistant installed as an App (from the TrueNAS catalog)
  • iPhone with HomeKit integration attempt
  • Home Assistant is running fine locally on TrueNAS — I can open the UI from the TrueNAS host IP and port 8123.
  • Guest Wi-Fi is disabled on my router.
  • AP isolation is OFF, so devices should see each other.
  • My iPhone can ping the TrueNAS IP directly.

:jigsaw: The Problem

Home Assistant is not discoverable from my iPhone / Home app when trying to add it via HomeKit Bridge integration.

After some digging, I found that:

  • HomeKit uses Bonjour/mDNS (UDP 5353) and sometimes SSDP multicast. These protocols often fail if the container uses NAT or bridge networking instead of host mode. It looks like the Home Assistant app in TrueNAS is running inside an internal Docker network, not directly on my LAN.

Normally, the fix would be to enable “Host network mode”, which exposes the container directly to the LAN.
However:

  • The official TrueNAS UI doesn’t provide a “Host Network” checkbox for built-in apps.
    I found that this option does exist for Custom Apps, so I converted Home Assistant into a Custom App to gain access to its YAML configuration.
    Unfortunately, even after conversion, I couldn’t make it work — I tried adding network_mode: host manually in the YAML under the home-assistant service, but TrueNAS either ignored it or refused to deploy the app.

:speech_balloon: What I Need Help With

  1. Is there a proper or supported way to run Home Assistant in host network mode on TrueNAS SCALE?
  2. Does TrueNAS actually support network_mode: host for Custom Apps, or is this feature limited internally?
  3. If it’s not supported — is there any workaround (like manual Docker deployment or mDNS bridge) that can make HA discoverable for HomeKit and local integrations?

Everything works perfectly — except HomeKit and local discovery.
I just need Home Assistant to be visible in my local network as if it were running directly on a physical device, not isolated behind TrueNAS Docker networking.

Thanks in advance for any help!

You have to create a bridge network in the TrueNAS for your network card even if it initially only has one member your physical card

Bump, I don’t have a solution for this either. Been trying to avoid the VM route for HASS and bridging it to Homekit. Commenting to come back to this thread every once in a while to see if someone has a solution.

How did you convert the HA app to a custom app, btw? I’m gonna play around with the YAML files and see if I can’t get something to work.

I got the Truenas native Home Assistant working and auto discovering devices on my network!

Quick Steps.

  1. Setup a MacVlan for your system.
  2. Do not use the Host IPs. Use the Networks area.
  3. mDNS must be working on your network.

Longer steps:
MacVlan Setup.

  1. For MacVlan setup follow along with with video. He will walk you through setting up the two parts of the MacVlan setup using Portainer.
    https://www.youtube.com/watch?v=4741-YR31fM

Once the MacVlan is setup, you can then add it to your Home Assistant config.

  1. Click on your Home Assistant in Truenas and Click Edit.
  2. Delete the Host IPs entry
  3. Add a Network (Screenshot at bottom of page)
    a. Set the Name to the MacVlan name you created in portainer.
    b. Select your Home Assistant container
    c. Set your IP address.

Make sure mDNS is working on your network. If you are using default settings for your network, then everything should work fine.

Hope this helps someone.

Joel

I also created my own custom docker apps for Piper and Whisper. Here are the YAMLs.

Piper:
networks:
MyMacVlan:
external: True
services:
wyoming-piper:
command: '--voice en_US-hfc_female-medium'
environment:
NVIDIA_VISIBLE_DEVICES: void
TZ: America/Chicago
group_add:
- 568
image: rhasspy/wyoming-piper:latest
networks:
MyMacVlan:
ipv4_address: 192.168.21.129
platform: linux/amd64
ports:
- host_ip: 0.0.0.0
mode: ingress
protocol: tcp
published: 10200
target: 10200
privileged: False
pull_policy: missing
restart: 'no'
stdin_open: False
tty: False
volumes:
- bind:
create_host_path: False
propagation: rprivate
read_only: False
source: /mnt/.ix-apps/app_mounts/wyoming-piper/storage_entry
target: /data
type: bind
volumes: {}
x-action-required: False

Whisper:
networks:
MyMacVlan:
external: True
services:
wyoming-whisper:
devices:
- /dev/dri:/dev/dri
environment:
'--language': en
'--model': tiny-int8
NVIDIA_VISIBLE_DEVICES: void
TZ: America/Chicago
group_add:
- 44
- 107
- 568
hostname: whisper.randjhome.com
image: rhasspy/wyoming-whisper:latest
networks:
MyMacVlan:
ipv4_address: 192.168.21.130
platform: linux/amd64
ports:
- mode: ingress
protocol: tcp
published: 10300
target: 10300
privileged: False
pull_policy: missing
restart: 'no'
stdin_open: False
tty: False
volumes:
- bind:
create_host_path: False
propagation: rprivate
read_only: False
source: /mnt/.ix-apps/app_mounts/wyoming-whisper/storage_entry
target: /data
type: bind
volumes: {}
x-action-required: False

If youMUST use virtualization is better setupis to run bothTruNAS and Home Assitant as clients under ProxMox. Doing that is nearly trivially easy and hase near native perfromance

You do have to decide “who does ZFS?” I would say that depends on the size of the data you store on Truenas..

Home Assistant is such a critical paiece os software that it really does belong on its own hardware. and even then to have a nearby backup. When you get up to use the bathroom and 2:00am and none of the light work or when you are outdoors and the doors will not unlock, then you which you had spent the time to isolat HA and put it on an UPS

A trick custom install under TrueNAS will be hard to replacteis the CPU catches fire and you have to rebuild is all by candle light. With Proxmox you can setup automatic fail over where the virtual images is loaded to a hot spare or you can do it manuly. You basoically just say “run that image on that server and the Home assistant boots up from thje last backup. You can do daily backups

Point is that you should NOT use anything but an easy-to-do install and in the most univious way because it will be you who is there in 3 or 5 years trying to remeber what you did at 2:00am while your wife is upset that the light switches don’t work.