So installierst du Fathom Privacy Focused Web Analytics unter Debian 12

Fathom ist ein datenschutzorientiertes Webanalyseprogramm, das saubere und übersichtliche Daten über deine Websites liefert. Es ist ein einfaches Website-Analyseprogramm, das aufschlussreiche Berichte und Metriken über deine Websites liefert. Fathom wurde als Alternative zu Google Analytics entwickelt, greift aber nicht in die Privatsphäre der Nutzer ein und gibt keine Besucherdaten preis. Es ist GDPR-konform und benötigt keine Cookie-Banner.

Fathom ist in zwei Versionen erhältlich: die Open-Source-Version, die du auf deinem Server installieren kannst, und die Pro-Version, die du auf der offiziellen Fathom-Website kaufen kannst. Zu den namhaften Nutzern von Fathom Website Analytics gehören IBM, Laravel, GitHub, Hoshicord, BOSCH, McLaren, VueJS und viele mehr.

In dieser Anleitung gehen wir Schritt für Schritt auf die Installation von Fathom Privacy Focused Web Analytics auf einem Debian 12 Server ein. Wir besprechen die Fathom-Installation mit PostgreSQL als Datenbank und Nginx als Reverse Proxy. Außerdem werden wir Fathom mit SSL/TLS-Zertifikaten von Letsencrypt absichern.

Voraussetzungen

Bevor du fortfährst, solltest du sicherstellen, dass du Folgendes hast:

  • Einen Debian 12 Server.
  • Einen Nicht-Root-Benutzer mit Administrator-Rechten.
  • Einen Domainnamen, der auf eine Server-IP-Adresse zeigt.

Installieren der Abhängigkeiten

Fathom ist ein datenschutzorientiertes Webanalyseprogramm, das auf Golang und Preact aufbaut. Es unterstützt Datenbanken wie PostgreSQL, MySQL und SQLite und kann mit Nginx Reverse Proxy betrieben werden. Jetzt installierst du die Paketabhängigkeiten für Fathom, wie PostgreSQL, Nginx, Certbot und UFW (Uncomplicated Firewall).

Führe zunächst den unten stehenden apt-Befehl aus, um dein Debian-Repository zu aktualisieren.

sudo apt update

Installiere nun die Abhängigkeiten, indem du den folgenden Befehl ausführst. Damit installierst du den PostgreSQL Server, den Nginx Webserver, Certbot, das Nginx Certbot Plugin und UFW (Uncomplicated Firewall).

sudo apt install postgresql nginx certbot python3-certbot-nginx ufw

Gib y ein, um mit der Installation fortzufahren.

Abhängigkeiten installieren

Nachdem die Abhängigkeiten installiert sind, stellst du sicher, dass alle Abhängigkeiten auf deinem System verfügbar sind.

Überprüfe den postgresql-Dienst mit dem unten stehenden Befehl, um sicherzustellen, dass der Dienst läuft und aktiviert ist.

sudo systemctl is-enabled postgresql
sudo systemctl status postgresql

Das folgende Ergebnis wird in deinem Terminal angezeigt, was bedeutet, dass postgresql läuft und aktiviert ist.

postgresql prüfen

Als Nächstes überprüfst du den nginx-Dienst, indem du den folgenden Befehl ausführst.

sudo systemctl is-enabled nginx
sudo systemctl status nginx

Auf deinem Terminal wird eine ähnliche Ausgabe erscheinen, die anzeigt, dass der nginx-Dienst läuft und aktiviert ist.

nginx prüfen

Überprüfe schließlich den certbot, indem du den folgenden Befehl ausführst. Dadurch wird die ausführbare Binärdatei von certbot gefunden und die aktuelle Version von certbot, die auf deinem System installiert ist, überprüft.

which certbot
certbot --version

Die angezeigte Ausgabe zeigt dir, dass Certbot 2.1 unter /usr/bin/certbot installiert ist.

certbot prüfen

Firewall konfigurieren

Nachdem du die Abhängigkeiten installiert hast, konfigurierst du die UFW, um deinen Debian-Rechner zu sichern. Du wirst Ports für SSH, HTTP und HTTPS auf deinem System öffnen.

Führe den folgenden Befehl aus, um Ports für die Protokolle SSH, HTTP und HTTPS zu öffnen. Das OpenSSH-Profil öffnet Port 22/tcp, und das WWW Full-Profil öffnet sowohl HTTP als auch HTTPS – Port 80 und 443.

sudo ufw allow OpenSSH
sudo ufw allow "WWW Full"

Führe nun den folgenden Befehl aus, um UFW auf deinem Debian-System zu starten und zu aktivieren.

sudo ufw enable

Gib y ein, um die Bestätigungen zu erhalten. Wenn du erfolgreich warst, solltest du die Meldung„Firewall ist aktiv und beim Systemstart aktiviert“ erhalten.

start enable ufw

Überprüfe abschließend den UFW-Status mit dem folgenden Befehl.

sudo ufw status

Die aktive Ausgabe zeigt an, dass die UFW läuft und aktiviert ist. Außerdem solltest du sehen, dass die Profile OpenSSH und WWW Full zur UFW hinzugefügt wurden.

ufw prüfen

PostgreSQL Datenbank und Benutzer anlegen

Im folgenden Schritt erstellst du eine neue PostgreSQL-Datenbank und einen neuen Benutzer, die Fathom verwenden wird. Dazu musst du dich über die Befehlszeile psql am PostgreSQL-Server anmelden.

Führe den folgenden Befehl aus, um dich am PostgreSQL-Server anzumelden.

sudo -u postgres psql

Erstelle eine neue Datenbank fathomdb und den Benutzer fathom mit den folgenden PostgreSQL-Abfragen. Achte darauf, das Passwort in der folgenden Abfrage zu ändern.

CREATE USER fathom WITH CREATEDB CREATEROLE PASSWORD 'password';
CREATE DATABASE fathomdb OWNER fathom;

Benutzer und Datenbank anlegen

Führe nun die folgenden Abfragen aus, um die Liste der verfügbaren Datenbanken und Benutzer auf dem PostgreSQL-Server zu überprüfen.

\du
\l

Wenn die Datenbank und der Benutzer erstellt sind, wird die folgende Ausgabe angezeigt:

Benutzer und Datenbank prüfen

Gib quit ein, um den PostgreSQL-Server zu verlassen.

Nachdem du die Datenbank und den Benutzer angelegt hast, führe den folgenden Befehl aus, um dich bei PostgreSQL mit dem Benutzer fathom und der Datenbank fathomdb anzumelden. Gib das Passwort für deinen Datenbankbenutzer ein, wenn du dazu aufgefordert wirst.

sudo -u postgres psql -U fathom -h 127.0.0.1 -d fathomdb

Sobald du mit dem PostgreSQL-Server verbunden bist, führe die folgende Abfrage aus, um deine Verbindung zu überprüfen.

\conninfo

Nach der Ausführung des Befehls wird die folgende Ausgabe angezeigt, die besagt, dass du mit der Datenbank fathomdb und dem Benutzer fathom verbunden bist.

Benutzerverbindung verifizieren

Tippe erneut quit ein, um den PostgreSQL-Server zu verlassen.

Herunterladen der Fathom-Binärdatei

Fathom wurde in Golang und Preact geschrieben und ist als einzelne Binärdatei verfügbar, die du einfach herunterladen und auf deinem System installieren kannst.

Besuche die Fathom GitHub-Seite und lade die URL für das Fathom-Binärpaket herunter. Dann lädst du es mit dem unten stehenden wget-Befehl herunter. In diesem Beispiel wirst du Fathom 1.3.1 herunterladen.

wget https://github.com/usefathom/fathom/releases/download/v1.3.1/fathom_1.3.1_linux_amd64.tar.gz

Nach dem Download entpackst du das Fathom-Binärpaket nach /usr/local/bin/fathom und machst es mit dem folgenden Befehl ausführbar.

tar -C /usr/local/bin -xzf fathom_1.3.1_linux_amd64.tar.gz
chmod +x /usr/local/bin/fathom

Führe abschließend den folgenden Befehl aus, um den Speicherort der Fathom-Binärdatei und die aktuelle Fathom-Version, die du heruntergeladen hast, zu überprüfen.

which fathom
fathom --version

Die folgende Ausgabe zeigt dir, dass Fathom 1.3.1 unter /usr/local/bin/fathom installiert ist.

fathom herunterladen

Fathom konfigurieren

Im folgenden Schritt wirst du Fathom konfigurieren:

  • Fathom in die PostgreSQL-Datenbank einbinden.
  • Fathom als systemd-Dienst im Hintergrund laufen lassen.
  • Hinzufügen eines Administrator-Benutzers für deine Fathom-Installation.

Integration mit PostgreSQL als Datenbank

Fathom unterstützt mehrere Datenbanken, wie z.B. SQLite (Standard), MySQL und MariaDB. In diesem Abschnitt wirst du das Fathom-Installationsverzeichnis einrichten und Fathom mit dem PostgreSQL-Datenbankserver integrieren.

Führe den folgenden Befehl aus, um einen neuen Systembenutzer fathom zu erstellen, der für die Ausführung deiner Fathom-Installation verwendet wird.

sudo useradd -r -d /opt/fathom fathom

Erstelle nun ein neues Home-Verzeichnis /opt/fathom und ändere den Besitzer auf den Benutzer fathom. Das Verzeichnis /opt/fathom wird für die Speicherung der Fathom-Installationsdaten verwendet.

sudo mkdir -p /opt/fathom
sudo chown -R fathom:fathom /opt/fathom

Danach führst du den folgenden Befehl aus, um ein zufälliges Geheimnis für Fathom zu erzeugen. Achte darauf, dass du die Ausgabe kopierst, da du sie für die Sicherung von Fathom benötigst.

head /dev/urandom | tr -dc A-Za-z0-9 | head -c 20 ; echo ''

Fathom konfigurieren

Als Nächstes wechselst du in das Verzeichnis /opt/fathom.

cd /opt/fathom

Erstelle dann ein neues Verzeichnis /opt/fathom/data und eine neue Datei /opt/fathom/data/.env mit dem folgenden Befehl.

sudo -u fathom mkdir -p /opt/fathom/data
sudo -u fathom nano /opt/fathom/data/.env

Füge die folgende Konfiguration ein und achte darauf, dass du den Namen der PostgreSQL-Datenbank, den Benutzer und das Passwort änderst.

FATHOM_GZIP=true
FATHOM_DEBUG=true
FATHOM_DATABASE_DRIVER="postgres"
FATHOM_DATABASE_NAME="fathomdb"
FATHOM_DATABASE_USER="fathom"
FATHOM_DATABASE_PASSWORD="password"
FATHOM_DATABASE_HOST="127.0.0.1"
FATHOM_DATABASE_SSLMODE="disable"
FATHOM_SECRET="BWTtur9A1qWtXG6656q4"

Speichere und beende die Datei, wenn du fertig bist.

Führe abschließend den folgenden Befehl aus, um sicherzustellen, dass deine Fathom-Konfiguration erfolgreich ist.

cd /opt/fathom/data
sudo -u fathom fathom server

Nachdem du den Befehl ausgeführt hast, sollte Fathom auf localhost mit dem Standardport 8080 laufen und die folgende Ausgabe wird auf deinem Terminal ausgegeben:

Testfadenkreuz

Drücke Strg+c, um den Prozess zu beenden.

Fathom im Hintergrund als Systemd-Dienst laufen lassen

Im folgenden Abschnitt erstellst du eine neue systemd-Dienstdatei, mit der du Fathom im Hintergrund laufen lassen kannst. Damit kannst du Fathom ganz einfach über das Dienstprogramm systemctl verwalten.

Erstelle eine neue systemd-Dienstdatei /etc/systemd/system/fathom.service mit dem folgenden nano-Editor-Befehl.

sudo nano /etc/systemd/system/fathom.service

Füge die folgende Konfiguration in die Datei ein.

[Unit]
Description=Starts the fathom server
Requires=network.target
After=network.target

[Service]
Type=simple
User=fathom
Restart=always
RestartSec=3
WorkingDirectory=/opt/fathom/data
ExecStart=/usr/local/bin/fathom server

[Install]
WantedBy=multi-user.target

Speichere und schließe die Datei, wenn du fertig bist.

Als Nächstes führst du den folgenden systemctl-Befehl aus, um den systemd-Manager neu zu laden und die von dir vorgenommenen Änderungen zu übernehmen.

sudo systemctl daemon-reload

Sobald der systemd-Manager neu geladen ist, führe den folgenden systemctl-Befehl aus, um den Fathom-Dienst zu starten und zu aktivieren. Dadurch wird Fathom im Hintergrund auf localhost mit dem Standardport 8080 ausgeführt.

sudo systemctl start fathom
sudo systemctl enable fathom

fathom systemd

Überprüfe den Fathom-Dienst mit dem folgenden Befehl, um sicherzustellen, dass der Dienst läuft und aktiviert ist.

sudo systemctl is-enabled fathom
sudo systemctl status fathom

Die folgende Ausgabe wird angezeigt, wenn Fathom läuft und aktiviert ist.

ausloten

Hinzufügen des Fathom-Administrator-Benutzers

Da Fathom nun als Dienst im Hintergrund läuft, musst du im nächsten Schritt einen Administratorbenutzer für deine Fathom-Installation anlegen. Das kannst du über die Fathom-Befehlszeile tun.

Um einen Fathom-Benutzer anzulegen, kannst du die fathom-Befehlszeile aus dem fathom-Datenverzeichnis heraus aufrufen.

Verschiebe dein aktuelles Arbeitsverzeichnis nach /opt/fathom/data.

cd /opt/fathom/data

Führe den folgenden Befehl aus, um einen Administrator-Benutzer für deine Fathom-Installation zu erstellen. Achte darauf, dass du die E-Mail-Adresse und das Passwort mit dem folgenden Befehl änderst.

sudo -u fathom fathom user add --email="alice@hwdomain.io" --password="password"

Der Befehl wird die .env-Datei verwenden, um sich mit dem PostgreSQL-Server zu verbinden. Sobald der Benutzer erstellt ist, solltest du eine Bestätigung wie die folgende erhalten:

admin fathom erstellen

Nginx als Reverse Proxy konfigurieren

An diesem Punkt hast du die Konfiguration von Fathom abgeschlossen. Im folgenden Schritt wirst du Nginx als Reverse Proxy für deine Fathom-Installation konfigurieren. Bevor du fortfährst, stelle sicher, dass du einen Domainnamen hast, der auf die IP-Adresse des Servers zeigt.

Erstelle eine neue Nginx-Server-Blockkonfiguration /etc/nginx/sites-available/fathom mit dem unten stehenden Befehl nan editor.

sudo nano /etc/nginx/sites-available/fathom

Füge die folgende Konfiguration ein und achte darauf, dass du den Domainnamen in der Option server_name änderst.

server {
    listen 80;
    server_name analytics.hwdomain.io;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:8080;
}
}

Wenn du fertig bist, speichere und beende die Datei.

Führe nun den folgenden Befehl aus, um die Serverblockdatei /etc/nginx/sites-available/fathom zu aktivieren und die Nginx-Syntax zu überprüfen.

sudo ln -s /etc/nginx/sites-available/fathom /etc/nginx/sites-enabled/
sudo nginx -t

Wenn du die richtige Syntax hast, sollte die Ausgabe„syntax is ok – test is successful“ in deinem Terminal erscheinen.

nginx konfigurieren

Als Nächstes führst du den folgenden Befehl aus, um den Nginx-Dienst neu zu starten und die vorgenommenen Änderungen zu übernehmen. Nachdem du den Befehl ausgeführt hast, sollte deine Fathom-Installation unter deinem Domainnamen erreichbar sein.

sudo systemctl restart nginx

Zum Schluss führst du den folgenden certbot-Befehl aus, um die Fathom-Installation mit SSL/TLS-Zertifikaten von Letsencrypt zu sichern. Achte darauf, dass du den Domainnamen und die E-Mail-Adresse mit deinen Daten änderst.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email admin@hwdomain.io -d analytics.hwdomain.io

Sobald der Vorgang abgeschlossen ist, sind deine SSL/TLS-Zertifikate im Verzeichnis /etc/letsencrypt/live/domain.com verfügbar. Außerdem wird die Nginx-Serverblockdatei /etc/nginx/sites-available/fathom über das Certbot Nginx-Plugin automatisch mit HTTPS konfiguriert.

Zugriff auf Fathom

Starte deinen bevorzugten Webbrowser und rufe den Domainnamen deiner Fathom-Installation auf, z. B. http://analytics.hwdomain.io/. Du solltest automatisch zu einer HTTPS-Verbindung weitergeleitet werden und die Anmeldeseite von Fathom erhalten.

Gib deine Admin-E-Mail-Adresse und dein Passwort ein und klicke dann auf Anmelden.

Fathom-Anmeldung

Klicke auf Website erstellen, um den ersten Tracker zu erstellen.

Neue Seite hinzufügen

Du solltest den von Fathom generierten Tracker-Code sehen.

Website-Tracker-Code

Unten findest du Details zu den Fathom-Site-Analysen.

fathom site analytics

Von hier aus kannst du neue Tracker für deine Websites hinzufügen und einstellen.

Fazit

Damit hast du die Installation von Fathom Privacy-focused Web Analytics auf dem Debian 12 Server mit PostgreSQL Datenbankserver und Nginx als Reverse Proxy abgeschlossen. Außerdem hast du deine Installation mit SSl/TLS-Zertifikaten von Letsencrypt abgesichert und UFW (Uncomplicated Firewalld) auf deinem Debian-Server konfiguriert. Du kannst einen neuen Tracker hinzufügen und ihn auf deinen Websites implementieren.

Das könnte dich auch interessieren …