Home Server installieren und einrichten
Von einem leeren Rechner zum laufenden Home Server mit Kindern, Regeln und gekoppelten Geräten. Rechnen Sie mit etwa einer Stunde, die meiste Zeit lädt das Modell.
Vorab-Beta. Die Installation richtet sich heute an Pilotfamilien und Pilotschulen mit etwas Technikerfahrung. Den Zugang zum Installationspaket (Git-Adresse oder ZIP-Datei) und eine Lizenz bekommen Sie von uns. Ein fertiges Abbild zum Aufspielen, ohne Kommandozeile, ist in Vorbereitung.
1 Voraussetzungen
| mindestens | empfohlen | |
|---|---|---|
| Betriebssystem | Windows 11 (64 Bit) oder Ubuntu 24.04 | ein Rechner, der nur dafür läuft |
| Arbeitsspeicher | 16 GB | 32 GB |
| Grafikkarte | keine (kleine Modelle, langsam) | ab 12 GB, besser 16 GB Videospeicher |
| Speicher | 50 GB frei | SSD mit 100 GB frei |
| Netz | Heimnetz (WLAN oder Kabel) | Kabel, feste IP-Adresse im Router |
Vergeben Sie dem Rechner im Router eine feste Adresse im Heimnetz, damit Geräte ihn immer wiederfinden.
2 Software installieren
Kinhavn braucht Git, Node.js, Docker Desktop (für die Kindersuche) und Ollama (für die lokale KI). Unter Windows geht das mit winget:
# PowerShell als Administrator öffnen (Rechtsklick auf Start → Terminal (Administrator))
winget install --id Git.Git -e
winget install --id OpenJS.NodeJS.LTS -e
winget install --id Docker.DockerDesktop -e
winget install --id Ollama.Ollama -e
# Danach einmal ab- und wieder anmelden, Docker Desktop starten und den Einrichtungsdialog abschließen
3 Kinhavn holen und bauen
# Normales PowerShell-Fenster (kein Administrator nötig)
cd C:\
git clone <GIT-ADRESSE-AUS-IHRER-EINLADUNG> Kinhavn
cd C:\Kinhavn
npm ci
npm run build
Mit einer ZIP-Datei statt Git: entpacken nach C:\Kinhavn und dort npm ci und npm run build ausführen.
4 Modelle laden
Das Gesprächsmodell und das Sicherheitsmodell laufen in Ollama auf Ihrem Rechner. Ohne Sicherheitsmodell pausiert die KI für Kinder, das ist Absicht.
# Grafikkarte mit 16 GB oder mehr
ollama pull qwen3.5:9b
# Grafikkarte mit 8–12 GB oder ohne Grafikkarte
ollama pull qwen3.5:4b
# Sicherheitsmodell der Policy-Schicht (immer nötig)
ollama pull llama-guard3:1b
ollama list
5 Kindersuche starten
Die Internetsuche läuft über ein eigenes SearXNG in Docker. Für Kinder der Stufen A und B sucht es nur in einer geprüften Liste kindgerechter Quellen.
cd C:\Kinhavn
docker compose -f docker\searxng\docker-compose.yml up -d
# Prüfen: sollte "OK" liefern
Invoke-WebRequest http://127.0.0.1:5780/healthz -UseBasicParsing | Select-Object -ExpandProperty Content
6 Konfiguration
cd C:\Kinhavn
Copy-Item packages\home-server\.env.example packages\home-server\.env
# Zufälliges Sitzungsgeheimnis erzeugen und anzeigen
$b = New-Object byte[] 48; [Security.Cryptography.RandomNumberGenerator]::Create().GetBytes($b); [Convert]::ToBase64String($b)
notepad packages\home-server\.env
In der Datei diese Zeilen setzen (alle anderen können leer bleiben):
PORT=4520
SESSION_SECRET=<die eben erzeugte Zeichenkette>
PERSISTENCE=file
OLLAMA_BASE_URL=http://127.0.0.1:11434
OLLAMA_MODEL=qwen3.5:9b
POLICY_GUARD_MODEL=llama-guard3:1b
POLICY_GUARD_BASE_URL=http://127.0.0.1:11434
SEARXNG_BASE_URL=http://127.0.0.1:5780
CENTRAL_URL=https://central.kinhavn.de
# Optional: eigener Zugang zu einem KI-Anbieter (Entwicklerzugang, kein Verbraucher-Abo)
# ANTHROPIC_API_KEY=
# OPENAI_API_KEY=
# GEMINI_API_KEY=
PERSISTENCE=file speichert alles in Dateien unter packages\home-server\.data. Wer SQL Server nutzen möchte: npm run db:init -w @kinhavn/home-server und dann PERSISTENCE=mssql.
7 Erster Start und Einrichtung
cd C:\Kinhavn
npm run start -w @kinhavn/home-server
# Ohne Elternkonto startet der Einrichtungsmodus und gibt ein Einrichtungstoken aus.
# Es steht auch in der Datei logs\setup-token.txt
- Öffnen Sie auf dem Rechner
http://localhost:4520und geben Sie das Einrichtungstoken aus der Ausgabe ein. Ohne Token ist der Assistent nicht erreichbar. - Wählen Sie Neu einrichten. (Aus Sicherung wiederherstellen und Haushalt aus dem Pilot übernehmen sind die anderen Wege.)
- Legen Sie das erste Elternkonto an: Anzeigename, Anmeldename, Passwort mit mindestens 12 Zeichen.
- Name des Haushalts, Sprache, Zeitzone und das Altersband-Schema (Vorgabe Kinhavn A–E).
- Modelle: Der Assistent zeigt die gefundenen lokalen Modelle; einen API-Zugang können Sie später ergänzen.
- Der Wiederherstellungscode: 24 Wörter, nur jetzt sichtbar. Schreiben Sie sie auf Papier und bewahren Sie sie getrennt vom Rechner auf. Zur Bestätigung fragt der Assistent zwei der Wörter ab.
Danach ist das Einrichtungstoken ungültig, und Sie sind angemeldet. Dieser Browser ist jetzt als Elterngerät gekoppelt.
# PowerShell als Administrator: Zugriff aus dem Heimnetz erlauben (nur private Netze)
New-NetFirewallRule -DisplayName "Kinhavn Home Server" -Direction Inbound -Protocol TCP -LocalPort 4520 -Profile Private -Action Allow
# Adresse des Rechners im Heimnetz anzeigen
Get-NetIPAddress -AddressFamily IPv4 | Where-Object { $_.PrefixOrigin -eq 'Dhcp' } | Select-Object IPAddress
8 Geräte koppeln
- In der Elternverwaltung unter Geräte einen Kopplungscode erzeugen: Familiengerät für ein Gerät, auf dem Kinder ihr Profil wählen, oder Elterngerät.
- Auf dem neuen Gerät
http://<Adresse-des-Rechners>:4520öffnen, „Server hinzufügen“ wählen und Adresse und Code eingeben oder den QR-Code scannen. Der Code gilt zehn Minuten und nur einmal. - Auf Familiengeräten wählt das Kind sein Profil und gibt seine PIN ein.
Heimnetz ohne HTTPS. Im Heimnetz erreichen Geräte den Server unter http://<Name-oder-IP>:4520. Browser erlauben über eine solche Adresse weder die Installation als App noch den Kamerazugriff für QR-Codes. Koppeln Sie Geräte dann mit Adresse und Code. Eine eigene HTTPS-Adresse je Server kommt mit dem Fernzugriff; Pilotfamilien helfen wir bis dahin bei einer Lösung.
Unter Geräte sehen Sie jederzeit, welche Geräte verbunden sind, und können jedes einzeln entkoppeln; seine Sitzungen enden sofort.
9 Kinder, Regeln, Topf
- Kinder anlegen mit Namen und Geburtsdatum. Die Altersstufe folgt daraus bei jeder Anfrage; Sie können sie bewusst anders setzen.
- Regeln je Kind: Zeiten, Ruhezeiten, Suche, Bilder, welche Modelle und Anbieter erlaubt sind. Einschränken geht immer; lockern nur, wo es die Stufe zulässt.
- Topf: Für Woche oder Monat Minuten, Tokens und, bei einem API-Zugang, einen Euro-Deckel festlegen und auf die Kinder verteilen. Aus dem Rest geben Sie spontan „noch zehn Minuten“.
- KI-Werkstatt: Je Kind einzelne Bausteine freigeben (Assistenten, Skills, Aufgaben, Flows, Agenten, Connectoren). Vorgabe: alles aus.
10 Zweiter Faktor
In der Elternverwaltung beim eigenen Konto den zweiten Faktor einrichten: den QR-Code mit Google Authenticator, Microsoft Authenticator oder einer gleichwertigen App scannen und mit einem Code bestätigen. Die zehn Einmal-Wiederherstellungscodes ausdrucken. In den Einstellungen des Haushalts können Sie den zweiten Faktor für alle Elternkonten verlangen. Eine Anmeldung mit Microsoft- oder Google-Konto lässt sich zusätzlich einschalten, ist aber nie nötig.
11 Zentrale und Sicherung
Jede Nacht um 03:00 Uhr legt der Home Server eine verschlüsselte Sicherung an und behält die sieben neuesten. Unter Sicherungen sehen Sie Zeitpunkt und Ergebnis und können den Ordner ändern, zum Beispiel auf eine zweite Festplatte.
Freiwillig können Sie den Home Server bei der Kinhavn-Zentrale anmelden. Dann geht zusätzlich einmal pro Woche eine versiegelte Kopie dorthin, die nur Ihr Wiederherstellungscode öffnet, und Sie sehen Ihren Update-Stand.
- In der Elternverwaltung den Bereich Zentrale öffnen und „Bei der Zentrale anmelden“ wählen.
- Den Aktivierungscode eingeben, den Sie von uns bekommen haben (30 Tage gültig, einmal nutzbar).
- Fertig: Status, Server-Kennung, „Updates bis“ und letzter Kontakt stehen auf derselben Seite. Abmelden geht dort jederzeit.
Ohne Zentrale funktioniert alles andere genauso. Antwortet sie nicht, arbeitet der Home Server einfach weiter.
12 Dauerbetrieb und Updates
Damit der Home Server nach einem Neustart von selbst läuft, legen Sie eine geplante Aufgabe an (PowerShell als Administrator):
# Startet den Home Server bei Ihrer Anmeldung, nach Docker Desktop und Ollama
$a = New-ScheduledTaskAction -Execute "cmd.exe" -Argument '/c cd /d C:\Kinhavn && npm run start -w @kinhavn/home-server >> logs\home-server-task.log 2>&1'
$t = New-ScheduledTaskTrigger -AtLogOn -User $env:USERNAME
$s = New-ScheduledTaskSettingsSet -RestartCount 3 -RestartInterval (New-TimeSpan -Minutes 1) -ExecutionTimeLimit ([TimeSpan]::Zero)
Register-ScheduledTask -TaskName "Kinhavn Home Server" -Action $a -Trigger $t -Settings $s -Description "Kinhavn Home Server auf Port 4520"
Stellen Sie in Windows ein, dass der Rechner nicht in den Ruhezustand geht, und starten Sie Docker Desktop und Ollama mit der Anmeldung. Ein Update spielen Sie so ein:
cd C:\Kinhavn
Stop-ScheduledTask -TaskName "Kinhavn Home Server"
git pull --ff-only
npm ci
npm run build
Start-ScheduledTask -TaskName "Kinhavn Home Server"
Invoke-RestMethod http://127.0.0.1:4520/health
13 Linux
Unter Ubuntu sind es dieselben Schritte mit anderen Befehlen:
# Ubuntu 24.04 LTS, als normaler Benutzer mit sudo
sudo apt update && sudo apt install -y git curl ca-certificates
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt install -y nodejs
curl -fsSL https://get.docker.com | sudo sh && sudo usermod -aG docker $USER
curl -fsSL https://ollama.com/install.sh | sh
# neu anmelden, dann:
git clone <GIT-ADRESSE-AUS-IHRER-EINLADUNG> ~/kinhavn && cd ~/kinhavn
npm ci && npm run build
ollama pull qwen3.5:9b && ollama pull llama-guard3:1b
docker compose -f docker/searxng/docker-compose.yml up -d
cp packages/home-server/.env.example packages/home-server/.env
openssl rand -base64 48 # als SESSION_SECRET eintragen, übrige Werte wie unter Windows
nano packages/home-server/.env
npm run start -w @kinhavn/home-server
# Dauerbetrieb als systemd-Dienst
sudo tee /etc/systemd/system/kinhavn-home.service >/dev/null <<UNIT
[Unit]
Description=Kinhavn Home Server
After=network-online.target docker.service ollama.service
[Service]
User=$USER
WorkingDirectory=$HOME/kinhavn
ExecStart=/usr/bin/npm run start -w @kinhavn/home-server
Restart=on-failure
[Install]
WantedBy=multi-user.target
UNIT
sudo systemctl daemon-reload && sudo systemctl enable --now kinhavn-home
# Zugriff nur aus dem Heimnetz
sudo ufw allow from 192.168.0.0/16 to any port 4520 proto tcp
14 Wenn etwas nicht geht
| Was Sie sehen | Woran es liegt | Was hilft |
|---|---|---|
| „Die KI macht gerade Pause“ | Ollama oder das Sicherheitsmodell antworten nicht | ollama list prüfen, Ollama starten, llama-guard3:1b laden |
| Geräte finden den Server nicht | Firewall, falsche Adresse, Rechner schläft | Firewall-Regel aus Schritt 7, feste Adresse im Router, Energiesparen aus |
| Suche liefert nichts | SearXNG läuft nicht | Docker Desktop starten, docker compose -f docker\searxng\docker-compose.yml up -d |
| Port 4520 belegt | ein anderes Programm oder eine zweite Instanz | Get-NetTCPConnection -LocalPort 4520, anderes Programm beenden oder PORT ändern |
| Einrichtungstoken weg | Fenster geschlossen | steht in logs\setup-token.txt; nach einem Neustart gilt ein neues |
| Anmeldung bei der Zentrale abgelehnt | Code abgelaufen, schon benutzt oder vertippt | neuen Aktivierungscode bei uns anfordern |
Den Zustand zeigt http://localhost:4520/health. Bei Fragen: Kontakt. Bitte schicken Sie uns nie Chats oder Namen Ihrer Kinder, nur die Fehlermeldung.