Homepage mit Docker Compose: Eigenes Dashboard lokal auf Port 3000 starten
Ein sauberer Docker-Host wird schnell unordentlich, wenn Bookmarks, Admin-URLs, Doku-Links und lokale Dienste ueber Browserleisten, Notizen und Chat-Verlaeufe verteilt sind. Homepage ist fuer genau diesen Moment stark: ein leichtes Dashboard, komplett YAML-basiert, schnell geladen und ohne schweres Zusatzsystem.
Der Stand fuer diesen Artikel ist belastbar genug fuer einen brauchbaren Fallback. Die offizielle Docker-Doku von Homepage zeigt am 2. Mai 2026 weiter ein Compose-Setup mit ghcr.io/gethomepage/homepage:latest, Port 3000 und einem gemounteten Konfigurationsordner unter /app/config. Gleichzeitig fuehrt GitHub v1.12.3 weiterhin als neueste Release vom 1. April 2026. Fuer ein reproduzierbares Setup pinne ich deshalb bewusst auf ghcr.io/gethomepage/homepage:v1.12.3 statt blind latest zu ziehen.
Die zweite wichtige Einordnung kommt direkt aus der offiziellen Installationsseite: Homepage bringt keine eigene Authentifizierung mit. Fuer einen lokalen Start auf 127.0.0.1 ist das okay. Fuer einen spaeteren Internet-Zugriff gehoeren Reverse Proxy, TLS und vorgeschaltete Anmeldung davor.
Was du am Ende hast
- Homepage lokal unter
http://127.0.0.1:3000 - Ein kleines Compose-Setup mit persistentem Konfigurationsordner
- Eine editierbare Startseite auf Basis von
settings.yaml,services.yamlundwidgets.yaml - Ein sichtbares Ergebnis im Browser statt nur eines weiteren abstrakten Docker-Grundlagenposts
Voraussetzungen
- Docker Engine ist installiert
docker composeist verfuegbar- Port
3000ist lokal frei
Pruefe das kurz:
docker --version
docker compose version
1. Projektordner anlegen
Nicht in einem alten Compose-Verzeichnis weiterarbeiten. Lege dir zuerst einen dedizierten Arbeitsordner an:
mkdir homepage-local
cd homepage-local
mkdir -p config
2. Compose-Datei schreiben
Speichere im Projektordner die Datei homepage-local/compose.yaml:
services:
homepage:
image: ghcr.io/gethomepage/homepage:v1.12.3
container_name: homepage
ports:
- "127.0.0.1:3000:3000"
environment:
HOMEPAGE_ALLOWED_HOSTS: localhost:3000,127.0.0.1:3000
volumes:
- ./config:/app/config
restart: unless-stopped
Warum genau so?
127.0.0.1:3000:3000haelt den Start bewusst lokal./config:/app/configmacht deine YAML-Dateien persistent und leicht editierbarHOMEPAGE_ALLOWED_HOSTSfolgt der aktuellen Doku zur Host-Validierung- das Pinning auf
v1.12.3verhindert spaetere Ueberraschungen durchlatest
3. Die erste Konfiguration anlegen
Homepage lebt von YAML. Fuer einen schnellen, klaren Start reichen drei Dateien.
homepage-local/config/settings.yaml
title: Homelab Start
description: Schnellzugriff fuer lokale Tools und taegliche Links
fullWidth: true
useEqualHeights: true
layout:
Start:
style: row
columns: 3
homepage-local/config/services.yaml
---
- Start:
- Homepage:
href: http://127.0.0.1:3000
description: Dein lokales Dashboard
- Docker Docs:
href: https://docs.docker.com/
description: Compose, Images und Referenz
- GitHub:
href: https://github.com/
description: Repositories, Releases und Issues
homepage-local/config/widgets.yaml
---
- search:
provider: [duckduckgo, google]
focus: true
showSearchSuggestions: true
target: _blank
- datetime:
text_size: xl
locale: de-DE
format:
dateStyle: short
timeStyle: short
hourCycle: h23
Das ist absichtlich klein gehalten. Der Punkt am ersten Tag ist nicht perfekte Personalisierung, sondern ein laufendes Dashboard mit sofort erkennbarem Nutzen.
4. Container starten
Jetzt ziehst du das gepinnte Image und startest den Stack:
docker compose pull
docker compose up -d
Wenn das Image bereits lokal vorhanden ist, geht das schnell. Beim ersten Start dauert es etwas laenger, weil Compose das Release aus der Registry zieht.
5. Lokal pruefen
Pruefe zuerst, ob der Container wirklich laeuft:
docker compose ps
Danach teste direkt gegen die lokale Weboberflaeche:
curl -I http://127.0.0.1:3000
Ein HTTP/1.1 200 OK oder ein sauberer Redirect ist hier das richtige Signal. Falls Homepage noch nicht antwortet, wirf einen Blick in die Logs:
docker compose logs --tail=100 homepage
6. Das sichtbare Ergebnis erzeugen
Oeffne jetzt http://127.0.0.1:3000 im Browser. Wenn alles sauber steht, solltest du direkt sehen:
- die Suchleiste oben
- das Datums- und Uhrzeit-Widget
- drei Startkarten aus deiner
services.yaml
Wenn du eine YAML-Datei aenderst, nutze danach in der Oberfläche unten rechts das Refresh-Symbol, damit Homepage die statische Ausgabe neu erzeugt. Genau an diesem Punkt ist das Projekt mehr als nur ein laufender Container: Du hast eine echte, benutzbare Startseite, die du mit deinen eigenen Diensten weiterfuellen kannst.
7. Sinnvolle naechste Schritte
Sobald der Basis-Start funktioniert, sind diese Erweiterungen praktisch:
- Ersetze die Demo-Links in
services.yamldurch echte lokale Ziele wie Gitea, Vaultwarden oder Uptime Kuma. - Ergaenze spaeter
bookmarks.yaml, wenn du getrennte Link-Sammlungen willst. - Nutze nur dann den Docker-Socket fuer Container-Discovery, wenn du die zusaetzliche Angriffsoberflaeche bewusst akzeptierst.
- Stelle Homepage nicht offen ins Internet, solange kein Reverse Proxy mit Authentifizierung und TLS davorsitzt.
Warum dieser Fallback heute stark genug ist
Wenn ein News-Thema nicht sauber genug bestaetigt oder zu nah an bereits behandelten Themen liegt, muss der Ersatz besser sein als der naechste generische "Docker fuer Anfaenger"-Text. Homepage schafft das am 2. Mai 2026 noch klar:
- die offizielle Docker-Dokumentation ist aktuell und konkret
- das Projekt hat mit
v1.12.3einen klar benennbaren stabilen Stand - das Ergebnis ist in wenigen Minuten sichtbar
- der praktische Nutzen ist sofort da, selbst ohne grosses Homelab
Gerade fuer Leute, die mehrere Admin-Oberflaechen, Doku-Ziele und taegliche Web-Tools offen halten, ist so eine lokale Startseite deutlich brauchbarer als noch ein weiterer Container, der im Alltag nie wirklich benutzt wird.
Quellen
- https://gethomepage.dev/installation/
- https://gethomepage.dev/installation/docker/
- https://gethomepage.dev/configs/settings/
- https://gethomepage.dev/widgets/info/search/
- https://gethomepage.dev/widgets/info/datetime/
- https://github.com/gethomepage/homepage
- https://github.com/gethomepage/homepage/releases/tag/v1.12.3