Homarr Dashboard: De Ultieme Voordeur voor je Docker-Containers

Homarr Dashboard Docker: de voordeur voor je homelab

Het begint onschuldig genoeg. Je installeert Home Assistant. Dan Jellyfin. Dan Nextcloud, Portainer, Paperless-ngx en een handvol andere diensten die je op een Reddit-thread om middernacht tegenkwam. Voor je het weet is je browsermap met bladwijzers een rommeltje en typ je elke dag uit je hoofd rauwe IP-adressen zoals 10.10.10.8:8123.

Klinkt bekend? De communities op r/homelab en r/homarr staan vol posts van mensen in precies deze situatie. Zodra je meer dan vijf zelf-gehoste apps draait, wordt bijhouden welke poort bij welke dienst hoort een serieuze tijdverspilling. Je hebt één overzichtelijke voordeur nodig.

Die voordeur is Homarr.

Waarom dit ook een privacykeuze is, niet alleen een gemakskeuze

De meeste mensen zien een homelabdashboard als een handig hulpmiddel. Maar het is ook een privacykeuze.

Als je vertrouwt op bladwijzers die gesynchroniseerd worden met een cloudaccount, geef je de topologie van je interne netwerk weg aan een derde partij. Dit is wat je elimineert door over te stappen op een zelf-gehost dashboard:

  • Google Chrome-synchronisatie die je interne service-URL’s uploadt naar Google’s servers
  • Microsoft Edge-bladwijzertelemetrie die bijhoudt welke lokale diensten je bezoekt
  • Browserextensies van derden voor een nieuw tabblad die je surfgedrag naar huis bellen
Privacynoot: De topologie van je interne netwerk gaat niemand anders iets aan. Homarr verlaat je LAN nooit, tenzij je dat zelf expliciet instelt. Geen externe partij ziet welke diensten je intern draait.

Wat Homarr precies is (en wat niet)

Homarr is een visueel dashboard voor je zelf-gehoste diensten. Het geeft je een iconenrijk raster van tegels, elk gekoppeld aan een van je draaiende apps. Het is geen containerbeheer-tool. Je kunt vanuit Homarr geen containers herstarten, logs lezen of Docker-netwerken aanpassen. Dat is het werk van Portainer.

Het Reddit-debat tussen Homepage en Homarr is reëel en nog steeds gaande. Homepage is een sterk alternatief, met name voor gebruikers die alles liever in YAML-bestanden configureren en maximale widgetdichtheid willen. Homarr wint op visuele gebruikservaring en Docker-native auto-import. Voor niet-technische huisgenoten die gewoon op een tegel willen klikken om Jellyfin te openen, is Homarr de overzichtelijkere keuze.

Conclusie in één zin: Homarr is de voordeur. Portainer is de machinekamer. Je hebt beide nodig.


Vereisten en hardwarespecificaties

Wat je nodig hebt voordat je begint

  • Een draaiende Docker-omgeving, standalone of beheerd via Portainer
  • Portainer bereikbaar in je browser (aanbevolen voor beide routes in deze handleiding)
  • Ongeveer 15 minuten ongestoorde installatietijd
  • Basiskennis van wat een Docker volume mount is (alleen vereist voor de Pro-route)

Heb je Docker en Portainer nog niet draaien, begin dan hier: Bouw je privacymachinekamer: Docker + Portainer op Proxmox LXC.

Hardwarevereisten

ComponentMinimumOpmerkingen
RAM256 MBHomarr is lichtgewicht
Opslag500 MBConfiguratiebestanden en iconen-cache
NetwerkAlleen LANGeen port-forwarding vereist

Homarr draait op elke machine die Docker ondersteunt. Er is geen GPU of speciale CPU-architectuur nodig. Als je machine Docker aankan, draait Homarr erop.

Poort- en netwerkinformatie

Homarr luistert standaard op poort 7575. Controleer vóór het deployen of die poort vrij is op je hostmachine.

sudo ss -tulpn | grep 7575

Als het commando geen uitvoer geeft, is de poort beschikbaar. Als er al iets op luistert, wijs dan de hostpoort opnieuw toe in het compose-bestand. Dat proces wordt behandeld in de sectie Probleemoplossing.


Methode 1: De snelle start (beginnerroute)

Voor wie is deze route bedoeld

Deze route is voor jou als je momenteel IP-adressen uit je hoofd typt, je bladwijzers een chaos zijn en je ergens tussen de vijf en tien zelf-gehoste apps draait. Het doel is een werkend dashboard met handmatig toegevoegde app-tegels in minder dan 15 minuten. Geen Docker socket mounting. Geen geavanceerde configuratie. Gewoon een draaiende container met een bruikbare interface.

Stap 1: Deploy de Homarr-stack in Portainer

  1. Open Portainer in je browser.
  2. Navigeer naar Stacks in de linker zijbalk.
  3. Klik op Add Stack.
  4. Geef je stack een naam, bijvoorbeeld homarr.
  5. Plak de volgende compose-definitie in de Web Editor:
services:
  homarr:
    image: ghcr.io/ajnart/homarr:latest
    container_name: homarr
    ports:
      - "7575:7575"
    volumes:
      - ./homarr/configs:/app/data/configs
    restart: unless-stopped
  1. Klik op Deploy the stack onderaan de pagina.

Portainer haalt het image op en start de container. Dit duurt doorgaans minder dan 60 seconden bij een fatsoenlijke verbinding.

Stap 2: Open het dashboard voor de eerste keer

Open je browser en navigeer naar http://[JOUW-SERVER-IP]:7575. Vervang [JOUW-SERVER-IP] door het werkelijke LAN-IP van je Docker-host.

Je belandt op een leeg canvas. Homarr toont een raster met een prompt om je eerste app toe te voegen. De interface werkt met slepen en neerzetten en elke optie is voorzien van een label.

Stap 3: Voeg je eerste app-tegel handmatig toe

  1. Klik op Add App (of het plusje op het canvas).
  2. Vul de volgende velden in:
    • Name: De weergavenaam, bijvoorbeeld Home Assistant
    • URL: Het volledige adres, bijvoorbeeld http://10.10.10.8:8123
    • Icon: Typ de naam van de app en laat Homarr’s ingebouwde icoonsearch automatisch het officiële logo ophalen
  3. Klik op Save.
  4. Herhaal dit voor elke dienst die je op het dashboard wilt hebben.
Icoon laadt niet? Homarr haalt iconen op van een externe CDN. Je container heeft uitgaande DNS-toegang nodig om die hostnaam te kunnen resolven. Zie de sectie Probleemoplossing als iconen als kapotte afbeeldingen worden weergegeven.

Stap 4: Stel Homarr in als je browserstartpagina

  • Chrome: Instellingen → Bij opstarten → Een specifieke pagina openen → voer http://[SERVER-IP]:7575 in
  • Firefox: Instellingen → Startpagina → Aangepaste URL’s → voer hetzelfde adres in
  • Safari: Voorkeuren → Algemeen → Startpagina → voer het adres in
Elke dienst is nu één klik verwijderd, geserveerd vanuit je eigen infrastructuur, onzichtbaar voor iedereen buiten je netwerk.

Methode 2: De Pro-setup (Docker Socket-integratie)

Voor wie is deze route bedoeld

Deze route is voor jou als je 20 of meer containers draait, live statusindicatoren op elke tegel wilt en geen zin hebt om app-details één voor één handmatig in te voeren. Homarr leest rechtstreeks uit de Docker-engine. Je containers verschijnen automatisch, met namen en poorten al ingevuld. Jij regelt de visuele indeling; Homarr regelt de data.

De Docker socket: wat het is en waarom het belangrijk is

Het bestand op /var/run/docker.sock is een Unix-socket waarmee processen rechtstreeks kunnen communiceren met de Docker-daemon. Als je het in een container mount, kan die container Docker bevragen voor informatie: welke containers draaien er, welke poorten ze blootstellen, hun huidige status, en meer.

Zo voert Homarr zijn auto-import uit. Het bevraagt Docker rechtstreeks in plaats van te wachten tot jij alles handmatig intypt.

Beveiligingsnoot: Het mounten van de Docker socket geeft aanzienlijke toegang tot het hostsysteem. Doe dit alleen op een vertrouwde LAN-machine. Stel een container met socket-toegang nooit rechtstreeks bloot aan het publieke internet. Dit is een goed begrepen afweging in homelabomgevingen, maar het is de moeite waard om dit expliciet te vermelden.

Stap 1: Deploy de volledige Pro-stack in Portainer

  1. Open Portainer en navigeer naar Stacks → Add Stack.
  2. Geef de stack de naam homarr.
  3. Plak de volgende compose-definitie:
services:
  homarr:
    image: ghcr.io/ajnart/homarr:latest
    container_name: homarr
    ports:
      - "7575:7575"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./homarr/configs:/app/data/configs
      - ./homarr/icons:/app/public/icons
      - ./homarr/data:/data
    restart: unless-stopped
  1. Klik op Deploy the stack.

Stap 2: Configureer de Docker-integratie in Homarr

  1. Open Homarr op http://[SERVER-IP]:7575.
  2. Navigeer naar Settings → Integrations.
  3. Klik op Add Integration en selecteer Docker.
  4. Voer in het veld voor het socketpad in: /var/run/docker.sock
  5. Sla de integratie op en ga terug naar het hoofddashboard.

Stap 3: Slim importeren vanuit draaiende containers

  1. Klik op Add App op het dashboardcanvas.
  2. In plaats van een leeg formulier zie je nu een lijst van je draaiende containers, automatisch gevuld door de Docker-integratie.
  3. Selecteer de containers die je als tegels wilt toevoegen.
  4. Homarr genereert tegels met de juiste namen en URL’s al ingevuld.
Dit is wat Homarr onderscheidt van een bladwijzerpagina. Je leest live status uit de Docker-engine, in plaats van zelf een lijst bij te houden.

Stap 4: Iconen en visuele afwerking

Klik voor elke tegel op het icoenveld en typ de naam van de applicatie zoals die algemeen bekend is. Bijvoorbeeld: Nextcloud, Jellyfin, Portainer, Paperless. Homarr’s ingebouwde zoekopdracht bevraagt de dashboard-icons-repository en geeft officiële SVG-logo’s terug.

Gebruik de exacte productnaam voor de beste match. Afkortingen en typefouten leveren geen resultaten op of het verkeerde icoon. Zodra de iconen zijn ingesteld, toont je dashboard live ping-indicatoren (groene stippen voor bereikbare diensten) en containerstatus-badges met Running of Stopped, zonder dat je Portainer hoeft te openen.


Configuratie en validatie: testen of alles werkt

De driedelige validatiechecklist

  • Tegelkliktest: Opent een klik op een tegel de juiste app in een nieuw tabblad?
  • Pingstatustest: Is er een groene stip naast elke actieve dienst?
  • Docker-statustest: Toont Homarr de containerstatus (Running of Stopped) zonder dat je Portainer hoeft te openen?

Alle drie moeten slagen voordat je de installatie als voltooid beschouwt.

De Docker socket-verbinding valideren

Voer het volgende uit op je Docker-host om op CLI-niveau te bevestigen dat de socket correct gemount is in de draaiende container:

docker inspect homarr | grep -A5 "Mounts"

Zoek naar een vermelding met /var/run/docker.sock in het bronveld. Als die aanwezig is, is de socket correct gemount. Als de Homarr-interface nog steeds geen containers toont, ga dan verder naar de sectie Probleemoplossing.

Homarr instellen als standaard startpagina van je browser

Als je Methode 1 hebt voltooid en dit hebt overgeslagen, ga dan terug naar Stap 4 van die sectie. De in te stellen URL is http://[SERVER-IP]:7575. Elk nieuw browsertabblad opent nu je zelf-gehoste navigatiehub.


De harde waarheid: de beperkingen van Homarr

Wat Homarr niet kan

We geloven in eerlijke documentatie. Dit is wat Homarr niet doet, ongeacht hoe je het configureert:

  • Kan containers niet herstarten of stoppen (gebruik daarvoor Portainer of de CLI)
  • Kan geen containerlogs bekijken
  • Kan Docker-netwerken of volumes niet beheren
  • Kan Portainer, Dockge of Yacht niet vervangen als beheerinterface

Homarr is een dashboard. Het observeert en koppelt. Het beheert niet.

Het “Homepage vs. Homarr”-debat: onze eerlijke mening

De r/homelab-community is hier oprecht over verdeeld, en beide kampen hebben valide argumenten. Homepage is een krachtig alternatief. Het gebruikt een YAML-first configuratiemodel, biedt een breder scala aan widgets en is beter geschikt voor gebruikers die comfortabel zijn met configuratiebestanden en maximale informatiedichtheid willen.

Homarr wint op visuele gebruikservaring. De drag-and-drop-interface, de icoonsearch en de Docker auto-import-workflow zijn sneller en toegankelijker voor niet-technische gebruikers in je huishouden. Als je partner of andere huisgenoten ook gebruikmaken van het homelab, is Homarr de meer laagdrempelige keuze.

Ons standpunt: Homarr is de voordeur. Portainer is de machinekamer. Je hebt beide nodig.

Wanneer je beter kunt overstappen naar Homepage

  • Je beheert alle configuratie liever in versiegecontroleerde YAML-bestanden
  • Je draait een Kubernetes-omgeving waarbij Docker socket-integratie niet van toepassing is
  • Je hebt een hoge informatiedichtheid van widgets op één scherm nodig
  • Er zijn geen niet-technische gebruikers die met het dashboard moeten werken

Probleemoplossing voor veelvoorkomende fouten

Probleem: containerlijst blijft leeg na Docker-integratie

Symptoom: Het Integrations-paneel toont Docker als verbonden, maar er verschijnen geen containers als je op Add App klikt.

Oorzaken:

  • Het socket-volume was niet opgenomen in de stack-definitie
  • Het verkeerde socketpad werd ingevoerd in de integratie-instellingen van Homarr

Oplossing:

  1. Navigeer in Portainer naar je Homarr-stack en klik op Editor.
  2. Controleer of de volumes-sectie de volgende regel bevat:
      - /var/run/docker.sock:/var/run/docker.sock
  1. Als die ontbreekt, voeg hem toe en klik op Update the stack.
  2. Ga na het herstarten van de container terug naar Homarr Settings → Integrations en bevestig dat het socketpad exact is ingesteld op /var/run/docker.sock.

Probleem: kapotte afbeeldingen / iconen laden niet

Symptoom: Tegels tonen een kapot-afbeelding-icoon in plaats van het app-logo.

Oorzaak: Homarr haalt iconen op van een externe CDN tijdens het uitvoeren. Als de container geen externe hostnamen kan resolven, mislukt het ophalen zonder foutmelding.

Oplossingsopties:

  1. Controleer of je container uitgaande DNS-toegang heeft:
docker exec homarr nslookup cdn.jsdelivr.net
  1. Als DNS-resolutie mislukt, controleer dan je Docker-netwerkconfiguratie en zorg ervoor dat de container een werkende DNS-resolver heeft.
  2. Als handmatige terugvaloptie gebruik je de Icon Picker in Homarr om voor elke tegel een lokaal SVG-bestand te uploaden.
Air-gapped homelab? Download het dashboard-icons-pakket handmatig uit de officiële repository en mount het als een volume in de container. Zo heb je volledige icoonsupport zonder uitgaande verzoeken.

Probleem: dashboard laadt maar tegels geven “Connection Refused”

Symptoom: Homarr laadt correct en tegels zijn zichtbaar, maar een klik op een tegel opent een browserfoutpagina.

Oorzaak: De URL die in de tegel is opgeslagen gebruikt localhost in plaats van het LAN-IP van de server. Vanuit het perspectief van je browser verwijst localhost naar je eigen computer, niet naar de server.

Oplossing: Bewerk de betreffende tegel en vervang localhost door het werkelijke LAN-IP van je Docker-host. Verander bijvoorbeeld http://localhost:8096 in http://10.10.10.8:8096.

Probleem: poort 7575 al in gebruik

Stel eerst vast wat de poort gebruikt:

sudo ss -tulpn | grep 7575

Als er een conflict is, verander dan de hostpoort-mapping in je compose-bestand. De containerpoort blijft hetzelfde; alleen de linkerkant van de mapping verandert:

    ports:
      - "7576:7575"

Deploy de stack opnieuw en open Homarr via http://[SERVER-IP]:7576.


Conclusie en vervolgstappen

Je afrondingschecklist

  • Homarr-stack gedeployed in Portainer
  • Docker socket succesvol gemount voor live containerdata
  • Alle containers geïmporteerd en voorzien van iconen
  • Dashboard ingesteld als standaard browserstartpagina
  • Driedelige validatie geslaagd (tegelklikken, pingstatus, Docker-status)

Wat je eigenlijk hebt gebouwd

Dit is niet zomaar een dashboard. Het is een privénavigatiehub zonder externe afhankelijkheden. Geen Google-account dat je interne servicemap te zien krijgt. Geen Microsoft-telemetrie die bijhoudt welke apps je gebruikt. Geen extensie van derden met zicht op je netwerktopologie.

Elke tegel op dat scherm is een dienst die jij bezit, draaiend op hardware die jij beheert, alleen toegankelijk voor mensen die jij autoriseert.

De volgende stap: HomeWizard P1-meter in Home Assistant in Homarr

Nu je dashboard live is, is de volgende stap het slimmer maken. De aankomende handleiding loodst je door de integratie van de HomeWizard P1-energiemeter met Home Assistant. Het resultaat is een live energieverbruikswidget op dit Homarr-dashboard, die realtime stroomverbruik toont zonder dat je ook maar één andere app hoeft te openen.

Je voordeur staat. Nu gaan we er iets de moeite waard op zetten.

Verder lezen en community-resources