Umami Analytics installieren und absichern

Umami ist ein relativ neues Website Analytics Tool, das das Thema Datenschutz im Blick behält und beispielsweise komplett auf Cookies verzichtet. Bei Umami handelt es sich um eine selbst gehostete Lösung und in diesem Tutorial möchte ich beschreiben, wie man Umami installiert und absichert.

Das Tutorial wurde auf einem Hetzner Cloud Server installiert, als Basis diente das Ubuntu 20.04 Image.

Server absichern und aktualisieren

sudo einrichten und SSH absichern

Der erste Schritt besteht in der Konfiguration von sudo sowie der Absicherung von SSH. Dafür habe ich ein eigenes Tutorial geschrieben.

Server aktualisieren

Im nächsten Schritt wird der Server aktualisiert. Dazu müssen folgende beiden Befehle ausgeführt werden:

sudo apt-get update
sudo apt-get full-upgrade

Umami installieren

Benötigte Pakete installieren

Im nächsten Schritt werden die für Umami benötigten Pakete installiert:

sudo apt-get install npm git mysql-server

Secure MySQL

Anschließend wird MySQL abgesichert:

sudo mysql_secure_installation

Umami selbst installieren

cd ~
git clone https://github.com/mikecao/umami.git
cd umami
npm install

Datenbank einrichten

Im nächsten Schritt wird die Datenbank eingerichtet. Dazu folgenden Befehl ausführen:

sudo mysql

Die nachfolgenden Befehle erstellen eine Datenbank und einen User namens umami. ACHTUNG, das Password my_password muss natürlich geändert werden:

CREATE DATABASE umami;
CREATE USER 'umami'@'localhost' IDENTIFIED WITH mysql_native_password BY 'my_password';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, INDEX, DROP, ALTER, REFERENCES, CREATE TEMPORARY TABLES, LOCK TABLES ON umami.* TO 'umami'@'localhost';

Im nächsten Schritt muss das SQL-File importiert werden:

mysql -u umami -p umami < sql/schema.mysql.sql

Umami konfigurieren

Nun muss ein 64 Zeichen langer Hash-Wert erzeugt werden. Das kann beispielsweise mit folgendem Tool gemacht werden: https://onlinerandomtools.com/generate-random-string

Nun muss eine .env-Datei im Umami-Verzeichnis angelegt werden. In die Datei sollte folgender Inhalt eingefügt werden:

DATABASE_URL=mysql://umami:your_password@localhost:3306/umami
HASH_SALT=your_hash

your_hash sowie your_password muss natürlich entsprechend ersetzt werden.

Umami starten

Im nächsten Schritt muss der Umami Build-Prozess gestartet werden:

npm run build

Und dann ausgeführt werden:

npm run start

Wenn alles geklappt hat, sollte nun unter http:// your-server.your-domain.com:3000 Umami aufgerufen werden können. Die Zugangsdaten sind initial admin mit dem Passwort umami (bitte sofort ändern!).

Nun sollte Umami per STRG+C gestoppt werden.

Umami im Hintergrund ausführen

PM2 installieren

Um Umami im Hintergrund auszuführen, muss PM2 installiert werden. Dazu folgenden Befehl ausführen:

sudo npm install pm2 -g

Nun kann Umami im Hintergrund gestartet werden:

pm2 --name umami start npm -- start

Um Umami wieder zu stoppen, folgenden Befehl ausführen:

pm2 delete 0

Damit Umami nach einem Server-Reboot automatisch wieder startet, muss noch folgender Befehl ausgeführt werden:

pm2 startup

Nach Ausführung des Befehls wird ein neuer Befehl angezeigt, der als sudo-User ausgeführt werden muss. Führe diesen Befehl aus, um den Autostart nach Reboot zu aktivieren.

HTTPS einrichten

Caddy installieren

Um zu vermeiden, dass Umami unverschlüsselt über Port 3000 läuft, sollte Caddy installiert werden. Caddy fungiert als Reverse Proxy und bietet HTTPS-Verschlüsselung per Let’s Encrypt-Zertifikat. Um Caddy zu installieren, folgenden Befehl ausführen:

echo "deb [trusted=yes] https://apt.fury.io/caddy/ /" | sudo tee -a /etc/apt/sources.list.d/caddy-fury.list
sudo apt update
sudo apt install caddy libnss3-tools

Anschließend das Caddyfile anpassen:

sudo nano /etc/caddy/Caddyfile

Nun alle Zeilen auskommentieren oder löschen, so dass die Datei am Ende nur noch die folgenden Zeilen enthält:

your-server.your-domain.com

reverse_proxy 127.0.0.1:3000

your-server.your-domain.com muss natürlich entsprechend angepasst werden.

Firewall konfigurieren

Im letzten Schritt wird die Firewall konfiguriert und aktiviert:

sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https
sudo ufw enable

Installation abschließen

Finaler Schritt ist der Reboot des Servers. Anschließend sollte Umami über https://your-server.your-domain.com aufgerufen werden können.

Bonus: Umami aktualisieren

Um eine Umami-Installation zu aktualisieren, die nach oben beschriebenem Tutorial installiert wurde, müssen folgende Befehle ausgeführt werden. Wichtig dabei, die Befehle müssen aus dem Umami-Basisverzeichnis ausgeführt werden!

Die Befehle lauten:

pm2 delete 0
git pull
npm install
npm run build
pm2 --name umami start npm -- start

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert