Grocy 2026 selbst hosten: Bestandsdaten, Zeitzone und Backups
Grocy mit den richtigen Ports, persistentem Speicher, HTTPS, Secrets, Backups und Upgrade-Prüfungen selbst hosten. Erfahre, wie du das Problem behebst, wenn die SQLite-Datenbank nicht schreiben kann.
Betrachte Grocy als kleines System und nicht als Docker-Image. Das Ziel aus Anwendersicht ist klar: Haushaltsbestände, Einkäufe, Aufgaben und Ausrüstung verwalten. Das Deployment ist erst dann akzeptabel, wenn du den Standard-Login ersetzen, ein Produkt hinzufügen, einen Einkauf und Verbrauch erfassen, einen Barcode scannen sowie eine Aufgabe oder Erinnerung an den Ablauf eines Produkts auslösen kannst.
Diese Unterscheidung macht den Fehler sichtbar, auf den Betreiber nach lokalen Tests stoßen: Die SQLite-Datenbank kann nicht schreiben oder geplante Aufgaben verwenden die falsche Zeitzone. Außerdem wird der Backup- und Upgrade-Plan dadurch konkret genug, um ihn zu testen.
Ports, Prozesse und private Services
Ein nützliches Grocy-Diagramm zeigt die öffentliche Route, den privaten Port 80, die Zustandsgrenze und alle unterstützenden Anforderungen. Kennzeichne, welche Pfeile Zugangsdaten übertragen und welche lediglich normalen Benutzer-Traffic transportieren. Die lokale Laufzeitanforderung besteht aus einem dauerhaften Config-Volume und optionalem Zugriff auf Barcode-Geräte. Dimensioniere und überwache diese Ressource zusammen mit dem Container, statt einen nicht verwandten Netzwerkdienst bereitzustellen.
Beweise das Diagramm mit einer echten Aktion: Ersetze den Standard-Login, füge ein Produkt hinzu, erfasse einen Einkauf und Verbrauch, scanne einen Barcode und löse eine Aufgabe oder Erinnerung an den Ablauf eines Produkts aus. Die wahrscheinliche Belastung entsteht durch SQLite-Schreibvorgänge, hochgeladene Bilder, geplante Jobs und Traffic von Haushaltsgeräten. Überwache daher diesen Pfad, statt alle HTTP-Anfragen gleich zu behandeln.
Überwache die Workload, nicht nur den Container
Beobachte, welche Arbeit Grocy ausführt: SQLite-Schreibvorgänge, hochgeladene Bilder, geplante Jobs und Traffic von Haushaltsgeräten. Setze Limits mit ausreichend Headroom für diese Arbeit und vermeide einen Liveness-Probe, der mit ihr konkurriert. Die Betreiberprüfung sollte weiterhin regelmäßig versuchen, den Standard-Login zu ersetzen, ein Produkt hinzuzufügen, einen Einkauf und Verbrauch zu erfassen, einen Barcode zu scannen sowie eine Aufgabe oder Erinnerung an den Ablauf eines Produkts auszulösen.
Denke bei Updates daran, dass Grocy-Datenbankmigrationen und Custom Extensions in einem kopierten Config-Verzeichnis durchgespielt werden sollten. Stelle den Kandidaten gegen eine wiederhergestellte Kopie bereit und wiederhole den bekannten Test. Wenn die SQLite-Datenbank nicht schreiben kann oder geplante Aufgaben die falsche Zeitzone verwenden, nutze Runtime-Logs und die tatsächliche Netzwerkanfrage, um herauszufinden, welche Annahme sich geändert hat.
Was vor dem Eintreffen echter Grocy-Daten erfolgreich sein muss
Ein Production Gate für Grocy sollte von jemandem ausführbar sein, der das Deployment nicht erstellt hat. Gib dieser Person die festgelegte Version, ein nicht sensibles Testkonto und diese Aufgabe: Standard-Login ersetzen, ein Produkt hinzufügen, einen Einkauf und Verbrauch erfassen, einen Barcode scannen sowie eine Aufgabe oder Erinnerung an den Ablauf eines Produkts auslösen. Wenn die Anleitung undokumentierten Shell-Zugriff voraussetzt, ist der Service noch nicht betriebsbereit.
Wiederhole das Gate, nachdem du ausschließlich den Container ersetzt hast. Stelle anschließend Datenbank, hochgeladene Dateien, Rezepte und Konfiguration in einer leeren Infrastruktur wieder her und beweise, dass Bestände, Rezepte, Aufgaben, Ausrüstung und Verlauf zurückkehren und die nächste geplante Erinnerung das richtige Datum hat. Miss SQLite-Schreibvorgänge, hochgeladene Bilder, geplante Jobs und Traffic von Haushaltsgeräten während beider erfolgreichen Durchläufe. Unerwartete Unterschiede weisen häufig auf einen fehlenden Cache, Index, Worker oder Daten-Mount hin.
Füge einen Failure Drill hinzu: Übermittle harmlose Eingaben nahe am Ressourcen- oder Formatlimit, das mit dieser Grenze verbunden ist: Die SQLite-Datenbank kann nicht schreiben oder geplante Aufgaben verwenden die falsche Zeitzone. Grocy sollte einen hilfreichen Fehler ausgeben, den bestehenden Zustand bewahren und sich erholen, sobald die gültige Bedingung wiederhergestellt ist. Speichere die Zeitstempel und relevanten Logzeilen, wobei Secrets zu schwärzen sind. Diese Nachweise dienen als Referenz für das nächste Image oder die nächste Konfigurationsänderung.
Erstelle einen ersetzbaren Grocy-Container
Verwende einen Befehl, der jede wichtige Entscheidung sichtbar macht. Diese Baseline bindet Grocy an das Loopback-Interface des Hosts, fügt die bekannten Daten-Mounts hinzu und stellt die erste erforderliche Einstellung bereit. Bestätige die lokale Anforderung vor der Veröffentlichung: ein dauerhaftes Config-Volume und optionaler Zugriff auf Barcode-Geräte.
docker run -d \
--name grocy \
--restart unless-stopped \
-p 127.0.0.1:80:80 \
-v grocy-data:/config \
lscr.io/linuxserver/grocy:latest
Ersetze Floating Tags durch eine getestete Version oder einen Digest. Prüfe nach dem Start docker logs --tail 200 grocy und bestätige, dass der Prozess auf Port 80 lauscht. Führe anschließend die Grocy-Abnahmeaktion aus. Eine Antwort von der Root-Seite kann nicht beweisen, dass das vollständige Szenario erfolgreich ist: Standard-Login ersetzen, ein Produkt hinzufügen, einen Einkauf und Verbrauch erfassen, einen Barcode scannen sowie eine Aufgabe oder Erinnerung an den Ablauf eines Produkts auslösen.
Plane die Grocy-Wiederherstellung vor dem Start
Schütze den Zustand von Grocy, bevor du den Container optimierst. Der erforderliche Umfang besteht aus Datenbank, hochgeladenen Dateien, Rezepten und Konfiguration. Binde /config vor dem Bootstrap ein, schreibe harmlose Beispieldaten und ersetze den Container, um zu beweisen, dass dieser Pfad tatsächlich persistent ist. Wenn mehrere Stores konsistent bleiben müssen, dokumentiere die Reihenfolge, in der Schreibvorgänge pausiert und Backups erstellt werden.
Bewahre Kopien außerhalb des Deployment-Servers auf und verschlüssele Material, das Zugangsdaten oder private Inhalte enthält. Eine Wiederherstellung ist erfolgreich, wenn Bestände, Rezepte, Aufgaben, Ausrüstung und Verlauf zurückkehren und die nächste geplante Erinnerung das richtige Datum hat. Der Unterschied zwischen einem persistenten Mount und einer unabhängigen Kopie wird in persistent storage and snapshots behandelt.
Teste Grocy von außerhalb des Servers
Lege den endgültigen Grocy-Hostname fest, bevor Benutzer Callbacks oder Client-Einstellungen speichern. Veröffentliche die UI anschließend über HTTPS und konfiguriere die richtige Zeitzone. Die Plattformroute sollte TLS einmal terminieren und auf den privaten Port 80 zeigen.
Führe die Abnahmetransaktion von außerhalb aus. Wenn der Client Grocy nie erreicht, nutze die SSL validation checklist für DNS- und Zertifikatsprüfungen. Wenn die Anfrage Grocy erreicht, die SQLite-Datenbank aber nicht schreiben kann oder geplante Aufgaben die falsche Zeitzone verwenden, ändere nicht weiter Proxy-Redirects, sondern prüfe stattdessen die anwendungsspezifische Grenze.
Wähle die Vertrauensgrenze von Grocy
Erstelle ein Threat Model für die Aktion, die Grocy ausführt, und nicht nur für das Login-Formular. Der größte Risikofaktor ist hier, den Standard-Login nach der Einrichtung beizubehalten. Implementiere diese Grenze: Entferne die Standard-Zugangsdaten, wähle die richtige Zeitzone und beschränke Haushaltsdaten auf die vorgesehenen Benutzer.
Grocy benötigt in dieser Baseline kein verpflichtendes Bootstrap-Secret. Schütze stattdessen das tatsächliche Administratorkonto oder die vorgeschaltete Authentifizierung. Löse einen Berechtigungsfehler nicht, indem du den Container als root ausführst oder den Host umfassend mountest. Ressourcenlimits gehören ebenfalls zum Security Design, wenn Benutzer SQLite-Schreibvorgänge, hochgeladene Bilder, geplante Jobs und Traffic von Haushaltsgeräten auslösen können.
Auch ein Dockup-Deployment braucht einen Grocy-Abnahmetest
Dockup kann die ersetzbaren Plattformbestandteile übernehmen: Traffic auf Port 80 routen, Domain und Zertifikat ausstellen, Secrets injizieren, persistenten Speicher einbinden und Grocy mit verwalteten oder privat angebundenen Services verbinden. Dies ist sowohl auf der Dockup-Infrastruktur als auch auf einem von dir angebundenen Server möglich.
Die Grocy-Abnahme bleibt ausdrücklich deine Aufgabe. Veröffentliche nach dem One-Click-Deployment die UI über HTTPS und konfiguriere die richtige Zeitzone. Bestätige die lokale Anforderung — ein dauerhaftes Config-Volume und optionaler Zugriff auf Barcode-Geräte — und führe dieses Szenario aus: Standard-Login ersetzen, ein Produkt hinzufügen, einen Einkauf und Verbrauch erfassen, einen Barcode scannen sowie eine Aufgabe oder Erinnerung an den Ablauf eines Produkts auslösen. Diese Aufteilung ist beabsichtigt: Dockup beseitigt wiederkehrende Infrastrukturarbeit, ohne so zu tun, als würden sich Anwendungsrollen, Provider-Zugangsdaten oder die Restore-Policy von selbst festlegen.
Häufig gestellte Fragen
Was benötigt Grocy für ein Production Deployment?
Route den Grocy-Container auf Port 80 über einen einzigen HTTPS-Origin. Die lokale Laufzeitanforderung besteht aus einem dauerhaften Config-Volume und optionalem Zugriff auf Barcode-Geräte. Betrachte Grocy erst dann als bereit, wenn du den Standard-Login ersetzen, ein Produkt hinzufügen, einen Einkauf und Verbrauch erfassen, einen Barcode scannen sowie eine Aufgabe oder Erinnerung an den Ablauf eines Produkts auslösen kannst.
Welche Grocy-Daten gehören in ein Backup?
Mache /config persistent und nimm Datenbank, hochgeladene Dateien, Rezepte und Konfiguration in dasselbe Recovery-Manifest auf. Eine saubere Grocy-Wiederherstellung ist erst dann erfolgreich, wenn Bestände, Rezepte, Aufgaben, Ausrüstung und Verlauf zurückkehren und die nächste geplante Erinnerung das richtige Datum hat.
Benötigt Grocy HTTPS hinter einem Reverse Proxy?
Verwende HTTPS für den öffentlichen Grocy-Origin und belasse Port 80 auf der internen Route. Wende die Grocy-Einstellung korrekt an: Veröffentliche die UI über HTTPS und konfiguriere die richtige Zeitzone. Bei Grocy schützt HTTPS Zugangsdaten oder Benutzerinhalte bei der Übertragung und sorgt für konsistentes Client-Verhalten, das vom Origin abhängt.
Wie sollte ein Grocy-Upgrade getestet werden?
Stelle den aktuellen Grocy-Zustand in einem isolierten Deployment wieder her, wende die Kandidatenversion an und wiederhole die Abnahmetransaktion. Achte besonders darauf, da Grocy-Datenbankmigrationen und Custom Extensions in einem kopierten Config-Verzeichnis durchgespielt werden sollten. Behalte das vorherige Grocy-Image, bis die Grenzen für Datenmigration und Rollback bekannt sind.
