AnleitungenUmami ausführen

Umami ausführen

Diese Anleitung verwendet das offizielle Umami-Docker-Image auf Lizard mit einer separaten PostgreSQL-Datenbank. Sie nutzt Lizard CLI, um ein kleines lokales Dockerfile bereitzustellen und Umami über HTTPS zu veröffentlichen.

Voraussetzungen

  • Ein Lizard-Konto mit Zugriff auf App-Hosting und Managed Postgres.
  • Node.js und npm auf deinem Computer sowie OpenSSL zum Erzeugen von Geheimnissen.

Installiere Lizard CLI und melde dich an:

npm install -g @lizard-build/cli
lizard login

Schließe die Anmeldung in deinem Browser ab, bevor du fortfährst. Die folgenden Befehle wurden mit Lizard CLI 0.3.95 und Umami 3.3.1 getestet.

Projekt und Datenbank erstellen

Verwende für diese Bereitstellung ein neues Verzeichnis:

mkdir umami-on-lizard
cd umami-on-lizard
lizard init --name umami-on-lizard
lizard add postgres --name umami-db
lizard add --service umami

Wenn du zu mehr als einem Workspace gehörst, übergib --workspace <workspace> an lizard init, um einen auszuwählen. Warte, bis die Datenbank running erreicht, bevor du Umami bereitstellst.

Image und Geheimnisse festlegen

Erstelle eine Datei mit dem Namen Dockerfile:

FROM ghcr.io/umami-software/umami:3.3.1
EXPOSE 3000

Weise Lizard an, diese Datei unverändert zu verwenden:

lizard service set umami --set dockerfilePath=Dockerfile

Verbinde die Datenbank und erzeuge zwei separate Geheimnisse:

lizard secrets set \
  DATABASE_URL='${{umami-db.DATABASE_URL}}' \
  APP_SECRET="$(openssl rand -hex 32)" \
  TWO_FACTOR_ENCRYPTION_KEY="$(openssl rand -hex 32)" \
  --service umami

Behalte die einfachen Anführungszeichen um die Datenbankreferenz bei: Lizard löst sie beim Start des Dienstes auf. Die Werte gehören zu diesem Dienst, daher erhalten andere Apps im Projekt sie nicht.

Speichere beide erzeugten Geheimnisse in deinem Passwort-Manager. Setze sie einmal bei der Einrichtung; erzeuge sie nicht neu, wenn du neu startest oder ein Upgrade durchführst. TWO_FACTOR_ENCRYPTION_KEY ist für die Zwei-Faktor-Authentifizierung erforderlich.

Bereitstellen und anmelden

Führe im Verzeichnis mit dem Dockerfile Folgendes aus:

lizard up --service umami --port 3000

Das Umami-Image führt beim Start die Einrichtung der Datenbank und die Migrationen aus. Für dieses Image ist kein separater Migrationsbefehl nötig.

Öffne die von der Bereitstellung zurückgegebene HTTPS-URL. Melde dich bei einer neuen Umami-3.3.1-Datenbank mit dem Benutzernamen admin und dem Passwort umami an und ändere dann sofort das Passwort in deinem Profil, bevor du die URL weitergibst. Füge eine Website hinzu und installiere ihr Tracking-Skript auf einer Seite, die du kontrollierst.

Wenn die Bereitstellung fehlschlägt, prüfe ihren Status und die Logs:

lizard events --service umami
lizard logs --build --service umami
lizard logs --service umami

Wenn der erste Start wegen Zeitüberschreitung fehlschlägt, prüfe lizard events auf die Bereitschaft des Containers. Sobald der Container gestartet ist, wiederhole den Upload mit lizard up --service umami --port 3000.

Datenpersistenz prüfen

Besuche die getrackte Seite und bestätige, dass Umami einen Seitenaufruf erfasst. Starte die Anwendung neu:

lizard restart --service umami

Warte, bis der Dienst wieder läuft. Bestätige, dass dein neues Passwort funktioniert und dass die Website und der Seitenaufruf erhalten bleiben. Wiederhole die Prüfung dann nach einer erneuten Bereitstellung:

lizard redeploy --service umami

Umami speichert Konten, Website-Einstellungen und Analytics in PostgreSQL. Die Anwendung benötigt für diese Datensätze kein Dateivolume. Behalte die Datenbank und die Verschlüsselungsgeheimnisse bei, wenn du die App ersetzt oder aktualisierst. Eine Neustartprüfung ersetzt keinen getesteten Plan für Datenbank-Backup und -Wiederherstellung.

Umami aktualisieren

Erstelle vor dem Upgrade ein Backup von PostgreSQL und lies die Release Hinweise. Ändere das Image-Tag im lokalen Dockerfile und führe dann lizard up --service umami --port 3000 erneut aus. Bei diesem Upload-basierten Setup erstellt lizard redeploy die zuletzt hochgeladenen Dateien neu; lokale Änderungen werden nicht hochgeladen.

Siehe PostgreSQL-Anleitung von Lizard für den Datenbankzugriff und Speicher und Wiederherstellung für die Backup-Planung.