CloudZH-Dokumentation
Alles, was du brauchst, um CloudZH zu installieren, deine Medien-Apps einzurichten, Freunde einzuladen und den Server gesund zu halten.
Was CloudZH ist
CloudZH macht aus einem Linux-Rechner zu Hause (Ubuntu, Debian oder Raspberry Pi OS) einen verwalteten Server. Es bringt ein Web-Dashboard, einen App Store mit 41 Apps, eine Mediathek für deine Freunde, ein WireGuard-VPN, Health-Checks mit sicheren Reparaturen und den Befehl zh auf dem Server.
Wie es aufgebaut ist
| Teil | Was er tut |
| Caddy | Der einzige Eingang. HTTPS für jede Subdomain mit einem Wildcard-Zertifikat. Admin-Apps sind erst nach der Dashboard-Anmeldung erreichbar. |
| Dashboard | Die Weboberfläche. Läuft ohne Privilegien in einem gehärteten Container. |
| Agent | Ein kleiner root-Dienst mit einer festen Liste von Befehlen, erreichbar über einen Unix-Socket. Installiert Apps, führt Reparaturen aus, liest Logs. |
| Apps | Docker Compose, ein Ordner pro App unter /opt/cloudzh/apps, Daten unter /srv/data. |
| Native Teile | WireGuard und UniFi OS Server laufen ausserhalb von Docker. Sie werden nur auf dem Server mit zh installiert. |
Was CloudZH nicht enthält
Keine Medien, keine Indexer und keine Torrent-Clients. Du bringst einen Usenet-Anbieter und Indexer deiner Wahl mit und nutzt die Apps mit Inhalten, die du nutzen darfst.
Platzhalter
Befehle und Adressen in dieser Dokumentation enthalten Platzhalter. Ersetze sie samt spitzen Klammern durch deine eigenen Werte.
| Platzhalter | Steht für | Beispiel |
<user> | Der Linux-Benutzer, den du bei der Installation von Ubuntu angelegt hast | anna |
<server-ip> | Die Adresse des Servers in deinem Heimnetz. Auf dem Server zeigt ip -4 -br addr sie in der Zeile des Netzwerkadapters, vor dem /. Auch dein Router führt sie bei seinen Geräten auf. | 192.168.1.200 |
example.com | Deine eigene Domain. app.example.com bedeutet app. gefolgt von deiner Domain. | app.example.com |
Aus ssh <user>@<server-ip> wird also zum Beispiel ssh anna@192.168.1.200.
Voraussetzungen
Was der Rechner, dein Netz und deine Domain brauchen, bevor du den Installer startest.
Server
- Betriebssystem: Ubuntu Server 24.04 LTS, 64-Bit Intel oder AMD (x86-64). Beginne mit einer frischen Installation.
- Prozessor und Arbeitsspeicher: mindestens 4 Kerne und 8 GB, 16 GB, wenn auch UniFi OS Server läuft. Plane mehr ein für Immich, Tdarr oder viele Benutzer, die gleichzeitig streamen.
- Disks: eine SSD für das System und eine separate Disk oder NVMe für deine Medien, eingehängt unter
/srv/data.
- Zugang: ein Benutzer mit
sudo-Rechten und SSH.
Netz
- Schliess den Server per Kabel an. WLAN funktioniert, aber Downloads, Plex und das VPN leiden darunter, und ein UniFi-Controller darf nie von seinem eigenen Access Point abhängen.
- Gib dem Server in deinem Router eine feste Adresse (DHCP-Reservierung), zum Beispiel
192.168.1.200. Die Doku nennt sie <server-ip>, siehe Server vorbereiten.
- Mit Domain leitest du TCP 443 im Router an den Server weiter. Für das VPN zusätzlich UDP 51820.
Domain
Optional. Ohne Domain läuft CloudZH im LAN-Modus, nur in deinem Heimnetz. Siehe Domain oder Heimnetz.
- Eine Domain, deren DNS-Zone bei Cloudflare verwaltet wird.
- Ein Cloudflare-API-Token mit der Berechtigung Zone · DNS · Edit für diese Zone. Verwende nicht den Global API Key.
Lizenz
- Ein Lizenzschlüssel (
CZL-XXXXX-XXXXX-XXXXX-XXXXX) und ein Installationsschlüssel (CZI-XXXXX-XXXXX-XXXXX) aus deiner Lizenz-E-Mail. Der Installationsschlüssel gilt für einen Server und nur bis zum Datum in der E-Mail.
Optionale Konten
- Ein Plex-Konto, ein Usenet-Anbieter und mindestens ein Usenet-Indexer.
- Ein API-Schlüssel eines KI-Anbieters, wenn du den Assistenten nutzen willst.
Installation
Etwa 15 Minuten von einem frischen Ubuntu bis zur ersten Anmeldung.
Zum ersten Mal hier?Die Kundenanleitung erklärt jeden Schritt, von deinem Konto und der Lizenz-E-Mail bis zu Ubuntu und der ersten Anmeldung.
<user> ist der Linux-Benutzer, den du bei der Installation von Ubuntu angelegt hast, <server-ip> die Adresse des Servers in deinem Heimnetz, zum Beispiel 192.168.1.200. Auf dem Server zeigt ip -4 -br addr sie in der Zeile des Netzwerkadapters. Mehr unter Platzhalter.
Ubuntu aktualisieren
sudo apt update && sudo apt full-upgrade -y
sudo reboot
Installer auf den Server kopieren
Lade den Installer in deinem Kundenkonto unter Meine Lizenzen → Installer herunterladen herunter, eine Datei mit einem Namen wie cloudzh-0.35.0-stable-customer.tar.gz. Die Seite zeigt auch die SHA-256-Prüfsumme. Kopiere ihn von deinem Computer hinüber und entpacke ihn dann auf dem Server. <file> ist der Name der Installer-Datei:
scp <file> <user>@<server-ip>:~
ssh <user>@<server-ip>
mkdir -p ~/cloudzh && tar xzf ~/<file> -C ~/cloudzh --strip-components=1
cd ~/cloudzh
Installer starten
Der Installer fragt nach deiner Domain (für den LAN-Modus leer lassen), dem Cloudflare-Token, deinem Lizenzschlüssel und dem Installationsschlüssel. Um die Schlüssel ohne Rückfragen zu übergeben:
sudo CZH_LICENSE_KEY=CZL-XXXXX-XXXXX-XXXXX-XXXXX \
CZH_INSTALL_KEY=CZI-XXXXX-XXXXX-XXXXX bash install.sh
Am Ende zeigt er die Dashboard-Adresse, einen Einrichtungs-Token und, auf einem neuen Server, wo der Backup-Schlüssel liegt. Speichere den Backup-Schlüssel in deinem Passwortmanager; ohne ihn lassen sich Backups nicht öffnen:
sudo cat /etc/cloudzh/backup.key
Anmelden und prüfen
Öffne die Dashboard-Adresse, gib den Einrichtungs-Token ein und lege deinen Administrator an. Token verloren? zh token zeigt ihn erneut. Dann auf dem Server:
Weiter mit Domain & HTTPS und Erste Schritte.
Was der Installer einrichtet
- Docker, Caddy, das Dashboard und den Agenten als systemd-Dienste
- Den Datenbaum unter
/srv/data (siehe Datenstruktur)
- Fail2Ban und die SSH-Begrüssung mit einem kurzen Status
- Die Diagnose-Werkzeuge: Speedtest,
mtr, iperf3, dig, smartctl, sensors, ethtool, iw, htop, ncdu
- Den Befehl
zh für jeden Benutzer mit sudo-Rechten
Schon installiert?Aktiviere eine Lizenz auf einem bestehenden Server mit zh license activate oder im Dashboard unter Mein Konto → Abonnement.
Domain & HTTPS
CloudZH gibt jeder App ihre eigene HTTPS-Adresse unter deiner Domain, mit einem Wildcard-Zertifikat.
Auf dieser Seite steht example.com für deine eigene Domain und <server-ip> für die Adresse des Servers zu Hause, zum Beispiel 192.168.1.200. Keine Domain? Dann läuft CloudZH im LAN-Modus, siehe Domain oder Heimnetz.
DNS-Einträge
Lege einen Wildcard-Eintrag an, der auf deine öffentliche IP-Adresse zeigt. Deine Hauptdomain und deine E-Mail können bleiben, wo sie sind.
| Typ | Name | Wert | Proxy |
| A | * | deine öffentliche IP | DNS only |
Deine öffentliche IP: auf dem Server curl -4 -s https://ifconfig.me.
Adressen, die du bekommst
| Adresse | Verwendung |
app.example.com | Dashboard. Der Installer fragt nach der Subdomain und schlägt dash vor. |
plex.example.com | Plex, für Apps und Freunde ausserhalb deines Zuhauses |
sonarr.example.com und weitere | Admin-Apps, hinter der Dashboard-Anmeldung |
vpn.example.com | WireGuard-Endpunkt. Muss direkt auf deine IP zeigen, nie über den Cloudflare-Proxy. |
Deine Hauptdomain
Ohne weitere Einrichtung leitet example.com selbst zum Dashboard weiter, und sie darf genauso gut weiter auf deine bestehende Website oder deinen Mail-Host zeigen. Um stattdessen eine statische Website vom Server auszuliefern, richte den Root-Eintrag auf deine IP und veröffentliche einen Ordner mit einer index.html:
zh website deploy /home/<user>/my-site
zh website on
zh website status # shows whether the DNS records already point here
www.example.com leitet dann auf example.com weiter, und zh website rollback holt die vorherige Version zurück.
Zertifikat
Caddy beantragt das Wildcard-Zertifikat über die DNS-Prüfung von Cloudflare (DNS-01), deshalb ist kein Port 80 nötig. Gib deinen API-Token ein, wenn der Installer danach fragt; zh cloudflare-token prüft und ersetzt ihn später. System Health zeigt, wann das Zertifikat gültig ist.
Innerhalb deines Heimnetzes
Von zu Hause aus löst app.example.com auf deine öffentliche IP auf, und der Verkehr geht durch den Router und wieder zurück. Viele Router machen das langsam. Lege auf deinem Computer einen Hosts-Eintrag an, damit es direkt zum Server geht:
<server-ip> app.example.com
Zum Beispiel 192.168.1.200 app.example.com. Windows: C:\Windows\System32\drivers\etc\hosts. macOS und Linux: /etc/hosts. Die Leistungsdiagnose sagt dir, wann das zutrifft.
Erste Schritte
Mit dieser Reihenfolge erledigen die automatischen Verbindungen den grössten Teil der Arbeit.
Sichere dein Konto. Mein Konto → Anmeldung: Füge einen Passkey oder eine Authenticator-App hinzu und speichere die Wiederherstellungscodes.
Installiere die Download-Apps. App Store: SABnzbd (das Formular fragt nach deinem Usenet-Server), dann Prowlarr, Radarr und Sonarr.
Füge Indexer nur in Prowlarr hinzu. Prowlarr synchronisiert sie mit Radarr und Sonarr. Siehe
Mediathek.
Installiere Plex mit dem Assistenten. Klicke auf
Mit Plex verbinden, wähle Bibliotheken und Sprache. Siehe
Einrichtungsassistenten.
Verbinde die Apps. Apps → Apps verbinden oder zh apps wire.
Übernimm die TRaSH-Empfehlungen. Apps → TRaSH-Empfehlungen, dann Mediathek → Qualität.
Richte das VPN ein. zh vpn install, UDP 51820 weiterleiten,
zh vpn add phone. Siehe
VPN.
Schalte Zugriffsregeln ein. Sicherheit: Admin-Zugriff nur von zu Hause und per VPN, 2FA Pflicht.
Lade Freunde ein. Benutzer & Rechte → Einladungen.
Kundenanleitung
Vom Konto zum laufenden Server
Zehn kurze Schritte für alle, die CloudZH gekauft haben oder ausprobieren wollen. Kein Vorwissen nötig: Jeder Schritt sagt, was du anklicken und was du eintippen musst.
1. Konto erstellenAuf account.cloudzh.app, geschützt mit einem Passkey oder einer Zwei-Faktor-Anmeldung. 2. Lizenz holenEinen Testcode einlösen oder ein Abo kaufen. 3. Deine Lizenz-E-MailWofür die zwei Schlüssel da sind und warum du die E-Mail aufbewahrst. 4. Server vorbereitenHardware, Ubuntu und eine feste Adresse zu Hause. 5. Domain oder HeimnetzHTTPS von überall oder LAN-Modus nur zu Hause. 6. CloudZH installierenInstaller starten, Schlüssel eingeben, anmelden. 7. AlltagApps, Freunde, Backups, Updates, System Health. 8. Umziehen oder neu installierenServer freigeben, neue Schlüssel, verlorener Lizenzschlüssel. 9. Abo & RechnungenÄndern oder kündigen, Rechnungen herunterladen. 10. Hilfe bekommenSupport-Anfragen, Discord und zh doctor.
Was du brauchst
- Eine E-Mail-Adresse, die du auf deinem Computer lesen kannst.
- Einen Rechner für den Server: 64-Bit Intel oder AMD mit mindestens 4 Kernen und 8 GB Arbeitsspeicher, siehe Schritt 4.
- Einen zweiten Computer (Windows, macOS oder Linux), um Dateien herunterzuladen und Befehle einzutippen.
- Zugang zu deinem Router, um dem Server eine feste Adresse zu geben.
- Optional: deine eigene Domain mit DNS bei Cloudflare, für den Zugriff von ausserhalb deines Zuhauses.
Platzhalter
Befehle enthalten Platzhalter. Ersetze sie samt spitzen Klammern durch deine eigenen Werte.
| Platzhalter | Steht für | Beispiel |
<user> | Der Linux-Benutzer, den du bei der Installation von Ubuntu anlegst | anna |
<server-ip> | Die Adresse des Servers in deinem Heimnetz. Schritt 4 zeigt, wie du sie findest. | 192.168.1.200 |
example.com | Deine eigene Domain, falls du eine nutzt | app.example.com |
Schritt 1 von 10
Konto erstellen
Dein Konto unter account.cloudzh.app enthält deine Lizenzen, Server, Rechnungen und Support-Anfragen.
Registrieren
Öffne account.cloudzh.app und klicke unter dem Anmeldeformular auf Registrieren.
Gib deinen Namen und deine E-Mail-Adresse ein, akzeptiere die AGB und warte, bis die Sicherheitsprüfung durch ist. Klicke auf Konto erstellen.
Öffne die E-Mail E-Mail-Adresse bestätigen und klicke auf E-Mail bestätigen. Der Link gilt 24 Stunden. Nichts angekommen? Schau im Spam-Ordner nach. Wenn du dich anzumelden versuchst, bietet CloudZH auch Bestätigungslink erneut senden an.
Lege dein Passwort fest: mindestens 10 Zeichen. Ein Satz aus mehreren Wörtern ist sicher und leicht zu merken. Klicke auf Speichern und anmelden.
CloudZH gekauft, bevor du ein Konto hattest? Registriere dich mit der E-Mail-Adresse, die du beim Bezahlen verwendet hast. Deine Lizenzen erscheinen dann in deinem Konto, und du bekommst eine E-Mail, dass sie verknüpft wurden.
Konto schützen
Wer sich in dein Konto einloggt, kann neue Schlüssel für deine Lizenz bestellen. Füge unter Sicherheit einen zweiten Faktor hinzu:
| Möglichkeit | So geht's |
| Passkey (empfohlen) | Passkeys → Hinzufügen. Danach meldest du dich mit Fingerabdruck, Gesicht oder PIN deines Geräts an. |
| Authenticator-App | Zwei-Faktor (App) → Einrichten. Scanne den QR-Code mit einer App wie Google Authenticator, 1Password oder Bitwarden und gib den 6-stelligen Code ein. |
CloudZH zeigt dann Wiederherstellungscodes. Jeder funktioniert einmal, falls du dein Telefon oder deinen Passkey verlierst. Bewahre sie in deinem Passwortmanager auf.
Das Menü
| Seite | Was du dort machst |
| Übersicht | Aktive Lizenzen, Server und offene Anfragen auf einen Blick |
| Lizenzen → Meine Lizenzen | Lizenzen, Server, Installationsschlüssel; einen Server freigeben, einen Lizenzschlüssel neu ausstellen |
| Lizenzen → Kaufen | Ein Abo kaufen |
| Lizenzen → Code einlösen | Test-, Geschenk- und Aktionscodes |
| Konto → Rechnungen | Rechnungen und der Weg zur Verwaltung deines Abos |
| Konto → Sicherheit | Passkeys, Zwei-Faktor, Passwort, Name, angemeldete Geräte, letzte Ereignisse, Konto löschen |
| Hilfe → Meine Anfragen | Deine Support-Anfragen; ein Zähler zeigt neue Antworten |
| Hilfe → Discord | Die CloudZH-Community |
Deine E-Mail-Adresse lässt sich nur über den Support ändern.
Schritt 2 von 10
Lizenz holen
Eine Lizenz gilt für einen Server, als Standard (ein Dashboard-Konto) oder Pro (alle Funktionen, Konten für Familie und Freunde). Starte mit einer kostenlosen Testphase oder kaufe ein Abo.
Test- oder Geschenkcode einlösen
Öffne den Link, den du bekommen hast, zum Beispiel https://account.cloudzh.app/redeem/<CODE>, oder geh in deinem Konto auf Code einlösen und tippe den Code ein.
Unter dem Feld zeigt CloudZH, was dir der Code bringt, zum Beispiel Testlizenz für 30 Tage, 1 Server. Klicke auf Einlösen.
Deine Lizenz ist bereit: Die Lizenz erscheint unter Meine Lizenzen, und die Schlüssel kommen innert Minuten per E-Mail.
Noch nicht angemeldet? Der Link bittet dich, dich zuerst anzumelden oder ein Konto zu erstellen. Ist der Code nach der Bestätigung deiner E-Mail nicht mehr ausgefüllt, öffne den Link erneut oder tippe ihn unter Code einlösen ein.
- Eine Testlizenz gilt für einen Server und endet von selbst. Es gibt eine Testlizenz pro Konto und eine pro Rechner.
- Manche Codes verlängern eine Lizenz, die du schon hast. CloudZH fragt, welche.
- Rabattcodes für ein Abo gehören nicht hierher. Gib sie auf der Zahlungsseite ein.
Ein Abo kaufen
Klicke in deinem Konto auf Kaufen.
Wähle Monatlich oder Jährlich und die Anzahl Server. Jeder Server braucht eine eigene Lizenz.
Klicke auf Weiter zur Zahlung. Die Zahlung läuft über Stripe; Verkäufer ist Link (Sold through Link, LLC, a Stripe company), und die Steuern werden für dein Land berechnet.
Nach der Zahlung bist du zurück unter Meine Lizenzen. Die Lizenz erscheint innert Sekunden, die Schlüssel kommen per E-Mail.
Du kannst auch ohne Konto unter Preise auf dieser Website kaufen. Die Schlüssel gehen dann an die E-Mail-Adresse, die du beim Bezahlen angibst. Erstelle dein Konto später mit derselben Adresse, um die Lizenz dort zu sehen.
Schon ein Konto?Dann kauf unter Kaufen. Die Lizenz landet sofort in deinem Konto.
Schritt 3 von 10
Deine Lizenz-E-Mail
Deine Schlüssel erscheinen nie in deinem Konto. Der Lizenzdienst schickt sie von support@cloudzh.app per E-Mail, meist innert Minuten.
Was drinsteht
| Zeile | Beispiel | Bedeutung |
| Plan | Monatlich, 1 Server | Abo oder Testlizenz und die Anzahl Server |
| Bezahlt bis oder Gültig bis | 8. Nov. 2026 | Bis zu diesem Datum läuft die Lizenz. Abos verlängern sich automatisch. |
| Lizenzschlüssel | CZL-XXXXX-XXXXX-XXXXX-XXXXX | Deine Lizenz. Sie bleibt jahrelang gleich, und jeder Server fragt danach. |
| Installationsschlüssel | CZI-XXXXX-XXXXX-XXXXX | Ein Einmal-Ticket für genau einen Server, gültig bis zum Datum daneben. Einer pro Server. |
Warum zwei Schlüssel: Wer deinen Lizenzschlüssel auf einem Screenshot sieht, kann ohne einen frischen Installationsschlüssel aus deinem Konto trotzdem keinen Server aktivieren.
Welche E-Mails du bekommst
| Betreff | Wann | Inhalt |
| Your CloudZH licence | Nach einem Kauf | Lizenzschlüssel, ein Installationsschlüssel pro Server (30 Tage gültig), Anleitung zur Installation, Verwaltung des Abos |
| Deine CloudZH-Lizenz ist bereit | Nach dem Einlösen eines Codes | Lizenzschlüssel und ein Installationsschlüssel |
| Dein neuer Installationsschlüssel | Nach Installationsschlüssel erzeugen | Ein Installationsschlüssel, 7 Tage gültig |
| Dein neuer Lizenzschlüssel | Nach Lizenzschlüssel neu ausstellen | Der neue Lizenzschlüssel; der alte funktioniert nicht mehr |
| Additional CloudZH installation keys | Nachdem du deinem Abo Server hinzugefügt hast | Installationsschlüssel für die zusätzlichen Server |
Bewahre diese E-Mail aufWir speichern nur einen Fingerabdruck deiner Schlüssel und können sie nicht noch einmal anzeigen. Bewahre die E-Mail auf oder kopiere die Schlüssel in deinen Passwortmanager. Lizenzschlüssel verloren? In deinem Konto kannst du ihn neu ausstellen.
Nach ein paar Minuten keine E-Mail? Schau im Spam-Ordner nach. Unter Meine Lizenzen kannst du den Lizenzschlüssel neu ausstellen und einen Installationsschlüssel erzeugen; beide kommen wieder per E-Mail.
Der Installer
Der Installer ist eine Datei mit einem Namen wie cloudzh-0.35.0-stable-customer.tar.gz. Lade sie in deinem Kundenkonto unter Meine Lizenzen → Installer herunterladen herunter; der Knopf erscheint, sobald du eine gültige Lizenz hast, aus einem Kauf oder einem Code. Daneben findest du die SHA-256-Prüfsumme, um den Download zu überprüfen (sha256sum <file> unter Linux, Get-FileHash <file> in PowerShell).
Schritt 4 von 10
Server vorbereiten
Ein frisches Ubuntu Server, eine feste Adresse in deinem Heimnetz und idealerweise eine zweite Disk für deine Medien. Etwa 30 Minuten.
Hardware
- 64-Bit-Prozessor von Intel oder AMD mit mindestens 4 Kernen, zum Beispiel ein Mini-PC.
- 8 GB Arbeitsspeicher, 16 GB, wenn auch UniFi OS Server laufen soll.
- Eine SSD für das System, idealerweise eine zweite Disk für deine Medien.
- Ein Netzwerkkabel zu deinem Router. WLAN funktioniert, aber Downloads, Plex und das VPN leiden darunter.
- Ein USB-Stick mit mindestens 4 GB für den Ubuntu-Installer.
Ubuntu Server installieren
Lade
Ubuntu Server 24.04 LTS von
ubuntu.com/download/server herunter und schreib es mit Rufus (Windows) oder balenaEtcher auf den USB-Stick.
Stell im BIOS After Power Loss auf Power On, damit der Server nach einem Stromausfall von selbst startet.
Starte den Server vom Stick und wähle:
| Bildschirm | Auswahl |
| Sprache | English |
| Tastatur | Dein Tastaturlayout |
| Installationsart | Ubuntu Server, nicht «minimized» |
| Netz | Netzwerkkabel, Adresse vorerst per DHCP |
| Speicher | Die ganze System-SSD. Entferne das Häkchen bei Set up this disk as an LVM group, keine Verschlüsselung. Wähle die Mediendisk nicht aus. |
| Profil | Ein Servername in Kleinbuchstaben, zum Beispiel mediaserver. Dein Benutzername wird zu <user>. Ein starkes Passwort. |
| Ubuntu Pro | Vorerst überspringen |
| SSH | Setze das Häkchen bei Install OpenSSH server |
| Featured Snaps | Nichts auswählen, auch nicht Docker |
Melde dich nach dem Neustart auf dem Server an als
<user>, setz deine Zeitzone und aktualisiere:
sudo timedatectl set-timezone Europe/Zurich # your zone; list: timedatectl list-timezones
sudo apt update && sudo apt full-upgrade -y
sudo reboot
Dem Server eine feste Adresse geben
Dein Router verteilt Adressen. Reserviere eine für den Server, damit sie sich nie ändert.
Zeige auf dem Server die Adresse und die MAC-Adresse des Netzwerkadapters an:
ip -4 -br addr
ip -br link
Schau dir die Zeile deines Netzwerkadapters an: Sein Name beginnt meist mit en oder eth (WLAN mit wl); ignoriere lo. Beispiel: enp3s0 UP 192.168.1.200/24. Die Adresse vor dem / ist deine <server-ip>, hier 192.168.1.200. In der Ausgabe von ip -br link sieht die MAC-Adresse aus wie aa:bb:cc:dd:ee:ff.
Lege in deinem Router eine DHCP-Reservierung für diese MAC-Adresse an, manchmal auch feste oder statische IP genannt. Dein Router führt den Server dann mit dieser Adresse bei seinen Geräten auf. Starte den Server danach mit sudo reboot neu.
Ab jetzt arbeitest du von deinem Computer aus. Öffne ein Terminal (Windows: PowerShell) und verbinde dich:
Zum Beispiel ssh anna@192.168.1.200. Beim ersten Mal antwortest du mit yes, dann gibst du das Passwort von <user> ein.
SSH nie weiterleitenLeite SSH in deinem Router nicht weiter. Du brauchst es nur in deinem Heimnetz.
Zweite Disk für Medien
Optional, aber empfohlen. CloudZH legt Medien und Downloads in /srv/data ab; hänge die Mediendisk dort ein, bevor du installierst. Disks anzeigen:
Neue, leere Disk: formatiere sie. Das löscht alles auf der Disk, prüfe den Gerätenamen also zweimal. /dev/nvme0n1 ist ein Beispiel:
sudo wipefs -a /dev/nvme0n1
sudo mkfs.ext4 -L cloudzh-data /dev/nvme0n1
Disk, die schon Medien enthält: setze nur das Label, zum Beispiel sudo e2label /dev/nvme0n1p1 cloudzh-data.
Dann hänge sie ein, jetzt und nach jedem Neustart:
sudo mkdir -p /srv/data
grep -q 'LABEL=cloudzh-data' /etc/fstab || echo 'LABEL=cloudzh-data /srv/data ext4 defaults,noatime 0 2' | sudo tee -a /etc/fstab
sudo findmnt --verify
sudo systemctl daemon-reload && sudo mount -a
df -h /srv/data
Vorhandene Filme und Serien gehören nach /srv/data/media/movies und /srv/data/media/tv.
Schritt 5 von 10
Domain oder Heimnetz
Entscheide vor der Installation: HTTPS von überall mit deiner eigenen Domain oder LAN-Modus nur in deinem Heimnetz.
| Domain-Modus | LAN-Modus |
| Dashboard | https://app.example.com, von überall | http://<server-ip>, nur zu Hause |
| Apps | Jede mit eigener HTTPS-Adresse, zum Beispiel plex.example.com | Serveradresse und der übliche Port der App |
| Passkeys | Ja | Nein, sie brauchen HTTPS auf deiner eigenen Domain |
| Du brauchst | Eine Domain mit DNS bei Cloudflare (der Gratis-Plan reicht) und Zugang zu deinem Router | Sonst nichts |
example.com steht für deine eigene Domain, <server-ip> für die Adresse des Servers zu Hause, zum Beispiel 192.168.1.200.
Domain-Modus vorbereiten
Erstelle einen Cloudflare-API-Token. Cloudflare → My Profile → API Tokens → Create Token → Vorlage Edit zone DNS → Zone Resources: Include, Specific zone, deine Domain → Create Token. Kopiere den Token; der Installer fragt danach. Verwende einen API-Token, nie den Global API Key, und füge ihn nie in Chats oder E-Mails ein.
Lege einen DNS-Eintrag an. Cloudflare → deine Domain → DNS → Records:
| Typ | Name | Wert | Proxy |
| A | * | deine öffentliche IP | DNS only (graue Wolke) |
Lass bestehende Einträge für deine Website oder Mail, wie sie sind. Deine öffentliche IP: auf dem Server
curl -4 -s https://ifconfig.me. Ändert sie sich ab und zu, brauchst du zusätzlich einen Dynamic-DNS-Dienst.
Leite in deinem Router einen Port weiter. TCP 443 an <server-ip>, für Dashboard, Apps und Plex. Für das VPN später zusätzlich UDP 51820. Sonst nichts.
Mehr zu Adressen, zum Zertifikat und zum Hosts-Eintrag für schnelleren Zugriff zu Hause: Domain & HTTPS.
LAN-Modus
Lass die Domain leer, wenn der Installer danach fragt. Das Dashboard öffnet sich dann unter http://<server-ip> in deinem Heimnetz.
Um später auf eine Domain zu wechseln, bereite sie wie oben vor und starte den Installer erneut in seinem Ordner (cd ~/cloudzh && sudo bash install.sh). Er fragt, ob er neu einrichten soll; Benutzer und Apps bleiben erhalten.
Schritt 6 von 10
CloudZH installieren
Kopiere den Installer auf den Server, starte ihn und gib deine zwei Schlüssel ein. Der Installer selbst braucht 5 bis 10 Minuten.
Du brauchst die Installer-Datei aus Meine Lizenzen → Installer herunterladen in deinem Kundenkonto und deine Lizenz-E-Mail. <user> und <server-ip> stammen aus Schritt 4; <file> ist der Name der Installer-Datei, zum Beispiel cloudzh-0.35.0-stable-customer.tar.gz.
Installer auf den Server kopieren
Auf deinem Computer, im Ordner mit dem Installer (Windows: PowerShell, zum Beispiel nach cd Downloads):
scp <file> <user>@<server-ip>:~
Entpacken und starten
ssh <user>@<server-ip>
mkdir -p ~/cloudzh && tar xzf ~/<file> -C ~/cloudzh --strip-components=1
cd ~/cloudzh && sudo bash install.sh
sudo fragt nach dem Passwort von <user>.
Fragen beantworten
| Frage | Antwort |
| Domain (leer lassen für LAN-Modus) | Deine Domain oder leer für den LAN-Modus |
| Subdomain fürs Dashboard | Zum Beispiel app; Enter behält dash |
| E-Mail für Let's Encrypt | Deine E-Mail-Adresse |
| Cloudflare-API-Token | Füge den Token ein. Er bleibt beim Tippen unsichtbar; der Installer prüft ihn bei Cloudflare. |
| Zentraler Datenordner | Enter, für /srv/data |
| Lizenzschlüssel (CZL-…) | Der Lizenzschlüssel aus deiner E-Mail |
| Installationsschlüssel (CZI-…) | Ein Installationsschlüssel aus deiner E-Mail |
Subdomain, E-Mail und Cloudflare-Token werden nur im Domain-Modus abgefragt. Lass den Lizenzschlüssel leer, um später mit zh license activate zu aktivieren; bis dahin läuft CloudZH im eingeschränkten Modus.
Backup-Schlüssel sichern
Am Ende zeigt der Installer die Dashboard-Adresse und einen Einrichtungs-Token. Kopiere den Backup-Schlüssel in deinen Passwortmanager; ohne ihn lassen sich Backups nicht öffnen:
sudo cat /etc/cloudzh/backup.key
Lagen in /srv/data schon Medien? Dann führe zusätzlich sudo chown -R cloudzh:cloudzh /srv/data aus.
Zum ersten Mal anmelden
Öffne die Dashboard-Adresse: https://app.example.com mit Domain, http://<server-ip> im LAN-Modus. Gib den Einrichtungs-Token ein und lege deinen Administrator an. Token verloren? zh token zeigt ihn erneut.
Prüfen
Melde dich einmal von SSH ab und wieder an, dann:
Mein Konto → Abonnement im Dashboard zeigt die Lizenz dieses Servers.
Schritt 7 von 10
Alltag
Was du tust, sobald CloudZH läuft. Jeder Teil verlinkt auf die Seite mit allen Details.
Anmeldung absichern
Mein Konto → Anmeldung: Füge einen Passkey oder eine Authenticator-App hinzu und speichere die Wiederherstellungscodes. Sobald das VPN funktioniert, erlaube unter Sicherheit den Admin-Zugriff nur von zu Hause und per VPN.
Apps installieren
Öffne den App Store, wähle eine App und klicke auf Installieren. Eine gute Reihenfolge: SABnzbd, Prowlarr, Radarr und Sonarr, dann Plex mit seinem Assistenten. CloudZH verbindet sie für dich. Siehe Erste Schritte und Apps & App Store.
Freunde einladen
Benutzer & Rechte → Einladungen → Einladen. Wähle Rechte und Apps, wie lange der Link gilt (1 bis 30 Tage) und wie viele Konten er anlegen darf, und schick dann den Link. Er wird nur einmal angezeigt. Siehe Freunde & Rechte.
Backups
Betrieb → Backups → Jetzt sichern oder auf dem Server:
Bewahre eine Kopie auf einem anderen Rechner auf und den Backup-Schlüssel in deinem Passwortmanager. Deine Medien sind nicht Teil des Backups.
Updates
Eine neue CloudZH-Version erscheint in der Übersicht unter Braucht Aufmerksamkeit. Klicke auf Aktualisieren oder auf dem Server:
Einstellungen → Updates zeigt, ob Updates auf deinem Server eingerichtet sind. Die neue Version stattdessen als Installer-Archiv bekommen? Entpacke es und führe zh upgrade aus, siehe Backups & Updates. Jede App-Seite hat ihr eigenes Aktualisieren für die App.
System Health
System Health prüft den ganzen Server. Rot heisst Problem, Gelb Hinweis. Sichere Fälle werden automatisch repariert; die meisten anderen Befunde haben einen Knopf, der sie behebt. Auf dem Server:
zh doctor # check
zh doctor --fix # check and run safe repairs
Siehe System Health.
Schritt 8 von 10
Server umziehen oder neu installieren
Eine Lizenz zählt aktive Server. Gib den Platz des alten Servers frei und aktiviere dann den neuen mit einem neuen Installationsschlüssel.
Neue Hardware oder ein frisches Ubuntu
Alten Server freigeben. In deinem Konto: Meine Lizenzen → Server → Freigeben. Oder auf dem alten Server mit zh license release, oder in seinem Dashboard unter Mein Konto → Abonnement → Freigeben. Auf dem freigegebenen Server laufen die Apps weiter, im eingeschränkten Modus ohne Updates.
Installationsschlüssel erzeugen. Meine Lizenzen → Installationsschlüssel erzeugen. Er kommt per E-Mail und gilt 7 Tage für genau einen Server.
Neuen Server einrichten wie in
Schritt 4 bis 6, mit deinem Lizenzschlüssel und dem neuen Installationsschlüssel.
CloudZH ist schon installiert und braucht nur eine Lizenz? Führe zh license activate aus oder nutze im Dashboard Mein Konto → Abonnement.
Installationsschlüssel erzeugen bleibt ausgegraut, solange alle Plätze belegt sind. Gib zuerst einen Server frei oder ziehe einen ungenutzten Schlüssel unter Offene Installationsschlüssel → Zurückziehen zurück.
Lizenzschlüssel verloren
Meine Lizenzen → Lizenzschlüssel neu ausstellen.
Tippe die letzten 5 Zeichen ein, die im Fenster stehen, und klicke auf Neu ausstellen.
Der neue Lizenzschlüssel kommt per E-Mail.
Der alte Lizenzschlüssel und alle offenen Installationsschlüssel gelten sofort nicht mehr. Bereits aktive Server laufen weiter. Für einen Server, den du noch nicht eingerichtet hast, erzeugst du einen neuen Installationsschlüssel.
Hardware ohne Freigabe gewechselt
Wenn du die Systemdisk in andere Hardware einbaust, läuft der Server weiter und zeigt Hardware geändert. Nutzen zwei Maschinen dieselbe Lizenz, behält sie nur eine. Gib den alten Server vorher frei, dann passiert das nicht.
Schritt 9 von 10
Abo & Rechnungen
Link (Stripe) verkauft und verwaltet dein Abo. Die Rechnungen siehst du in deinem Konto.
Ändern oder kündigen
In deinem Konto: Rechnungen → Abo verwalten → Link öffnen.
Melde dich bei Link mit der E-Mail-Adresse an, mit der du gekauft hast.
Ändere das Zahlungsmittel oder die Anzahl Server, oder kündige.
Mehr Server: Die Installationsschlüssel dafür kommen per E-Mail. Weniger Server: Gib zuerst die Server frei, die du nicht mehr brauchst.
Nach der Kündigung
Das Abo läuft bis zum Ende der bezahlten Periode und wird nicht verlängert. Danach folgt eine Zahlungsfrist von 7 Tagen, anschliessend der eingeschränkte Modus: Deine Apps, Plex, VPN und Backups laufen weiter; CloudZH-Updates, neue Apps und neue Benutzer pausieren. Siehe Lizenzierung und die Rückerstattungsrichtlinie.
Zahlung offen
Scheitert eine Zahlung, zeigt Meine Lizenzen Zahlung offen. Prüfe dein Zahlungsmittel bei Link; sonst läuft der Server nach der Zahlungsfrist im eingeschränkten Modus.
Rechnungen
Unter Rechnungen steht jede Rechnung mit Nummer, Datum, Betrag und Status. Ansehen öffnet sie, PDF lädt sie herunter.
Konto löschen
Sicherheit → Konto löschen, bestätigt mit deiner E-Mail-Adresse. Kündige laufende Abos vorher bei Link. Rechnungen bleiben aufbewahrt, wie es das Gesetz verlangt.
Schritt 10 von 10
Hilfe holen
Die meisten Antworten findest du schon auf dem Server. Wenn nicht, schreib uns mit den richtigen Angaben.
Zuerst prüfen
- System Health: Gibt es ein Problem mit Reparatur-Button?
- Der Assistent im Dashboard, falls du ihn eingerichtet hast: Frag, was nicht stimmt.
- Diese Dokumentation: Drücke Ctrl K und such.
zh status # version, server, apps and licence
zh doctor # all checks
Support-Anfrage
In deinem Konto: Meine Anfragen → Neue Anfrage.
Wähle ein Thema, schreib einen Betreff und beschreibe, was passiert ist, was du versucht hast und welche CloudZH-Version läuft. Häng bis zu 3 Dateien à 5 MB an, zum Beispiel Screenshots oder Logs.
Klicke auf Senden. Wenn wir antworten, bekommst du eine E-Mail; lesen und antworten tust du in deinem Konto, nicht per E-Mail.
Kein Konto? Nutze account.cloudzh.app/support. Bestätige die Anfrage mit dem Link in der E-Mail, die wir dir schicken; erst danach sehen wir sie. Du kannst auch an support@cloudzh.app schreiben.
Discord und Feedback
Schnelle Hilfe aus der Community: Discord, auch unter Hilfe in deinem Konto und mit zh support auf dem Server. Im Dashboard kannst du unter Hilfe und Feedback (die Sprechblase oben rechts) eine Funktion wünschen oder einen Fehler melden.
Was du mitschicken solltest
- CloudZH-Version und Server (
zh status) - Ausgabe von
zh doctor - Der Text der Konsole oder Fehlermeldung, kopiert
- Was du gemacht und was du erwartet hast
Bevor du sendestEntferne API-Schlüssel, Passwörter, Lizenzschlüssel und deine öffentliche IP-Adresse aus Logs und Screenshots.
Rundgang durchs Dashboard
Wenige Menüeinträge, verwandte Seiten als Tabs und die Übersicht nach Wichtigkeit sortiert.
Seitenleiste
Die Seitenleiste hat drei Gruppen, die du einklappen kannst: Server, Verwaltung und Konto. Verwandte Seiten liegen als Tabs zusammen:
| Eingang | Tabs |
| Apps | Installiert · App Store · Homelab |
| Betrieb | Dienste & Funktionen · Backups · Logs · Leistung · Server-Befehle |
| Einstellungen | Allgemein · Darstellung |
| Mein Konto | Profil · Anmeldung · Geräte · Abonnement |
Übersicht
Die Übersicht ist ein Raster aus Widgets. Standardmässig zeigt sie zuerst Braucht Aufmerksamkeit, dann Apps und Downloads, die Werte für Prozessor, Arbeitsspeicher, Netzwerk und Laufzeit, danach Speicher und Aktivität. Probleme stehen vor Hinweisen. Mit Anpassen ordnest du sie nach deinem Geschmack, siehe Anpassen.
Live-Aktualisierung
Der grüne Punkt neben dem Seitentitel heisst: Die Seite ist live. Änderungen aus einem anderen Tab, vom Handy oder vom Befehl zh erscheinen ohne Neuladen. Tippst du gerade in einem Formular, zeichnet CloudZH nicht neu und zeigt stattdessen Neue Daten anzeigen. Nach einem CloudZH-Update lädt die Seite von selbst neu und bleibt, wo du warst.
Konsolen
Installationen, Updates und Reparaturen öffnen eine Konsole. Erfolgreiche Aufträge schliessen sich nach 60 Sekunden, fehlgeschlagene bleiben offen. Minimiere sie in die Leiste unten rechts; mehrere können gleichzeitig laufen.
Suchen
Drücke Ctrl K, um zu jeder Seite, App oder Einstellung zu springen.
Aussehen und Sprache
Einstellungen → Darstellung: Farben, Theme, Logo, Bezeichnungen und Formate, siehe Anpassen. Die Sprache wählt jeder Benutzer selbst: English, Deutsch, Español, Français, Português oder Türkçe.
Anpassen
Farben, Layout, Namen und Bilder: Fast alles, was du siehst, lässt sich ändern, und jede Änderung wirkt sofort.
Widgets der Übersicht
Öffne die Übersicht und klicke oben rechts auf Anpassen.
Zieh ein Widget an seinem Griff, ändere die Grösse an der Ecke unten rechts, entferne es mit ×. Widgets rasten in ein Raster mit 12 Spalten ein, und Lücken schliessen sich von selbst.
Widget hinzufügen fragt zuerst nach dem Typ (Hinweise, System, Speicher, Apps, Medien, eigene Inhalte), dann nach dem Element: eine einzelne App als Kachel, Prozessor, Arbeitsspeicher, Netzwerk, Laufzeit, freier Speicher, die Mediathek, eine Notiz oder ein Begrüssungstext.
Klicke auf Fertig zum Speichern, auf Abbrechen zum Verwerfen.
Jeder Benutzer hat sein eigenes Layout, auch Freunde; sie bekommen nur Widgets, für die sie Rechte haben. Administratoren legen im Anpassen-Modus ausserdem den Standard für Administratoren und den Standard für Freunde fest. Auf Standard zurücksetzen entfernt dein eigenes Layout. Die Tastatur geht auch: mit Tab zu einem Widget, mit den Pfeiltasten verschieben, zusammen mit Shift die Grösse ändern.
Darstellung
| Tab | Was du ändern kannst |
| Farben | Neun Vorlagen oder eine eigene Farbe (für das dunkle Theme automatisch aufgehellt), hell, dunkel oder wie das Gerät, Seitenleiste wie die Seite, dunkel oder in der Akzentfarbe |
| Struktur | Ecken rund, mittel oder eckig; Dichte kompakt, normal oder luftig; Überschriften mit oder ohne Serifen; Menüeinträge umbenennen oder ausblenden |
| Logo & Bilder | Dein Name und Logo statt CloudZH, ein Bild und Texte für die Anmeldeseite, der Willkommenstext für Freunde |
| Sprache & Formate | Standardsprache, Datums- und Zahlenformate |
Logo, Favicon, Buttons und Diagramme übernehmen die Akzentfarbe. Übersicht, Sicherheit, Darstellung und Einstellungen bleiben immer im Menü; ausgeblendete Seiten erreichst du weiterhin mit Ctrl K.
Profilbilder
Mein Konto → Profil: Klicke auf das Bild oder auf Hochladen, verschiebe und zoome den Ausschnitt, speichere. CloudZH speichert ein Bild mit 256 × 256 Pixeln und entfernt Standortdaten aus dem Foto. Administratoren können die Bilder anderer Benutzer im Benutzerfenster ändern oder entfernen.
Adressen verbergen
IP- und MAC-Adressen erscheinen unscharf, bis du sie anklickst, praktisch für Screenshots. Der Augen-Button oben deckt im Tab alle auf. Was unscharf wird, wählst du unter Mein Konto → Darstellung.
Apps & App Store
Apps installieren, aktualisieren und entfernen, mit Live-Konsole. Jede App bekommt eine eigene Adresse und ihre Daten unter einem gemeinsamen Baum.
Installieren
Wähle eine App im App Store und klicke auf Installieren. Manche Apps zeigen zuerst ein kurzes Formular, zum Beispiel SABnzbd (Usenet-Server) und Plex (Anmeldung und Bibliotheken). Apps, die eigene Passwörter erzeugen, etwa Paperless-ngx, Vaultwarden und Sonobarr, zeigen das Startpasswort auf der App-Seite.
App-Seite
Starten, stoppen, neu starten, das Image aktualisieren, Logs lesen, CPU und Arbeitsspeicher sehen, die App öffnen. Admin-Apps öffnen sich unter <app>.example.com hinter deinem Dashboard-Login (example.com steht für deine Domain). Im LAN-Modus öffnet sich eine App unter der Serveradresse und ihrem üblichen Port.
Tab Homelab
39 weitere Projekte, die wir angeschaut haben, mit Last (leicht, mittel, schwer), Voraussetzungen und Notizen: Home Assistant, Frigate, TP-Link Omada, Scrutiny, Apache Guacamole und andere. Aus dem Tab lassen sie sich nicht installieren. Nutze Eigene App hinzufügen, wenn du jetzt eine brauchst.
Deine eigenen Apps
Füge unter Apps eine eigene Compose-App hinzu. Sie bekommt eine Karte, eine Subdomain hinter dem Login, Logs und Backups. Eigene Apps behalten ein Symbol aus zwei Buchstaben und bekommen nie ein Einrichtungsformular.
Native Apps
WireGuard und UniFi OS Server laufen nicht in Docker. Installiere sie auf dem Server:
zh vpn install
zh unifi install
Bewusst weggelassen
Torrent-Clients und Tools dafür, Readarr (eingestellt), Overseerr, Jellyseerr und Ombi (abgelöst durch Seerr), Unpackerr (SABnzbd entpackt selbst), andere Dashboards und Docker-Manager.
Einrichtungsassistenten & automatische Verbindungen
Gib die Angaben einmal beim Installieren ein. Den Rest verbindet CloudZH.
Plex-Assistent
- Klicke auf Mit Plex verbinden. Ein Plex-Anmeldefenster öffnet sich (offizielle PIN-Anmeldung).
- Wähle Servername, Bibliotheken (Filme, Serien, optional Musik), Ordner und Metadatensprache.
- CloudZH übernimmt den Server, legt die Bibliotheken an und trägt dein Heimnetz sowie die Adresse
https://plex.example.com:443 ein (mit deiner Domain).
Dein Plex-TokenDas Plex-Kontotoken bleibt nur im Arbeitsspeicher des Dashboards, höchstens 30 Minuten, und wird nie auf die Disk, in Logs oder in den Browser geschrieben.
Apps verbinden
Nach jeder Installation, in beliebiger Reihenfolge, ergänzt CloudZH fehlende Verbindungen. Erneut ausführen mit Apps → Apps verbinden oder:
| App | CloudZH trägt ein | Bleibt für dich |
| Sonarr, Radarr, Lidarr | Stammordner, SABnzbd als Download-Client, Papierkorb (7 Tage) | Nichts |
| Prowlarr | Sonarr, Radarr, Lidarr; SABnzbd mit Kategorie prowlarr | Indexer |
| Tautulli | Plex-Adresse, Server-ID, eigenes Token | Nichts |
| Seerr | Plex und alle Bibliotheken, Sonarr und Radarr mit dem CloudZH-Profil, Tautulli | Nichts |
| Maintainerr | Plex, Sonarr, Radarr, Tautulli, Seerr | Deine Regeln |
| Bazarr | Sonarr, Radarr, Deutsch + Englisch, freie Untertitelquellen | Optional ein OpenSubtitles-Konto |
| Lingarr | Radarr, Sonarr, Englisch → Deutsch | Schlüssel für den Übersetzungsdienst |
| UmlautAdaptarr | Sonarr, Lidarr, Proxy in Prowlarr | Tag an den Indexern |
| LazyLibrarian | SABnzbd-Kategorien, Ordner, Prowlarr | Nichts |
| Kometa, SuggestArr | Plex (SuggestArr auch Seerr) | TMDb-Schlüssel |
| Sonobarr | Lidarr | Last.fm-Schlüssel |
| Requestrr | Sonarr, Radarr | Discord-Bot-Token |
Apps mit eigenem Admin-Konto (Jellyfin, Immich, Kavita, Audiobookshelf, Navidrome, Wizarr) bitten dich beim ersten Öffnen, es anzulegen.
Ein Plex-Gerät pro AppJede App, die mit Plex spricht, bekommt ihr eigenes Token. In Plex erscheinen sie unter Autorisierte Geräte als «CloudZH Tautulli», «CloudZH Seerr» und so weiter, damit du eines widerrufen kannst, ohne die anderen anzutasten.
TRaSH-Empfehlungen
Apps → TRaSH-Empfehlungen (oder zh apps tune) setzt Benennung, Medienverwaltung und Download-Behandlung in Radarr und Sonarr sowie die empfohlenen SABnzbd-Schalter, mit den Werten aus den TRaSH Guides. Nach der Installation dieser Apps läuft das einmal automatisch. Vorhandene Dateien behalten ihre Namen.
Mediathek
Ein Ort für dich und deine Freunde: Was ist da, was fehlt, was lädt gerade.
Tabs
| Tab | Zeigt |
| Heruntergeladen | Filme und Serien mit Dateien |
| Fehlt | Filme ohne Datei und fehlende Folgen pro Staffel, mit Hinweisen wie «noch nicht erschienen» oder «lädt 64 %» |
| Downloads | Warteschlange mit Qualität, Indexer und Meldungen in Klartext |
| Indexer | Nur Admins, braucht Prowlarr: Status, Abfragen, Grabs, Antwortzeit, alle testen, Suche |
Fehlende Titel
- Suchen lässt Radarr oder Sonarr erneut suchen und meldet, ob ein Download gestartet ist.
- Verfügbarkeit zeigt, was die Indexer haben und warum Releases abgelehnt wurden.
- Andere Qualität: Passt nur die Qualität nicht, werden Releases nach Auflösung gruppiert. In 720p laden lädt einmalig das beste. Dein Profil bleibt gleich, und Radarr rüstet später auf.
Qualität
Mediathek → Qualität bietet drei Modi:
- CloudZH-Vorgabe: 720p, 1080p (Standard), 4K, 720p bis 1080p, 1080p bis 4K oder beliebig. Sprache für Filme. Upgrades an oder aus. Kameramitschnitte, Screener, Disk-Abbilder und Remuxe sind immer ausgeschlossen.
- TRaSH Guides: 1080p, 4K, Remux 1080p oder Remux 4K mit Sprache Original, Deutsch bevorzugt, sonst Englisch oder Nur Deutsch. Braucht Recyclarr aus dem App Store; CloudZH schreibt eine eigene Konfigurationsdatei und synchronisiert täglich.
- Eigenes Profil: CloudZH lässt Radarr und Sonarr in Ruhe.
Manueller Import
Manche deutschen Releases bleiben bei 100 % mit «Manual import required» stehen, weil Radarr sie per ID zugeordnet hat und der Titel nicht passt. Admins sehen einen Button Importieren mit einer Vorschau der Datei, bevor etwas verschoben wird.
Indexer
Pflege Indexer nur in Prowlarr. Prowlarr verteilt sie an alle Apps. Lösche nach der Umstellung die alten, von Hand angelegten Einträge in Radarr und Sonarr, sonst läuft jede Suche doppelt und verbraucht deine Tageslimits.
Freunde & Rechte
Freunde bekommen Konten mit Rechten pro Person und arbeiten nur in der Mediathek.
Rollen und Rechte
Administratoren verwalten den Server. Freunde bekommen beliebige dieser Rechte: Status sehen, Mediathek ansehen, Titel hinzufügen, Titel löschen, Downloads sehen. Vorlagen: Nur ansehen, Ansehen und wünschen, Alles für Freunde.
Einladungslinks
Benutzer & Rechte → Einladungen → Einladen. Pro Link: Rechte, Apps, gültig 1 bis 30 Tage, 1 bis 20 Konten, optional ein Enddatum für die Konten. Der Link wird einmal angezeigt; gespeichert wird nur ein Hash. Der Freund wählt Namen und Passwort und ist direkt angemeldet.
Benutzer verwalten
- Suche, Filter (Admins, Freunde, Aufmerksamkeit, ohne 2FA) und Sammelaktionen: abmelden, neues Passwort verlangen, deaktivieren, löschen.
- Benenne einen Benutzer um, ohne Sitzungen, Passkeys oder Rechte zu verlieren. Der alte Name bleibt 30 Tage gesperrt.
- Freunde können sich selbst umbenennen, wenn die Regel es erlaubt (Standard: alle 7 Tage).
- Aktivität pro Benutzer und ein Prüfprotokoll aller Änderungen.
Auf dem Server
zh users
zh rename-user anna anna.m
zh enable-user anna
zh reset-password anna
zh reset-2fa anna
System Health
Eine Prüfung des ganzen Servers, mit Reparaturen per Button.
Was geprüft wird
CloudZH selbst, Apps, Dienste, Updates und Patches, Speicher, Leistung, Netzwerk, Versionen, Backups und die Mediathek. Probleme sind rot und färben die Serverkarte rot. Hinweise sind gelb.
Ausgefallene Dienste von CloudZH, Docker, SSH, Fail2Ban, WireGuard und Netzwerk zählen als Probleme. Andere Ubuntu-Dienste zählen als Hinweise.
Befunde ausblenden
Jedes Problem, jeder Hinweis und jede Info hat einen Button Ausblenden: bis sich etwas ändert (der Befund kehrt zurück, wenn er schlimmer wird oder sein Titel sich ändert), oder für 7 bzw. 30 Tage. Ausgeblendete Befunde zählen nicht für den Serverzustand, die Seitenleiste, den Assistenten oder Probleme beheben. Der Filter Ausgeblendet listet sie mit einem Button, um sie wieder anzuzeigen. zh doctor zeigt immer alles.
Reparaturen
Reparaturen sind feste Abläufe im Agent, nie freie Befehle. Starte sie per Button oder auf dem Server:
zh doctor # check only
zh doctor --fix # check and run safe repairs
zh doctor --fix --apt # also repair Ubuntu packages
Selbstheilung
Alle 2 Minuten repariert CloudZH sichere Fälle selbst: abgestürzte Apps, Dashboard und Proxy, wichtige Dienste, Zeitsynchronisation, eine volle Disk (nur ungenutzte Docker-Images), ein auslaufendes Zertifikat und ein fehlender Papierkorb in Sonarr, Radarr und Lidarr. Ein Befund muss zuerst zweimal hintereinander auftreten, und während einer Installation oder eines Updates passiert nichts. Von Hand gestoppte Apps und ausgeblendete Befunde bleiben unberührt. Hilft eine Reparatur nach 3 Versuchen nicht, bekommst du eine Benachrichtigung, und der Befund bleibt mit seinem Knopf in der Liste.
Der Bereich Selbstheilung in System Health zeigt die letzten Reparaturen und hat den Schalter zum Ausschalten. Auf dem Server:
zh doctor --auto # status and latest repairs
zh doctor --auto off # repairs by button only (on: back on)
Sicherheitsupdates
Sicherheitsupdates einspielen startet Ubuntus eigenes Unattended Upgrade: nur der Sicherheitskanal, Pakete mit Konfigurationsfragen werden übersprungen, nichts wird entfernt, und der Server startet nicht von selbst neu. Braucht ein Kernel-Update einen Neustart, zeigt System Health Neustart nötig.
Speedtest
Mach einen Speedtest mit Verlauf. CloudZH misst standardmässig mit dem Speedtest von Cloudflare. Die Ookla-CLI ist optional (zh diagkit ookla on) und nur für private, nicht kommerzielle Nutzung lizenziert.
Leistung & Server-Befehle
Finde heraus, warum das Dashboard träge wirkt, während zwei Filme laden, und starte den Server sauber neu.
Leistungsdiagnose
Betrieb → Leistung misst drei Sekunden lang: CPU (Programme, System, Warten auf Disk), Druck über 10 s, 1 min und 5 min, Arbeitsspeicher und Swap, Last pro Disk, Netzwerk, Ping zum Router und zu 1.1.1.1, CPU und Disk pro Container sowie die SABnzbd-Warteschlange. Das Ergebnis nennt den Engpass, mit Tipps.
zh perf # one measurement
zh perf --live # live view
zh perf --fix # relieve SABnzbd
Unter Last messenStarte die Diagnose, während Downloads laufen. Ohne Last sagt CloudZH das, statt zu raten.
SABnzbd entlasten
Senkt den Hauptserver auf 30 Verbindungen, wenn er mehr als 50 nutzt, schaltet das direkte Entpacken aus, pausiert Downloads während der Nachbearbeitung, senkt die CPU- und Disk-Priorität von SABnzbd und kann ein Tempolimit bei 90 % deines letzten Speedtests setzen. SABnzbd startet kurz neu.
Server-Befehle
Betrieb → Server-Befehle: neu starten oder herunterfahren, sofort, in 5, 15, 30 oder 60 Minuten oder heute Nacht um 04:00. CloudZH warnt vor laufenden Aufträgen. Beim Herunterfahren tippst du den Servernamen ein.
zh reboot --in 30
zh reboot --status
zh reboot --cancel
zh poweroff --in 15
Wartung per Button: alle laufenden Apps neu starten, Dashboard und Proxy neu starten, fehlgeschlagene Dienste zurücksetzen, Docker aufräumen, das Journal kürzen, das Zertifikat erneuern, die Zeit synchronisieren.
Terminal & Dateien
Eine echte Shell und ein vollständiger Dateimanager im Browser, mit strengeren Regeln als der Rest des Dashboards.
Terminal
- Eine Shell als der Linux-Benutzer, der CloudZH installiert hat.
sudo fragt nach dessen Linux-Passwort.
- Nur für Administratoren mit Passkey oder 2FA. Jede neue Sitzung fragt nach deinem Passwort.
- Standardmässig nur aus deinem Heimnetz oder über VPN.
- Mehrere Sitzungen als Tabs. Sie laufen weiter, wenn du die Seite wechselst, und schliessen sich 30 Minuten nach dem letzten Fenster.
zh terminal status
zh terminal off
zh terminal remote on # also allow outside home and VPN
zh terminal close-all
Dateien
| Ort | Inhalt | Zugang |
| Daten | /srv/data | Lesen und schreiben |
| App-Daten | Ordner, die zur App gehören, nie ihre Compose-Datei | Lesen und schreiben |
| Home | Home-Verzeichnis des Linux-Benutzers | Gleiche Regeln wie das Terminal |
| System | / | Nur lesen |
Hochladen in Teilen (auch Ordner, per Drag-and-drop), einzelne Dateien oder als ZIP herunterladen, kopieren, verschieben, umbenennen, packen und entpacken, Text bearbeiten, Rechte ändern. Gelöschte Dateien landen für 30 Tage im Papierkorb. Rechte reparieren hilft, wenn Sonarr oder Radarr «Permission denied» melden. Schalte den Dateimanager mit zh files off aus.
Externe Laufwerke
Dateien hat drei Tabs: Intern, Extern (eingehängte USB-Disks) und Laufwerke. Eine Disk, die du einsteckst, erscheint unter Laufwerke mit Dateisystem, Grösse und Modell.
- Einhängen, Aushängen und Sicher entfernen (schreibt alles, hängt aus und schaltet die Disk ab).
- Automatisch einhängen beim Einstecken und nach einem Neustart (standardmässig an), nur lesen und ein Anzeigename pro Disk.
- Formatieren: eine neue Disk als ext4 (am besten für diesen Server) oder exFAT (auch unter Windows und Mac lesbar). Fragt nach deinem Passwort und dem Disknamen; Disks mit Daten, App-Daten oder dem System werden nie angeboten.
- Kopiere oder verschiebe zwischen deinen Daten und einer externen Disk mit Ausschneiden, Kopieren und Einfügen über Tabs hinweg.
Unterstützt: exFAT, FAT32, NTFS, ext4, ext3, ext2, XFS und Btrfs. Disks werden unter /mnt/cloudzh/<name> eingehängt, ohne das Recht, Programme auszuführen.
zh disk # list with numbers
zh disk mount 1
zh disk eject 1
Backups & Updates
Halte CloudZH mit einem Button aktuell und bewahre eine Kopie deiner Einstellungen auf.
CloudZH aktualisieren
Ist ein Update verfügbar, erscheint es unter Braucht Aufmerksamkeit. Klicke auf Update oder auf dem Server:
Das Update läuft als eigener Dienst. Das Dashboard lädt nach 60 Sekunden neu und behält deine Seite. Einstellungen → Updates zeigt, ob Updates auf diesem Server eingerichtet sind und welchem Kanal er folgt (Stable oder Experimental).
Aus einem Archiv aktualisieren
Hast du eine neue Version als Installer-Archiv bekommen? Kopiere es wie den ersten Installer auf den Server (<file> ist sein Dateiname), entpacke es in einen neuen Ordner und aktualisiere von dort:
rm -rf ~/cloudzh-new && mkdir ~/cloudzh-new
tar xzf ~/<file> -C ~/cloudzh-new --strip-components=1
zh upgrade ~/cloudzh-new
Benutzer, Apps, Einstellungen und Schlüssel bleiben, wie sie sind.
Apps aktualisieren
Jede App-Seite hat Update für ihr Image. Image-Updates bleiben auch im eingeschränkten Lizenzmodus möglich, denn Sicherheitskorrekturen für deine Apps sollen nie auf eine Rechnung warten.
Backups
Betrieb → Backups erstellt ein Backup von CloudZH und den App-Einstellungen. Auf dem Server:
Bewahre eine Kopie woanders aufEin Backup auf derselben Disk überlebt diese Disk nicht. Lade es herunter oder kopiere es auf eine andere Maschine. Deine Mediathek ist nicht Teil des Backups. Backups öffnen sich nur mit dem Backup-Schlüssel aus der Installation (sudo cat /etc/cloudzh/backup.key); bewahre ihn in deinem Passwortmanager auf.
KI-Assistent
Frag, was nicht stimmt. Der Assistent prüft, erklärt und schlägt eine Lösung vor, die erst nach deinem Klick läuft.
Einrichten
- Klicke oben rechts auf den Rettungsring (nur Administratoren), dann auf das Zahnrad.
- Wähle einen Anbieter: Anthropic, OpenAI, Google Gemini, OpenRouter oder einen eigenen Endpunkt wie Ollama.
- Füge deinen API-Schlüssel ein, klicke auf Verbindung testen, wähle ein Modell und speichere mit deinem Passwort.
Ein kleines Modell reicht. Mit Claude Haiku 4.5 kostet ein Support-Gespräch auf deinem eigenen Schlüssel ein paar US-Cent.
Was er kann
| Lesen | Handeln, nach deinem Klick | Nie |
| Serverzustand, System Health, Apps und Logs, Speicher, Downloads, fehlende Titel, Backups, CloudZH-Doku | Eine App starten, neu starten oder aktualisieren, eine einfache App installieren, eine angebotene Reparatur ausführen, Backup, Speedtest, Apps verbinden, in Radarr und Sonarr suchen | Shell, Dateien, Konfiguration, Geheimnisse, Benutzer, Sicherheit, VPN, CloudZH-Update, Lizenz, Entfernen, Wiederherstellen |
Deine Daten
- API-Schlüssel, Passwörter, Tokens und Schlüssel in URLs werden entfernt, bevor eine Nachricht den Server verlässt.
- Dein Schlüssel wird verschlüsselt gespeichert; der Browser sieht nur die letzten vier Zeichen.
- Standardlimits: 100 Anfragen pro Tag, 1500 pro Monat.
zh ai status
zh ai off # the dashboard cannot turn it back on
zh ai forget-key
VPN (WireGuard)
Erreiche das Dashboard, die Admin-Apps und dein Heimnetz von überall, ohne weitere Ports zu öffnen.
Einrichten
Auf dem Server installieren.
Leite UDP 51820 in deinem Router auf den Server weiter.
DNS prüfen. vpn.example.com (mit deiner Domain) muss direkt auf deine öffentliche IP zeigen. Der Cloudflare-Proxy leitet kein WireGuard weiter.
Ein Gerät hinzufügen. Gib ihm einen Namen und scanne den QR-Code mit der WireGuard-App auf deinem Handy.
Admin-Zugang absichern. Sicherheit → Zugriffsregeln: Admin nur aus Heimnetz oder VPN.
So läuft es
WireGuard läuft im Linux-Kernel als wg-quick@wg0, nicht in einem Container. Installieren und entfernen geht nur auf dem Server. Das Dashboard zeigt den QR-Code und die Konfiguration neuer Geräte.
Als NächstesGeräteliste mit Online-Status und Datenmenge, sperren und entsperren, Zugriffsprofile pro Gerät (nur CloudZH, Heimnetz, alles) und Gastgeräte mit Enddatum.
UniFi OS Server
Betreibe die UniFi-Network-Anwendung für deine Access Points und Switches auf dem CloudZH-Server.
Installieren
UniFi OS Server läuft rootless mit Podman unter einem eigenen Benutzer. Öffne ihn unter https://unifi.example.com hinter deinem Login oder zu Hause unter https://<server-ip>:11443, zum Beispiel https://192.168.1.200:11443.
Inform-Adresse
Deine UniFi-Geräte melden sich bei der Adresse in Inform host override. CloudZH trägt dort selbst die Kabel-Adresse des Servers ein und prüft sie bei jedem Start und alle 6 Stunden, damit sich Geräte nie bei einer WLAN- oder Container-Adresse melden. Anzeigen oder ändern auf dem Server:
zh unifi inform # show
zh unifi inform <server-ip> # a fixed address instead
zh unifi inform auto # back to automatic
Umzug von einem anderen Controller
Ein Gerät gehorcht nur einem Controller. Halte genau einen aktiv.
Erstelle im alten Controller ein Backup (Network → Settings → System → Backups) und stelle es in der Network-App auf CloudZH wieder her.
Prüfe die Inform-Adresse mit zh unifi inform.
Richte jedes Gerät per SSH auf den neuen Controller aus.
<device-ip> ist die Adresse des Access Points oder Switches,
<server-ip> die des Servers:
ssh admin@<device-ip>
set-inform http://<server-ip>:8080/inform
Die SSH-Sitzung bricht ab, während das Gerät provisioniert wird. Das ist normal.
Prüfe mit info auf dem Gerät: Connected (http://<server-ip>:8080/inform). Stoppe dann den alten Controller.
Server per Kabel anschliessenErreicht der Server dein Netzwerk über den Access Point, den er selbst verwaltet, schneidet ihn ein Firmware-Update oder eine falsche Einstellung von sich selbst ab. Schalte automatische Geräte-Updates aus, solange der Server im WLAN hängt.
UniFi OS Server unterstützt die Network-Anwendung. Protect, Access und Talk brauchen eine UniFi-Konsole.
Netzwerk-Tipps
Eine stabile Kabelverbindung ist für einen Heimserver wichtiger als alles im Dashboard.
Kabel zuerst, WLAN als Reserve
Gib dem Kabel die feste Adresse, auf die alles zeigt, und halte WLAN mit einer zweiten Adresse als Rückfallebene bereit. Beispiel für Netplan in /etc/netplan/01-cloudzh.yaml, mit 192.168.1.200 als <server-ip>, 192.168.1.1 als Router und den Adapternamen aus ip -br link. Setz deine eigenen Werte ein:
network:
version: 2
renderer: networkd
ethernets:
enp3s0f0:
dhcp4: false
addresses: [192.168.1.200/24]
routes: [{ to: default, via: 192.168.1.1, metric: 100 }]
nameservers: { addresses: [192.168.1.1] }
wifis:
wlp2s0:
optional: true
dhcp4: false
addresses: [192.168.1.201/24]
routes: [{ to: default, via: 192.168.1.1, metric: 600 }]
nameservers: { addresses: [192.168.1.1] }
access-points:
"YourWiFi": { password: "…" }
Wende es sicher mit sudo netplan try --timeout 300 an, damit sich ein Fehler von selbst zurückrollt. Mit zwei Schnittstellen im selben Netz setzt du zusätzlich:
# /etc/sysctl.d/60-cloudzh-dualnic.conf
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
Warum nicht beides gleichzeitig
Kabel und WLAN zu bündeln funktioniert mit einem WLAN-Client nicht sauber, und ein einzelner Download nutzt immer nur einen Weg. Die Grenze ist deine Internetleitung, nicht das LAN.
Router
- Reserviere die Adresse des Servers im Router.
- Leite TCP 443 (Dashboard, Apps, Plex) und UDP 51820 (VPN) weiter. Plex braucht nur TCP.
Befehlsreferenz zh
Führe zh auf dem Server als beliebiger Benutzer mit sudo-Rechten aus. Braucht ein Befehl Rechte, fragt er danach.
| Befehl | Was er tut |
zh | Leert die Konsole |
zh menu | Öffnet das Menü mit allen Bereichen, sechs Sprachen (Taste L) |
zh help | Listet alle Befehle |
zh status | Kurzstatus von Server, Apps, Zustand und Lizenz |
zh doctor [--fix] [--apt] | Führt System Health aus, optional mit sicheren Reparaturen und Paketreparaturen |
zh speedtest | Misst deine Internetleitung |
zh diagkit install | Vervollständigt das Diagnose-Kit |
zh apps | Listet installierte Apps |
zh apps wire | Verbindet die Apps miteinander |
zh apps tune | Übernimmt die TRaSH-Empfehlungen |
zh update | Aktualisiert CloudZH |
zh upgrade <folder> | Installiert eine neue Version aus einem entpackten Installer-Archiv |
zh backup | Erstellt ein Backup |
zh perf [--live] [--fix] | Leistungsdiagnose, Live-Ansicht, SABnzbd entlasten |
zh reboot [--in <min>] [--cancel] [--status] | Startet jetzt oder später neu |
zh poweroff [--in <min>] | Fährt jetzt oder später herunter |
zh vpn install · zh vpn add <name> | Installiert WireGuard, fügt ein Gerät mit QR-Code hinzu |
zh unifi install · zh unifi inform | Installiert UniFi OS Server, zeigt oder setzt die Inform-Adresse |
zh token | Zeigt das Setup-Token für die erste Anmeldung |
zh users | Listet die Dashboard-Benutzer |
zh rename-user <old> <new> | Benennt einen Benutzer um |
zh enable-user <name> | Aktiviert einen Benutzer wieder, entfernt auch ein Enddatum |
zh reset-password <name> | Setzt ein neues Passwort |
zh reset-2fa <name> | Entfernt den zweiten Faktor eines Benutzers |
zh terminal status|on|off | Browser-Terminal; ausserdem remote on|off, user <name>, close-all |
zh files off | Schaltet den Dateimanager aus |
zh disk · zh disk mount|unmount|eject <n> | Listet USB-Disks, hängt eine ein oder wirft sie aus |
zh website status|build|deploy|on|off | Stellt eine statische Website auf deiner Hauptdomain bereit, siehe Domain & HTTPS |
zh ai status|on|off|forget-key | Steuert den Assistenten; nur root kann eine Sperre aufheben |
zh license | Zeigt die Lizenz dieses Servers |
zh license activate · zh license refresh | Aktiviert eine Lizenz, holt eine frische Lizenzdatei |
zh license release | Gibt diesen Server frei, sein Platz wird frei |
zh support | Discord-Community, Dokumentation und Feedback |
Sprache
Meldungen folgen der Sprache, die du im Dashboard gewählt hast. Für einen einzelnen Befehl überschreibst du sie mit CZH_LANG=de zh status. Fragen zeigen einen einzelnen Buchstaben in deiner Sprache, zum Beispiel (y/n), (j/n) oder (o/n). Ein Buchstabe reicht, das ganze Wort geht auch; y, yes, n und no funktionieren immer.
Was ist neu
Die Highlights der letzten Versionen. Administratoren finden die vollständigen Versionshinweise im Dashboard, hinter dem Versionsbadge oben. Aktuelle Version: 0.35.0.
0.32
- Dein Konto auf account.cloudzh.app: Lizenzen und Server, Installationsschlüssel, Codes einlösen, ein Abo kaufen, Rechnungen und Support-Anfragen, mit Passkeys und Zwei-Faktor-Anmeldung. Siehe die Kundenanleitung.
- Schlüssel kommen immer per E-Mail vom Lizenzdienst; das Konto zeigt sie nie an.
- Support-Anfragen auch ohne Konto, auf account.cloudzh.app/support.
0.31
- Konsolen für Installationen, Updates und Reparaturen sprechen deine Dashboard-Sprache.
- UniFi OS Server: Die Inform-Adresse wird automatisch gesetzt (
zh unifi inform). - System Health warnt, wenn der Server WLAN nutzt, obwohl ein Kabel angeschlossen ist.
- Speedtest standardmässig mit Cloudflare, Ookla nur auf Wunsch.
0.30
- Lizenzen kommen nach einem Kauf automatisch per E-Mail, mit einem Installationsschlüssel pro Server.
0.28
- UniFi OS Server: Die Anmeldung mit dem UI-Konto funktioniert dauerhaft, geprüft alle 6 Stunden.
0.27
- Aktivitätsseite: wer was auf Plex schaut, wer online ist, Verlauf.
- Update-Kanäle Stable und Experimental unter Einstellungen → Updates.
- Hilfe und Feedback im Dashboard, mit Discord, Funktionswünschen und Fehlermeldungen.
- SSH-Port sicher ändern mit
zh ssh-port.
0.26
- Ein Produktfilm auf dieser Website: jeder Bereich in rund viereinhalb Minuten, mit Kapiteln.
- Disks formatieren unter Dateien → Laufwerke: ext4 oder exFAT, mit zwei Bestätigungen und Live-Konsole.
- exFAT-, XFS-, Btrfs- und NTFS-Disks werden auf gehärteten Servern zuverlässig eingehängt.
0.25
- Profilbilder für jedes Konto, im Browser zugeschnitten und gezoomt.
- Ein längerer Startbildschirm: Das Monogramm baut sich auf, der CloudZH-Schriftzug gleitet herein.
0.24
- Externe Laufwerke im Dateimanager: einhängen, aushängen, sicher entfernen, automatisch einhängen, nur lesen.
- Kopieren und Verschieben zwischen deinen Daten und USB-Disks;
zh disk auf dem Server.
0.23
- Ladeanimationen in der Akzentfarbe: Startbildschirm, Ladebalken, Platzhalter statt leerer Seiten.
0.22
- Die Übersicht wurde zum Widget-Raster: Widgets ziehen, skalieren, hinzufügen und entfernen, ein Layout pro Benutzer, Standards für Admins und Freunde.
- Versionshinweise in deiner Sprache.
0.21
- IP-, MAC- und E-Mail-Adressen unscharf, bis du sie anklickst, ein Augen-Button deckt alle auf.
- Die installierte Version als Badge oben, mit einem Hinweis nach jedem Update.
Datenstruktur
Ein Datenbaum für alle Apps, aufgebaut, wie es die TRaSH Guides empfehlen, damit Verschiebungen sofort gehen und Dateien nicht doppelt gespeichert werden.
/srv/data
├── usenet
│ ├── incomplete # SABnzbd working folder
│ └── complete
│ ├── movies · tv · audio
│ └── prowlarr # manual grabs from the indexer search
└── media
├── movies · tv · music
└── .recycle # recycle bin of Radarr, Sonarr, Lidarr, 7 days
Was jede App sieht
| App | Eingehängt als |
| Sonarr, Radarr, Lidarr | /data (alles) |
| SABnzbd | /data/usenet |
| Plex, Bazarr | /data/media |
Weitere Orte
| Pfad | Inhalt |
/opt/cloudzh/apps/<app> | Compose-Datei und Konfiguration jeder App |
/etc/cloudzh | Servereinstellungen, Lizenzdatei |
Apps schreiben als Benutzer cloudzh. Meldet eine App «Permission denied», nutze Dateien → Rechte reparieren.
Sicherheitsmodell
Wer was darf, wo die Grenzen liegen und wovor CloudZH nicht schützt.
Schichten
| Schicht | Schutz |
| Eingang | Caddy als einzige Tür, überall HTTPS, Admin-Apps hinter dem Dashboard-Login, Sitzungscookie wird entfernt, bevor Anfragen eine App erreichen |
| Anmeldung | Passwortregeln, Passkeys, Authenticator-Codes mit Wiederherstellungscodes, Sperre nach Fehlversuchen, Geräteliste mit Abmelden |
| Regeln | Admin nur aus Heimnetz oder VPN, 2FA Pflicht, Passwortbestätigung bei heiklen Aktionen |
| Dashboard | Keine Privilegien, gehärteter Container, keine Fremdpakete |
| Agent | Feste Befehlsliste über einen Unix-Socket, systemd-Härtung, Pfade geprüft, ohne Symlinks zu folgen, Audit-Log |
| Server | Systemsoftware nur über die Kommandozeile, Fail2Ban für Anmeldungen, Sicherheitsupdates per Button |
Geheimnisse
- Einladungslinks und Lizenzschlüssel werden nur als Hashes gespeichert.
- KI-Schlüssel werden verschlüsselt gespeichert, der Browser sieht die letzten vier Zeichen.
- Dein Plex-Kontotoken bleibt nur während der Einrichtung im Arbeitsspeicher.
- Admin-Apps bekommen ihre API-Schlüssel aus ihren eigenen Konfigurationsdateien; Schlüssel gehen nie an den Browser.
Grenzen
Wer root auf dem Server hat, kann alles lesen und ändern, auch CloudZH. Zwei Apps, Lingarr und Requestrr, laufen ohne eigenes Login und sind für andere Container im Docker-Netz erreichbar; von aussen liegen sie wie jede Admin-App hinter dem Dashboard-Login.
Lizenzierung
Eine Lizenz pro Server, monatlich oder jährlich, als Standard oder Pro; das Haushalt-Abo deckt bis zu 3 Server ab. Verwalte sie in deinem Konto auf account.cloudzh.app.
Kaufen
Kaufe in deinem Konto auf account.cloudzh.app unter Kaufen oder unter Preise auf dieser Website. Wähle monatlich oder jährlich und die Anzahl Server. Die Zahlung wickelt Link (Sold through Link, LLC, a Stripe company) als Merchant of Record ab. Lizenzschlüssel und Installationsschlüssel kommen automatisch per E-Mail, meist innert Minuten. Test- und Geschenkcodes löst du in deinem Konto unter Code einlösen ein. Schritt für Schritt: Lizenz holen. Siehe die AGB und die Rückerstattungsrichtlinie.
Standard und Pro
| Bereich | Standard | Pro |
| Apps, Mediathek, Einrichtungsassistenten, TRaSH | Alle | Alle |
| Sicherheit: 2FA, Passkeys, VPN, Firewall, Warnungen bei neuen Geräten | Alle | Alle |
| Dashboard-Konten | Eines, für dich (Teilen über Plex und Jellyfin funktioniert wie gewohnt) | Konten für Familie und Freunde, Einladungslinks, Gastkonten mit Ablaufdatum, weitere Admins |
| Backups und Updates mit Rollback | Lokal, verschlüsselt | Dazu ausser Haus, Download im Browser, automatische Updates, App-Rollback |
| Benachrichtigungen | Ein Kanal, Standardschwellen | Alle Kanäle, eigene Schwellen, Ruhezeit |
| Aktivitätsverlauf, Leistungsdiagnose, KI-Assistent, eigene Apps, Homelab-Extras | – | Inklusive |
| Aussehen | Hell oder dunkel, Dichte, Sprache, Formate | Dazu eigener Name, Logo, Farben, Anmeldeseite und Menünamen |
| Support | Discord und Support-Anfragen | Anfragen werden zuerst beantwortet |
Eine kostenlose Testphase hat immer die Pro-Funktionen. Ein Wechsel von Pro zu Standard löscht nie etwas: Konten und Einstellungen bleiben, nur neue Pro-Funktionen pausieren, bis du zurückwechselst.
Schlüssel
| Schlüssel | Format | Verwendung |
| Lizenzschlüssel | CZL-XXXXX-XXXXX-XXXXX-XXXXX | Dein Vertrag. Bewahre ihn sicher auf. |
| Installationsschlüssel | CZI-XXXXX-XXXXX-XXXXX | Aktiviert einen Server, einmal. Gültig 30 Tage ab einem Kauf, 7 Tage, wenn du ihn in deinem Konto erzeugst. |
Zwei Schlüssel bedeuten: Ein Lizenzschlüssel, der auf einem Screenshot zu sehen war, kann keinen weiteren Server aktivieren. Schlüssel kommen nur per E-Mail und werden nie wieder angezeigt. In deinem Konto erzeugt Meine Lizenzen einen neuen Installationsschlüssel oder stellt einen verlorenen Lizenzschlüssel neu aus; siehe Deine Lizenz-E-Mail.
Check-in
Der Server meldet sich einmal am Tag und erhält eine signierte Lizenzdatei. Er sendet seine Server-ID, die CloudZH-Version und einen Hardware-Fingerabdruck.
Zustände
| Zustand | Wirkung |
| Aktiv, endet bald | Alles funktioniert, Erinnerung 14 Tage vorher |
| Zahlungsfrist | 7 Tage nach dem Ende, alles funktioniert, Banner |
| Kein Kontakt zum Lizenzdienst | 14 Tage normal, Banner nach 3 verpassten Check-ins |
| Abgelaufen, pausiert, widerrufen, nicht aktiviert | Eingeschränkter Modus |
Eingeschränkter Modus
Pausiert: CloudZH-Updates, neue Apps, neue Benutzer und Einladungslinks. Läuft weiter: Plex, alle installierten Apps, VPN, Backups, Anmeldung, App-Image-Updates, Backups wiederherstellen, Sicherheitsupdates, Terminal und Dateien.
Neue Hardware
Eine Lizenz zählt einen aktiven Server. Für einen Umzug gibst du den alten Server frei (Meine Lizenzen in deinem Konto, zh license release oder Mein Konto → Abonnement im Dashboard), erzeugst in deinem Konto einen neuen Installationsschlüssel und aktivierst damit den neuen Server. Details: Umziehen oder neu installieren.
Ändert sich die Hardware ohne Freigabe, läuft der Server weiter und zeigt Hardware geändert. Nutzen zwei Maschinen dieselbe Lizenz, behält sie nur eine.
zh license # licence of this server
zh license activate # activate with licence and installation key
zh license refresh # check in with the licence service now
zh license release # free the seat of this server
Fehlerbehebung
Die Probleme, die wir auf echten Servern gesehen haben, und was dagegen hilft.
SABnzbd: «Aborted, cannot be completed»
Das Release ist unvollständig: Auf dem Usenet-Server fehlen Artikel, oft bei älteren Releases nach Takedown-Anfragen. Erneut versuchen hilft nicht. Lösche den Eintrag; Radarr markiert das Release als fehlgeschlagen und sucht ein anderes. Passiert das oft, füge einen zweiten Anbieter auf einem anderen Backbone mit tieferer Priorität hinzu, und mehr Indexer in Prowlarr.
Radarr: «Manual import required»
Das Release wurde per ID zugeordnet, aber sein Titel passt nicht zum Film, was bei deutschen Titeln häufig ist. Nutze Importieren im Tab Downloads, prüfe die Datei und bestätige.
Eine gute Videodatei wurde durch ein Disk-Abbild ersetzt
System Health → Mediathek listet Disk-Abbilder und Titel ohne das CloudZH-Profil. Markiere den Grab in Radarr als fehlgeschlagen, wende die Qualitätsvorgabe auf alle Titel an und suche erneut. Da der Papierkorb eingerichtet ist, bleiben ersetzte Dateien 7 Tage in /srv/data/media/.recycle.
Das Dashboard ist während Downloads langsam
Starte Betrieb → Leistung, während der Download läuft. Übliche Ursachen: SABnzbd mit zu vielen Verbindungen (nutze SABnzbd entlasten), eine volle Internetleitung oder der Weg über deinen Router (füge den Hosts-Eintrag aus Domain & HTTPS hinzu).
UniFi-Anmeldung: «check for any issues with your ISP»
Die Meldung führt in die Irre. UniFi OS sucht in seinem Container nach einem Zeitdienst, den das Image nicht hat, obwohl die Uhr stimmt. CloudZH legt dafür einen Platzhalter an und prüft ihn bei jedem Start von UniFi OS Server und alle 6 Stunden, auch nach einem Update von UniFi OS Server. Erscheint die Meldung trotzdem, nutze den Reparatur-Button bei UniFi OS Server: Zeitprüfung in System Health unter Versionen, oder führe aus:
Sonarr oder Radarr: «Permission denied»
Dateien → Ordner auswählen → Rechte reparieren.
Ein Dienst wird als fehlgeschlagen angezeigt
Die Selbstheilung startet ihn innert weniger Minuten neu. Steht er länger auf Fehler, nutze den Reparatur-Knopf in System Health oder zh doctor --fix.
Hilfe bekommen
Die meisten Antworten sind einen Klick entfernt. Wenn nicht, schick die richtigen Angaben.
Fang hier an
- System Health: Zeigt es ein Problem mit Reparatur-Button?
- Der Assistent: Frag, was nicht stimmt, er liest die Prüfungen und Logs für dich.
- Diese Dokumentation: Drücke Ctrl K und such.
Kontakt
- Support-Anfrage: in deinem Konto auf account.cloudzh.app unter Meine Anfragen → Neue Anfrage, mit bis zu 3 Anhängen. Ohne Konto: account.cloudzh.app/support, dann die Anfrage mit dem Link in der E-Mail bestätigen.
- Community: Discord, oder im Dashboard Hilfe und Feedback (Sprechblase oben rechts).
- E-Mail: support@cloudzh.app
Mitschicken:
- CloudZH-Version und Server (
zh status) - Ausgabe von
zh doctor - Der Text der Konsole oder Fehlermeldung, kopiert
- Was du gemacht und was du erwartet hast
Bevor du sendestEntferne API-Schlüssel, Passwörter, Lizenzschlüssel und deine öffentliche IP-Adresse aus Logs und Screenshots.
Impressum
Verantwortlich für diese Website.
E-Mail: support@cloudzh.app
Haftung
Wir prüfen die Inhalte dieser Website sorgfältig, können aber nicht garantieren, dass sie vollständig, richtig und aktuell sind. Für verlinkte Websites sind wir nicht verantwortlich.
Marken
Plex, Jellyfin, UniFi, WireGuard und alle anderen Produktnamen gehören ihren Inhabern. CloudZH ist nicht mit ihnen verbunden.
Datenschutz
Diese Website setzt keine Cookies, nutzt keine Analyse und lädt nichts von anderen Servern. Die vollständige Datenschutzerklärung behandelt Käufe und den Lizenzdienst im Detail.
Diese Website
- Keine Cookies, kein Tracking, keine Analyse, keine Werbung.
- Schriften, Bilder und Videos kommen von diesem Server. Es gehen keine Anfragen an Google oder andere Dritte.
- Wir führen keine Zugriffslogs. Der Server verarbeitet deine IP-Adresse nur, um die Seite auszuliefern und sie vor Angriffen zu schützen.
- Wenn du uns schreibst, nutzen wir deine Nachricht nur, um sie zu beantworten.
- Käufe laufen über Checkout-Seiten von Link (Sold through Link, LLC, a Stripe company), das die Lizenz als Merchant of Record verkauft und Zahlung, Rechnungen und Steuern abwickelt.
CloudZH auf deinem Server
Dein Server meldet sich einmal am Tag beim Lizenzdienst, mit Server-ID, Instanzschlüssel, Hostname, CloudZH-Version, einem Hardware-Fingerabdruck und der Anzahl Benutzer, Administratoren und installierter Apps (nur Zahlen). Medien, Dateinamen, Benutzernamen, Passwörter und Einstellungen bleiben auf deinem Server. Der Assistent sendet Daten nur an den KI-Anbieter, den du einrichtest, mit deinem eigenen Schlüssel und nachdem Geheimnisse entfernt wurden.
Deine Rechte
Du kannst unter support@cloudzh.app erfragen, was wir über dich speichern, und es berichtigen oder löschen lassen. Diese Erklärung folgt dem Schweizer Datenschutzgesetz (DSG) und, wo anwendbar, der EU-DSGVO. Alle Empfänger und Übermittlungen ins Ausland stehen in der vollständigen Datenschutzerklärung.