Zum Inhalt springen

Installationsanleitung für Synology DiskStation

Diese Anleitung führt Schritt für Schritt durch die Installation von AutoLogbuch auf einer Synology-NAS als Satellit — angebunden an die eine bereits bestehende Zentrale-Installation. Vier Stationen bringen dich vom leeren Paketzentrum bis zur fertig lizenzierten App:

  1. Grundinstallation — Benötigte Pakete installieren, App-Dateien per Aufgabenplaner laden, Container bauen lassen und den Einrichtungs-Assistenten durchlaufen (Teil A–E). Danach ist die App im eigenen WLAN nutzbar — Vorkenntnisse sind dafür nicht nötig.
  2. Externer Zugriff (optional) — Nur nötig für Zugriff von unterwegs (außerhalb des Heimnetzes): eigene Adresse (DDNS), Sicherheitszertifikat und Portweiterleitung im Router einrichten (Teil F). Ohne diesen Teil bleibt die App vollständig nutzbar — nur eben auf das eigene WLAN beschränkt.
  3. Anmeldung an der Zentrale (automatisch) — Passiert von selbst direkt nach dem Einrichtungs-Assistenten — keine Eingabe nötig. Feedback, KI-Felderkennung und E-Mail-Versand sind danach sofort aktiv, unabhängig davon, ob Teil F durchgeführt wird.
  4. Lizenzierung (später, unter „Mein Konto”) — 30 Kalendertage kostenlos und uneingeschränkt nutzbar. Danach direkt in der App einen Lizenzschlüssel bei der Zentrale anfordern — kein Nachfragen bei einer Person nötig.
  1. Im Browser die Adresse deiner DiskStation öffnen und mit dem Administrator-Konto einloggen. Auf dem Desktop das Symbol oder über das Menü oben links das „Paketzentrum” öffnen.

  2. „Container Manager”, „Git Server” und „Text-Editor” installieren

    Abschnitt betitelt „„Container Manager”, „Git Server” und „Text-Editor” installieren“

    In die Suchleiste jeweils Container Manager, Git Server und Text-Editor (alle von Synology Inc.) eingeben, Eingabetaste drücken und Installieren klicken. Steht dort bereits Öffnen, ist das Paket schon vorhanden.

    Dabei legt Synology automatisch einen gemeinsamen Ordner namens docker an — den brauchen wir gleich in Teil B. Den Text-Editor braucht die Grundinstallation nicht zwingend (die .env-Datei in Teil C entsteht automatisch per Skript) — schadet aber nicht, ihn für spätere Fehlersuche gleich mit zu installieren, da man ohnehin schon im Paketzentrum ist.

  1. DSM → Systemsteuerung → Aufgabenplaner → Erstellen → Geplante Aufgabe → Benutzerdefiniertes Skript. Name für die Aufgabe z. B. „AutoLogbuch laden”, Benutzer root. Im Reiter Zeitplan zunächst „Am folgenden Datum ausführen” wählen, dort bei „Wiederholen” die Option „Nicht wiederholen” — die Aufgabe wird gleich manuell gestartet, sonst liefe sie standardmäßig täglich erneut und bräche danach jedes Mal harmlos ab, weil der Ordner dann schon existiert. Unter Aufgabeneinstellungen das Skript unten unverändert einfügen → Ok → ggf. Hinweis nochmals mit Ok bestätigen → ggf. Passwort eingeben und Senden klicken → mit der rechten Maustaste auf die neue Aufgabe klicken und Ausführen klicken, Hinweis mit Ok bestätigen.

    Legt den Ordner docker/autologbuch automatisch mit allen App-Dateien an — kein manuelles Hochladen/Entpacken nötig.

    cd /volume1/docker
    git clone https://<TOKEN>@github.com/Michael7779/AutoLogbuch.git autologbuch
  1. DSM → Systemsteuerung → Aufgabenplaner → Erstellen → Geplante Aufgabe → Benutzerdefiniertes Skript (gleicher Weg wie Teil B, Schritt 1). Name für die Aufgabe z. B. „AutoLogbuch konfigurieren”, Benutzer root. Im Reiter Zeitplan zunächst „Am folgenden Datum ausführen” wählen, dort bei „Wiederholen” die Option „Nicht wiederholen” — die Aufgabe wird gleich manuell gestartet, sonst liefe sie standardmäßig täglich erneut und würde jedes Mal fehlschlagen, weil die .env dann schon existiert (siehe Häufige Fragen). Unter Aufgabeneinstellungen das Skript unten unverändert einfügen → Ok → ggf. Hinweis nochmals mit Ok bestätigen → ggf. Passwort eingeben und Senden klicken → mit der rechten Maustaste auf die neue Aufgabe klicken und Ausführen klicken, Hinweis mit Ok bestätigen.

    Erzeugt automatisch eine vollständige .env im Ordner docker/autologbuch — inklusive zufälligem Datenbank-Passwort, ganz ohne Eingabe. Die Verbindung zur Zentrale wird NICHT hier festgelegt, sondern erst nach dem ersten Start direkt in der App (siehe Teil E).

    Terminal-Fenster
    cd /volume1/docker/autologbuch
    bash scripts/init-satellite-env.sh
  1. Container Manager öffnen → links Projekt → Erstellen. Als Namen z. B. autologbuch eingeben.

    Erlaubt sind nur Kleinbuchstaben „a–z”, Ziffern „0–9”, Bindestriche „-” und Unterstriche „_“; der Name darf nicht mit einem Bindestrich oder Unterstrich beginnen (z. B. wird „Test Autologbuch” mit Leerzeichen und Großbuchstaben abgelehnt — DSM zeigt dann das Eingabefeld rot umrandet mit genau dieser Fehlermeldung).

    Als Pfad den Ordner docker/autologbuch auswählen (den Teil B, Schritt 1 bereits automatisch angelegt hat). Da dort schon eine docker-compose.yml liegt, fragt DSM automatisch in einem Dialogfenster nach: „Vorhandene docker-compose.yml verwenden, um das Projekt zu erstellen” (bereits ausgewählt) mit OK bestätigen. Danach auf der Seite „1 Allgemein” mit Weiter fortfahren.

  2. Auf der Seite „2 Web-Portal” nichts aktivieren — AutoLogbuch braucht Web Station nicht, einfach Weiter klicken. Auf der Zusammenfassungs-Seite „3 Fertigstellen” die Angaben prüfen, den Haken bei „Das Projekt starten, nachdem es erstellt wurde” gesetzt lassen und Fertig klicken — der Bauvorgang startet automatisch und zeigt ein Terminal-Fenster mit dem Bauprotokoll. Das dauert beim allerersten Mal 5–15 Minuten.

    Erst NACH Exit Code: 0 das Fenster mit Schließen beenden und links auf Container klicken: Ein grüner Punkt bei allen drei Bausteinen (Datenbank, Backend, Oberfläche) zeigt, dass alles läuft.

    Schlägt das Bauen mit „address already in use” fehl (Port 8085 bzw. 5433 auf dieser NAS bereits belegt)? Siehe Häufige Fragen am Ende dieser Anleitung.

  1. Steht oben im DSM-Desktop im Systemzustand bzw. unter Systemsteuerung → Netzwerk → Netzwerkschnittstelle, z. B. 192.168.1.50.

  2. Auf jedem Gerät im selben WLAN: http://NAS-IP:8085 öffnen (mit der eigenen IP-Adresse statt NAS-IP). Der Einrichtungs-Assistent legt beim allerersten Aufruf den ersten Benutzer an.

  3. Direkt danach zeigt die App automatisch die Seite „Verbindung zur Zentrale herstellen”. Eine Bezeichnung eingeben (z. B. „Synology Zuhause”) und Anfrage senden — die Adresse der Zentrale ist fest hinterlegt, keine Eingabe nötig. Der Admin der Zentrale bekommt automatisch eine E-Mail und legt eine Installation samt Zugangs-Token für diesen Satelliten an. Sobald er die Anfrage annimmt, holt sich dieser Satellit den Token automatisch ab und trägt ihn selbst ein — fertig, ganz ohne weiteres Zutun! Eine Bestätigungsmail zeigt an, dass die Verbindung erfolgreich hergestellt wurde. Klappt das automatische Abholen ausnahmsweise nicht, bleibt die manuelle Eingabe auf derselben Seite jederzeit als Alternative möglich.

    Diese Verbindung funktioniert unabhängig davon, ob der optionale Teil F auf diesem Satelliten bereits eingerichtet ist — Teil F betrifft nur die Erreichbarkeit DIESER Installation von außen, nicht die Verbindung zur Zentrale.

    Zusätzliches optionales Feld auf derselben Seite: „Öffentliche URL dieser Satelliten-App” — nur ausfüllen, falls Teil F schon eingerichtet ist, sonst leer lassen. Ohne diese Adresse werden später E-Mails mit Link (z. B. Passwort-Reset) abgelehnt; bei Teil F erst SPÄTER lässt sich das jederzeit auf der Zentrale unter Einstellungen → Installationen nachtragen (Schritt F6).

  4. Eine DRITTE Aufgabe im Aufgabenplaner anlegen (gleicher Weg wie Teil B, Schritt 1), das Skript unten einfügen. Am besten gleich einen Zeitplan hinterlegen (z. B. wöchentlich nachts), damit Fehlerbehebungen und neue Funktionen automatisch ankommen — geht aber auch jederzeit manuell über Jetzt ausführen. Deine Daten (Fahrzeuge, Einträge) bleiben davon unberührt.

    #!/bin/bash
    set -euo pipefail
    cd /volume1/docker/autologbuch
    git fetch origin main
    LOCAL=$(git rev-parse HEAD)
    REMOTE=$(git rev-parse origin/main)
    if [ "$LOCAL" = "$REMOTE" ]; then
    exit 0
    fi
    git pull origin main
    docker compose build
    docker compose up -d

Teil F: Optional: Zugriff von unterwegs einrichten

Abschnitt betitelt „Teil F: Optional: Zugriff von unterwegs einrichten“

Nur nötig, wenn die App auch außerhalb des eigenen WLANs (z. B. unterwegs auf dem Handy) erreichbar sein soll. Dafür braucht die NAS eine feste Adresse im Internet, ein Sicherheitszertifikat und eine Weiterleitung im Router. Wer das nicht braucht: Anleitung ist an dieser Stelle fertig.

  1. Systemsteuerung → Externer Zugriff → DDNS → Hinzufügen. Anbieter Synology wählen, einen frei wählbaren Namen vergeben (z. B. meinefamilie.synology.me) — diese Adresse zeigt ab sofort immer auf die eigene NAS, auch wenn sich die Internetadresse des Anschlusses ändert.

    Empfehlung: Für AutoLogbuch selbst nicht diese Basis-Adresse direkt verwenden, sondern eine eigene Subdomain davorsetzen, z. B. autologbuch.meinefamilie.synology.me (löst Synologys DDNS-Dienst automatisch mit auf, ganz ohne zusätzliche Einrichtung). So bleiben App und eine eventuell von außen erreichbare DSM-Verwaltungsoberfläche unter getrennten Adressen unabhängig voneinander erreichbar, statt sich die Reverse-Proxy-Regel aus Schritt 3 zu teilen. Ab hier ist mit „(Sub-)Adresse” immer diese App-eigene Subdomain gemeint.

  2. Systemsteuerung → Sicherheit → Zertifikat → Hinzufügen → Option „Neues Zertifikat hinzufügen” → Weiter → Option „Zertifikat von Let’s Encrypt abrufen” → Weiter → als Domainname die (Sub-)Adresse aus Schritt 1 eintragen (z. B. autologbuch.meinefamilie.synology.me), E-Mail-Adresse für Verlängerungs-Erinnerungen angeben, das Feld „Betreff Alternativer Name” leer lassen (wird nur gebraucht, wenn EIN Zertifikat mehrere Domains gleichzeitig abdecken soll — hier reicht die eine Subdomain aus Schritt 1) → Fertig. Ohne dieses Zertifikat zeigt jeder Browser eine Warnung vor „unsicherer Verbindung”.

  3. Systemsteuerung → Anmeldeportal → Erweitert → Reverse-Proxy → Erstellen. Quelle: als Hostname die (Sub-)Adresse aus Schritt 1, HTTPS, Port 9443 (bewusst NICHT der Standard-Port 443 — der ist auf einer Synology-NAS mit mehreren installierten Paketen erfahrungsgemäß oft schon durch eine andere Anwendung belegt; 9443 bleibt frei und macht das explizite „welcher Port ist noch frei?“-Suchen aus Schritt 5 unten überflüssig). Ziel: localhost, HTTP, Port 8085 bzw. den von dir gewählten Port. Danach in derselben Regel unter Bearbeiten → Benutzerdefinierte Kopfzeile die Voreinstellung WebSocket hinzufügen — ohne diesen Schritt funktioniert die App zwar, aber Änderungen von anderen Geräten erscheinen erst nach manuellem Neuladen der Seite statt sofort.

  4. Die Reverse-Proxy-Regel aus Schritt 3 hat selbst kein Feld für das Zertifikat — die Zuordnung passiert an anderer Stelle: Systemsteuerung → Sicherheit → Zertifikat, Button „Einstellungen” (oben rechts neben „Hinzufügen”/„Aktion”). Im sich öffnenden Fenster auf dem Reiter „Konfigurieren” erscheint eine Tabelle mit einer Zeile pro Dienst. Bei der Zeile mit der (Sub-)Adresse aus Schritt 1 (erscheint dort automatisch als eigener Dienst, sobald die Regel aus Schritt 3 angelegt ist) in der Spalte „Zertifikat” das in Schritt 2 erstellte Zertifikat auswählen → OK.

  5. Der Router muss Anfragen von außen an die interne IP-Adresse der NAS weiterreichen. Port von außen UND innen jeweils 9443, passend zur Regel aus Schritt 3. Beispiel für eine FritzBox:

    1. fritz.box im Browser öffnen, mit dem FritzBox-Kennwort einloggen
    2. Internet → Freigaben → Portfreigaben öffnen
    3. Gerät für Freigaben hinzufügen → die Synology-NAS aus der Liste auswählen
    4. Neue Freigabe: Bezeichnung „AutoLogbuch”, Protokoll TCP, Port von außen und innen jeweils 9443 eintragen
    5. Mit OK speichern

    Ist 9443 am eigenen Anschluss ausnahmsweise doch schon belegt, einen anderen freien Port wählen — dann aber sowohl in Schritt 3 (Reverse-Proxy-Regel) als auch hier denselben Port eintragen, und die Öffentliche URL in Schritt 6 muss diesen Port ebenfalls enthalten, z. B. https://autologbuch.meinefamilie.synology.me:8443.

  6. Die App-Adresse wird für einen Satelliten NICHT lokal in der .env eingetragen, sondern kommt automatisch von der Zentrale: dort als Admin unter Einstellungen → Installationen bei dieser Installation die „Öffentliche URL” auf https://autologbuch.meinefamilie.synology.me:9443 setzen/ändern — diese Installation übernimmt die neue Adresse von selbst, ganz ohne eigenen Neustart.

NAS eingeschaltet und im selben Netzwerk? IP-Adresse korrekt abgetippt? Ggf. Systemsteuerung → Sicherheit → Firewall → Port 8085 (bzw. 9443) freigeben.

Ein Baustein in Container Manager wird nicht grün.

Abschnitt betitelt „Ein Baustein in Container Manager wird nicht grün.“

Im Projekt auf den betroffenen Baustein → Protokoll klicken — meist ein falsch eingetragener Wert in der .env (Teil C), danach Projekt neu starten.

Läuft bereits eine .env in docker/autologbuch (z. B. von einem vorherigen Versuch)? Das Skript überschreibt sie absichtlich NICHT — vorher löschen/umbenennen und erneut ausführen.

Prüfen, ob auf der Zentrale unter Einstellungen → Installationen eine „Öffentliche URL” für diese Installation hinterlegt ist — ohne sie werden E-Mails mit Link (z. B. Passwort-Reset) abgelehnt.

Das Skript in Teil B lädt nichts herunter (Fehler „128”)?

Abschnitt betitelt „Das Skript in Teil B lädt nichts herunter (Fehler „128”)?“

Der über token.php angezeigte Zugriffstoken wurde widerrufen/ist abgelaufen — bei der Person nachfragen, die dir diese Anleitung empfohlen hat, sie kann den Token zentral aktualisieren (kein neuer Anleitungs-Download nötig). Sonst: Ordner docker/autologbuch existiert bereits (z. B. vorheriger Versuch) — git clone bricht dann ab, ohne zu löschen; alten Ordner umbenennen/löschen und erneut ausführen.

Bauen schlägt mit „address already in use” fehl?

Abschnitt betitelt „Bauen schlägt mit „address already in use” fehl?“

Port 8085 bzw. 5433 ist auf dieser NAS bereits durch eine andere Anwendung belegt (z. B. eine bereits laufende AutoLogbuch-Installation). So wird die .env in docker/autologbuch bearbeitet: Text-Editor öffnen (Teil A) → Datei → Öffnen → zum Ordner docker/autologbuch navigieren → im Öffnen-Dialog den Dateityp-Filter auf „Alle Dateien” umstellen (sonst wird die .env nicht angezeigt, da sie keine erkannte Dateiendung hat) → .env auswählen. Dort steht z. B. #POSTGRES_HOST_PORT=5434 mit einer führenden Raute (Kommentarzeichen) davor — diese Raute entfernen, also aus #POSTGRES_HOST_PORT=5434 wird POSTGRES_HOST_PORT=5434 (genauso bei APP_PORT, falls stattdessen der Web-Port belegt ist; andere freie Portnummer wählen, falls auch diese schon vergeben ist), speichern, danach Projekt in Container Manager neu bauen.

„Diese Benutzerkonto verfügt nicht über die erforderlichen Berechtigungen” beim Öffnen der .env?

Abschnitt betitelt „„Diese Benutzerkonto verfügt nicht über die erforderlichen Berechtigungen” beim Öffnen der .env?“

Die Datei wurde in Teil C als root angelegt — das eigene DSM-Administrator-Konto ist technisch nicht root und darf sie deshalb nicht per Text-Editor öffnen/speichern. Fix per Aufgabenplaner (gleicher Weg wie Teil B, Schritt 1): einmalige Aufgabe anlegen, als Skript chmod 666 /volume1/docker/autologbuch/.env einfügen, einmal ausführen — danach lässt sich die Datei normal im Text-Editor öffnen und speichern. Bei neu erstellten Installationen tritt dieser Fehler nicht mehr auf.

Testphase abgelaufen — unter Mein Konto direkt eine Lizenz bei der Zentrale anfordern, kein Nachfragen bei einer Person nötig.

Automatische Backups sollen in einen bereits vorhandenen NAS-Ordner (z. B. für Synology Drive) statt in ein reines Docker-Volume?

Abschnitt betitelt „Automatische Backups sollen in einen bereits vorhandenen NAS-Ordner (z. B. für Synology Drive) statt in ein reines Docker-Volume?“

In der File Station Rechtsklick auf den Zielordner → Eigenschaften, den dort angezeigten vollen Pfad notieren. In der .env (wie oben bei „address already in use” beschrieben öffnen) die Zeile BACKUP_HOST_PATH= um genau diesen Pfad ergänzen, speichern, danach Projekt in Container Manager neu bauen. In der App unter Einstellungen → „Sicherung” bleibt das Feld „Zielordner” dann leer (und ist automatisch gesperrt) — das Backup-Verzeichnis zeigt jetzt direkt auf den gewählten Ordner. Für automatischen Sync zu einem PC per Synology Drive zusätzlich einen eigenen Aufgabenplaner-Task einrichten, der die neuen Backup-Dateien periodisch direkt auf der NAS „touched” (Details bei der Person, die diese Anleitung bereitstellt).