SSD Nodes Learn Hosting plans →
Gidsen Matt ConnorDoor Matt Connor

Tailscale op Home Assistant: veilig toegang van buitenaf

Open je Home Assistant-dashboard en de companion-app onderweg zonder poort op je router. Met de Tailscale-app, Serve, een geldig certificaat en desgewenst je eigen Headscale.

Het korte antwoord

Met Tailscale op Home Assistant open je je dashboard van buitenaf zonder een poort open te zetten op de router van je provider. Je hebt daarvoor de Tailscale-app nodig die op het Home Assistant-apparaat zelf draait, niet de Tailscale-integratie. Zet in die app de optie share_homeassistant op serve. Je dashboard staat dan op een https-adres met een geldig certificaat, en alleen apparaten in je eigen tailnet kunnen dat adres bereiken.

Deze gids loopt die route stap voor stap door. Hij is geschreven voor Home Assistant 2026.10 (uitgebracht op 7 oktober 2026) en versie v0.30.2 van de Tailscale-app (uitgebracht op 8 oktober 2026, met Tailscale 1.104.1). Draai je een andere versie, kijk dan op de Apps-pagina welke versie je hebt. Ken je Tailscale nog niet, lees dan eerst wat Tailscale is en hoe een tailnet werkt. Een tailnet is je eigen privénetwerk van apparaten die met Tailscale zijn verbonden.

Een opmerking over de menu's. Veel Nederlandse gebruikers draaien Home Assistant in het Nederlands. Deze gids gebruikt de Engelse menunamen, omdat de officiële documentatie die ook gebruikt. Zoek in je eigen interface naar het menu op dezelfde plek.

Integratie of app: welke maakt Home Assistant bereikbaar?

Zoek je op "Tailscale Home Assistant", dan vind je twee verschillende dingen met bijna dezelfde naam. Ze doen iets heel anders.

De Tailscale-integratie houdt je tailnet in de gaten. Ze toont per apparaat wanneer het voor het laatst online was, welk Tailscale-IP-adres het heeft, wanneer de sleutel verloopt en of er een update voor de client is. Ze werkt met een API-token dat je in de Tailscale-console maakt onder Settings > Keys, en dat token verloopt na 90 dagen. De documentatie van Home Assistant is hier duidelijk over: "It does not make Home Assistant itself reachable over Tailscale." De integratie maakt Home Assistant dus niet bereikbaar.

De Tailscale-app uit de repository van hassio-addons is wat je zoekt. Die app draait de Tailscale-client op het Home Assistant-apparaat zelf. Pas dan is Home Assistant een apparaat in je tailnet, met een eigen adres. De documentatie van Home Assistant zegt het zo: wil je Home Assistant op afstand bereiken via Tailscale, installeer dan Tailscale op je Home Assistant-apparaat.

De integratie mag je er later bij zetten. Voor toegang van buitenaf heb je haar niet nodig.

Wat heb je nodig voordat je begint?

Apps werken op Home Assistant OS. De installatiepagina van Home Assistant zegt dat een installatie van Home Assistant Container geen toegang heeft tot apps. Draai je Home Assistant als losse Docker-container, dan zie je dit menu niet en zet je Tailscale op de host zelf.

Sinds release 2026.2 (4 februari 2026) heten add-ons in Home Assistant apps. Het menu heet nu Settings > Apps. Lees je een oudere handleiding die naar Settings > Add-ons verwijst, dan bedoelt die hetzelfde menu.

Verder heb je een Tailscale-account nodig, en de Tailscale-client op de telefoon of laptop waarmee je thuis wilt inloggen. Of het gratis plan genoeg is voor je huishouden, lees je in wat het gratis plan van Tailscale wel en niet dekt. Doe dat voordat je het hele gezin toevoegt.

Stap 1: installeer de Tailscale-app en log in

De documentatie van de app beschrijft deze volgorde. Open de app in je eigen Home Assistant via de My Home Assistant-knop op de documentatiepagina. Je kunt ook via Settings > Apps > Install app naar "Tailscale" zoeken. Vind je hem daar niet, gebruik dan de knop.

  1. Klik op Install.
  2. Start de app.
  3. Open het log van de app en controleer of het starten goed ging.
  4. Open de Web UI van de app. Daar koppel je Home Assistant aan je Tailscale-account.
  5. Kijk daarna opnieuw in het log van de app.

De stap in de Web UI werkt niet in elke browser. De documentatie van de app zegt: "Some browsers don't work with this step." Gebruik voor deze stap daarom een desktop of laptop met Chrome, zoals de documentatie aanraadt.

Controleer het resultaat in de Tailscale-console. Op de pagina Machines staat nu een nieuw apparaat voor Home Assistant. Op een laptop in hetzelfde tailnet zie je het ook in de terminal:

tailscale status

In de lijst staat een regel met de naam van je Home Assistant-apparaat. Staat die er niet, dan is het inloggen niet afgerond. Kijk dan in het log van de app en doe stap 4 opnieuw.

Stap 2: waarom moet je key expiry uitzetten?

Elk apparaat in een tailnet heeft een sleutel met een vervaldatum. Voor nieuwe tailnets is dat standaard 180 dagen, volgens de documentatie van Tailscale. De documentatie van de app zegt: "Consider disabling key expiry to avoid losing connection to your Home Assistant device."

De reden is praktisch. Verloopt de sleutel terwijl je op vakantie bent, dan verliest Home Assistant de verbinding met je tailnet. De tunnel was juist je enige weg naar binnen, dus je kunt het dan niet op afstand herstellen.

Zet het zo uit:

  1. Open de pagina Machines in de Tailscale-console.
  2. Open het menu helemaal rechts in de rij van je Home Assistant-apparaat.
  3. Kies Disable Key Expiry.

De sleutels van dat apparaat verlopen daarna niet meer. Doe dit alleen voor het apparaat dat thuis vast staat. Een telefoon die je kunt verliezen laat je gewoon verlopen.

Stap 3: MagicDNS en HTTPS aanzetten

MagicDNS geeft elk apparaat in je tailnet een vaste naam. DNS (domain name system) is het systeem dat een naam omzet in een IP-adres. Met MagicDNS hoef je geen Tailscale-IP-adres te onthouden. Voor een certificaat heb je ook een naam nodig, want een TLS-certificaat (transport layer security) hoort bij een naam en niet bij een los adres.

Open in de Tailscale-console de pagina DNS en doe het volgende:

  1. Kies een naam voor je tailnet.
  2. Zet MagicDNS aan als dat nog niet zo is.
  3. Klik onder HTTPS Certificates op Enable HTTPS.

Let op bij de laatste stap. Tailscale waarschuwt dat de namen van je apparaten en de DNS-naam van je tailnet in een openbaar register komen. Tailscale schrijft: "Do not enable the HTTPS feature if any of your machine names contain sensitive information." Heet je apparaat dus "woning-jansen-hoofdstraat-12", geef het dan eerst een andere naam.

Je Home Assistant krijgt nu een volledige naam in de vorm homeassistant.tail1234.ts.net. Het deel tail1234 is bij jou anders. Gebruik altijd die volledige naam. Het certificaat is voor die naam uitgegeven, dus met een korte naam krijg je geen geldige https-verbinding.

Stap 4: share_homeassistant op serve zetten

De optie share_homeassistant staat standaard uit. Volgens de configuratie van de app kan ze drie waarden hebben: disabled, serve en funnel. Met serve deel je Home Assistant alleen binnen je tailnet. Tailscale regelt dan het certificaat voor je tailnetnaam en vernieuwt het zelf voordat het verloopt.

Zet in de configuratie van de app:

share_homeassistant: serve
share_on_port: 443

share_on_port mag 443, 8443 of 10000 zijn. Laat het op 443 staan, dan hoef je geen poortnummer in het adres te typen. Herstart daarna de app.

Controleer ook dat SSL/TLS in Home Assistant zelf uit staat. Dat is de standaard. Je vindt het onder Settings > System > Network > HTTP server > SSL/TLS. Serve neemt de versleutelde verbinding aan en geeft het verzoek daarna over gewoon HTTP aan Home Assistant door. De documentatie van de app vraagt daarom om SSL/TLS in Home Assistant uit te laten.

Stap 5: waarom blokkeert Home Assistant het verzoek via Serve?

Na stap 4 is er nog één blokkade. De oorzaak staat in de documentatie van de app: "Home Assistant, by default, blocks requests from reverse proxies, like the Tailscale Serve." Een reverse proxy is een programma dat verzoeken aanneemt en doorgeeft aan een andere dienst. Serve is zo'n proxy, en het geeft elk verzoek vanaf 127.0.0.1 aan Home Assistant door. Home Assistant vertrouwt die tussenstap niet zolang je dat niet zelf aangeeft.

In Home Assistant 2026.10 stel je dit in de interface in:

  1. Ga naar Settings > System > Network > HTTP server > Reverse proxy.
  2. Zet Trust X-Forwarded-For aan.
  3. Voeg 127.0.0.1 toe aan Trusted proxies.
  4. Sla op en herstart Home Assistant.

Voor release 2026.8 stond deze instelling in configuration.yaml, in een blok http:. Had je dat blok al, dan heeft Home Assistant het bij de eerste start na de upgrade naar de interface overgezet. Kopieer dus geen oude YAML uit een forum. Kijk in de interface wat er nu staat.

Test vanaf een laptop die in je tailnet zit:

curl -sI https://homeassistant.tail1234.ts.net

Zie je een regel die begint met HTTP/, dan werkt de keten. Krijg je Could not resolve host, dan is MagicDNS niet actief op die laptop of klopt de naam niet. Een certificaatfout betekent meestal dat Enable HTTPS uit stap 3 nog niet aan staat. Opent de browser wel een pagina maar geen inlogscherm, kijk dan in het logboek van Home Assistant en controleer de twee instellingen van deze stap.

Welk adres vul je in de companion-app in?

De companion-app is de officiële Home Assistant-app voor je telefoon. In de verbindingsinstellingen van je server (onder Settings > Companion app) staat het veld External URL. Vul daar het volledige https-adres in, bijvoorbeeld https://homeassistant.tail1234.ts.net.

De telefoon zelf moet in je tailnet zitten. Serve deelt Home Assistant alleen binnen het tailnet, dus de Tailscale-app moet op de telefoon draaien en verbonden zijn. Staat Tailscale op de telefoon uit, dan vindt de companion-app je server niet.

Thuis kun je een Internal URL gebruiken, bijvoorbeeld het lokale adres van Home Assistant. De documentatie van de companion-app legt uit dat de app daarvoor toestemming voor je locatie nodig heeft. Zo weet de app op welk wifinetwerk je zit.

Funnel: je inlogscherm op het open internet

De derde waarde van share_homeassistant is funnel. Met Funnel is Home Assistant bereikbaar "even from the wider internet using your Tailscale domain", schrijft de documentatie van de app. Ook een apparaat zonder Tailscale kan het adres dan openen.

Wees eerlijk tegen jezelf over wat dat betekent. Met Funnel staat het inlogscherm van Home Assistant op het openbare internet. Iedereen die het adres kent, kan wachtwoorden proberen. Je wachtwoord (en tweestapsverificatie, als je die hebt aangezet) is dan de enige barrière. Dat is precies de situatie die je met een gesloten router wilde vermijden.

Wil je het toch, dan vraagt Funnel twee extra stappen. Open in de Tailscale-console de pagina Access controls en voeg het node-attribuut funnel toe aan de policy file van je tailnet. Herstart daarna de app. Het kan tot 10 minuten duren voordat het adres na de eerste keer publiek bereikbaar is. Het verschil tussen de twee modi staat uitgebreid in Tailscale Serve en Funnel naast elkaar.

Voor bijna elke thuisgebruiker is Serve de betere keuze. De enige reden voor Funnel is een apparaat waarop je geen Tailscale kunt installeren.

Wie kan er onder Serve bij je Home Assistant?

Onder Serve kunnen alleen apparaten in je tailnet Home Assistant bereiken. Tailscale beschrijft Serve als een manier om een dienst te delen "within your Tailscale network". Er staat geen poort open op je router. Een scanner op internet vindt dus geen inlogscherm.

Dat geldt zolang je de toegang niet zelf verbreedt. Deel je het Home Assistant-apparaat met iemand buiten je tailnet, of zet je een ruime regel in je access controls, dan kan die persoon er ook bij. Een verloren telefoon met een actieve Tailscale-sessie hoort er ook bij: verwijder dat apparaat dan direct op de pagina Machines.

Vergelijk dat met een poort op de router. Daar staat het inlogscherm voor de hele wereld open, plus een DynDNS-naam die naar je huis wijst. Waarom Tailscale die route overbodig maakt, lees je in Tailscale in plaats van port forwarding. Wat Tailscale zelf wel en niet kan zien, staat in hoe veilig Tailscale is.

De overige opties: wat heb je thuis echt nodig?

De app heeft meer opties. De meeste kun je op de standaardwaarde laten.

  • userspace_networking staat standaard uit. Laat het zo. Zet je het aan, dan maakt Tailscale geen netwerkinterface tailscale0 op het apparaat, en krijgen apparaten in je tailnet alleen toegang in één richting naar Home Assistant.
  • accept_dns staat standaard aan. Home Assistant gebruikt dan de DNS-instellingen van je tailnet, zodat het andere apparaten in je tailnet op naam kan vinden.
  • accept_routes staat standaard uit. Je hebt het alleen nodig als een ander apparaat in je tailnet routes aanbiedt naar een netwerk dat Home Assistant moet bereiken.
  • taildrop staat standaard uit. Zet je het aan, dan komen bestanden die je vanaf een ander apparaat stuurt in /share/taildrop terecht.

Twee opties zijn voor een thuisgebruiker wel interessant.

advertise_routes maakt van Home Assistant een subnet router. Een subnet router geeft apparaten in je tailnet toegang tot je hele thuisnetwerk, ook tot apparaten zonder Tailscale, zoals een printer of de webpagina van je router. De standaardwaarde is een lege lijst. Je kunt een bereik opgeven, bijvoorbeeld 192.168.1.0/24, of de waarde local_subnets. Controleer eerst welk bereik je eigen router gebruikt. Na het opslaan moet je de routes nog goedkeuren in de Tailscale-console: open op de pagina Machines het apparaat en kies Edit route settings.... Hetzelfde principe op een VPS lees je in een subnet router op een VPS.

advertise_exit_node staat standaard uit. Zet je het aan en keur je het goed op de pagina Machines, dan kan je telefoon al zijn internetverkeer via je thuisverbinding sturen. Dat is handig op vakantie, als je je bank wilt openen via je eigen Nederlandse aansluiting in plaats van via de wifi van een hotel. Eén beperking uit de documentatie: een apparaat kan niet tegelijk een exit node aanbieden en zelf een exit node gebruiken.

Je eigen controleserver: login_server en Headscale

Tailscale bestaat uit twee delen. Het verkeer zelf loopt via WireGuard tussen je apparaten. Daarnaast is er een controleserver die bijhoudt welke apparaten er zijn en hun publieke sleutels verspreidt. Standaard is dat de server van Tailscale.

De optie login_server verandert dat. De standaardwaarde is https://controlplane.tailscale.com. De documentatie van de app zegt dat de optie nuttig is "if you are running your own Tailscale control server, for example, a self-hosted Headscale instance". Headscale is een open-source controleserver die je zelf draait. Zet je die op een VPS in een Europees datacenter naar keuze, dan staat de controleserver op een machine die jij beheert. Hoe je Headscale installeert, lees je in Headscale als zelfgehoste Tailscale-server.

Zet daarna in de configuratie van de app:

login_server: https://headscale.example.nl

Herstart de app, open de Web UI, rond het inloggen af tegen je eigen server en kijk in het log of het goed ging.

Bekijk eerst wat je dan verliest. Dit is gecontroleerd op 10 oktober 2026:

  • Funnel werkt niet met Headscale. De vraag naar Funnel is in de issuetracker van Headscale gesloten als "not planned". De beheerder schreef: "We cannot really implement Tailscale's Funnel per se as it is not a public infrastructure like DERP." Funnel leunt op de publieke servers van Tailscale zelf.
  • De featurelijst van Headscale markeert Serve en Funnel als niet ondersteund, en MagicDNS als ondersteund. Die lijst komt uit de documentatie op de hoofdtak van Headscale, niet uit een vaste release. Kijk dus in de documentatie van de versie die jij draait.

Of share_homeassistant: serve met een geldig certificaat werkt tegen Headscale, is een open vraag. Op 10 oktober 2026 was er geen officiële bron te vinden die zegt dat het werkt. De documentatie van de app beschrijft het certificaat alleen via de knop Enable HTTPS in de console van Tailscale, en die console heb je met Headscale niet. Test het daarom zelf. Zet share_homeassistant op serve, herstart de app, lees het log en probeer het https-adres vanaf een laptop met curl -sI. Werkt het niet, zet de optie dan terug op disabled en bereik Home Assistant via het tailnet-adres van het apparaat. Het verkeer is binnen de WireGuard-tunnel dan nog steeds versleuteld, maar de browser ziet een gewone http-verbinding.

FAQ

Maakt de Tailscale-integratie Home Assistant bereikbaar van buitenaf?

Nee. De integratie toont alleen informatie over de apparaten in je tailnet, zoals wanneer ze online waren en wanneer hun sleutel verloopt. De documentatie van Home Assistant zegt letterlijk: "It does not make Home Assistant itself reachable over Tailscale." Voor toegang van buitenaf installeer je de Tailscale-app onder Settings > Apps en zet je share_homeassistant op serve.

Waarom zie ik een foutmelding in plaats van het inlogscherm via Tailscale Serve?

Home Assistant blokkeert standaard verzoeken die via een reverse proxy binnenkomen, en Tailscale Serve is zo'n proxy. Ga in Home Assistant 2026.10 naar Settings > System > Network > HTTP server > Reverse proxy. Zet Trust X-Forwarded-For aan, voeg 127.0.0.1 toe aan Trusted proxies en herstart Home Assistant. Controleer ook dat SSL/TLS in Home Assistant zelf uit staat.

Waarom is Home Assistant na een paar maanden niet meer bereikbaar via Tailscale?

Waarschijnlijk is de sleutel van het apparaat verlopen. Voor nieuwe tailnets verlopen sleutels standaard na 180 dagen. Open in de Tailscale-console de pagina Machines, open het menu rechts in de rij van Home Assistant en kies Disable Key Expiry. Is de sleutel al verlopen, log dan thuis opnieuw in via de Web UI van de Tailscale-app.

Werkt de Tailscale-app op Home Assistant met Headscale?

Je kunt de app met de optie login_server naar je eigen Headscale-server laten wijzen. De documentatie van de app noemt dat zelf als voorbeeld. Funnel werkt dan niet, want Headscale heeft die vraag als "not planned" gesloten. Of Serve met een geldig certificaat werkt, is niet bevestigd, en de featurelijst van Headscale markeert Serve als niet ondersteund. Test het op je eigen installatie voordat je erop vertrouwt.

Heb ik Funnel nodig om de companion-app buiten de deur te gebruiken?

Nee. Installeer Tailscale op je telefoon en vul in de companion-app bij External URL het volledige https-adres in, zoals https://homeassistant.tail1234.ts.net. Met Serve werkt dat zolang Tailscale op de telefoon verbonden is. Funnel zet het inlogscherm van Home Assistant op het openbare internet, en dat heb je voor de companion-app niet nodig.