So installierst du Fathom Privacy-Focused Website Analytics unter Debian 11

Fathom ist eine datenschutzorientierte Webanalyse, die saubere und präzise Daten über deine Websites liefert. Es ist eine einfache Website-Analyse-Software, die aufschlussreiche Berichte und Kennzahlen ü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.

Diese Anleitung zeigt dir, wie du Fathom Privacy-Focused Website Analytics auf einem Debian 11 Server installierst. Du installierst Fathom mit PostgreSQL als Datenbank, Nginx als Reverse Proxy und sicherst Fathom mit SSL/TLS-Zertifikaten über Certbot und Letsencrypt.

Außerdem erfährst du, wie du die Authentifizierung für PostgreSQL einrichtest, eine Datenbank und einen Benutzer anlegst und systemd-Dienste zu einem Linux-System hinzufügst.

Voraussetzungen

Um dieses Tutorial durchzuführen, brauchst du die folgenden Voraussetzungen:

  • Einen Debian 11-Server – In diesem Beispiel wird ein Debian-Server mit dem Hostnamen „fathome-server“ verwendet.
  • Einen Nicht-Root-Benutzer mit sudo/root-Administrator-Rechten.
  • Ein Domain-Name, der auf eine Server-IP-Adresse zeigt – Dieses Beispiel verwendet eine Sub-Domain ‚fathom.hwdomain.io‚.

Das war’s schon. Starten wir die Installation von Fathom.

Installation des PostgreSQL-Servers

Fathom ist ein einfaches, datenschutzorientiertes Webanalyseprogramm, das mit Golang Preact entwickelt wurde. Bei einer Standardinstallation verwendet Fathom SQLite als Datenbank, aber es ist auch möglich, RDBMS wie MySQL/MariaDB und PostgreSQL zu verwenden.

In diesem Beispiel wirst du Fathom mit PostgreSQL verwenden. Also installierst und konfigurierst du jetzt PostgreSQL auf deinem Debian-Server.

Um loszulegen, führe den folgenden apt-Befehl aus, um deinen Debian-Paketindex zu aktualisieren und aufzufrischen.

sudo apt update

Installiere nun die PostgreSQL-Pakete mit dem unten stehenden apt-Befehl. Dadurch wird das Standard-Paket für den PostgreSQL-Server aus dem Debian-11-Repository installiert, nämlich PostgreSQL 13.

sudo apt install postgresql

Wenn du dazu aufgefordert wirst, gib zur Bestätigung y ein und drücke ENTER, um fortzufahren.

install postgresql

Nachdem PostgreSQL installiert ist, musst du die Authentifizierung für den Server einrichten. Dazu musst du die PostgreSQL-Konfigurationsdateien ändern, die sich im Verzeichnis„/etc/postgresql/13/main/“ befinden (Standard-PostgreSQL unter Debian).

Öffne die Datei‚/etc/postgresql/13/main/postgresql.conf‘ mit deinem bevorzugten Text-/Code-Editor. In diesem Beispiel wird nano als Standardeditor verwendet.

sudo nano /etc/postgresql/13/main/postgresql.conf

Entferne die Auskommentierung des Parameters„password_encryption“ und ändere den Standardwert in„scram-sha-256„.

password_encryption = scram-sha-256

Speichere und schließe die Datei „/etc/postgresql/13/main/postgresql.conf„, wenn du fertig bist. Für nano-Benutzer drücke Strg+x, dann y und drücke ENTER.

Als Nächstes öffnest du die PostgreSQL-Authentifizierungskonfigurationsdatei „/etc/postgresql/13/main/pg_hba.conf“ mit dem folgenden nano-Editor.

sudo nano /etc/postgresql/13/main/pg_hba.conf

Ändere die Standard-Authentifizierungsmethode für den Host ‚127.0.0.1/32‚ und ‚::1/128‘ in ’scram-sha-256‚. Damit wird die Authentifizierungsmethode „scram-sha-256“ für jede Verbindung von localhost zum PostgreSQL-Server festgelegt.

Wenn du den Parameter„-h 127.0.0.1“ verwendest, bist du mit PostgreSQL als Host verbunden und verwendest die scram-sha-256-Authentifizierung. Wenn du nur den Befehl„psql“ ohne Angabe des PostgreSQL-Hosts verwendest, wirst du als lokale Verbindung verbunden und verwendest die Authentifizierungsmethode„peer„.

# TYPE  DATABASE        USER            ADDRESS                 METHOD
# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
host    all             all             127.0.0.1/32            scram-sha-256
# IPv6 local connections:
host    all             all             ::1/128                 scram-sha-256

Speichere und schließe die Datei „/etc/postgresql/13/main/pg_hba.conf„, wenn du fertig bist.

Authentifizierungsmethode einrichten

Als Nächstes führst du den unten stehenden systemctl-Befehl aus, um den PostgreSQL-Server neu zu starten und die Änderungen zu übernehmen.

sudo systemctl restart postgresql

Überprüfe dann den PostgreSQL-Server, um sicherzustellen, dass er aktiviert ist und läuft.

sudo systemctl is-enabled postgresql
sudo systemctl status postgresql

Wenn PostgreSQL läuft und aktiviert ist, siehst du die Ausgabe in deinem Terminal.

postgresql verifizieren

Wenn der PostgreSQL-Server läuft und aktiviert ist, kannst du damit beginnen, eine neue PostgreSQL-Datenbank und einen neuen Benutzer für Fathom Web Analytics zu erstellen.

PostgreSQL-Datenbank und -Benutzer einrichten

In diesem Schritt richtest du das Passwort für den Standard-PostgreSQL-Benutzer „postgres“ über die PostgreSQL-Shell ein. Anschließend erstellst du eine neue Datenbank und einen neuen Benutzer, die für die Installation von Fathom Web Analytics verwendet werden.

Melde dich mit dem unten stehenden Befehl in der PostgreSQL-Shell an. Der Befehl „sudo -u postgres ‚psql“ bedeutet, dass du den Befehl „psql“ als Benutzer „postgres“ ausführst.

cd /var/lib/postgresql
sudo -u postgres psql

Nachdem du dich angemeldet hast, solltest du mit der Standarddatenbank „postgres“ verbunden sein und dein PostgreSQL-Prompt sollte„postgres=#“ lauten.

Führe nun die folgende Abfrage aus, um ein neues Passwort für den Standard-PostgreSQL-Benutzer„postgres“ zu erstellen. Achte darauf, dass du das Passwort in der folgenden Abfrage änderst.

ALTER USER postgres WITH PASSWORD 'PostgresP@ssw0rd';

Setup Passwort root postgresql

Als Nächstes führst du die folgenden PostgreSQL-Abfragen aus, um einen neuen PostgreSQL-Benutzer und eine neue Datenbank zu erstellen. In diesem Beispiel erstellst du einen neuen PostgreSQL-Benutzer„fathom“ und die Datenbank„fathomdb„.

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

Datenbankbenutzer postgresql erstellen

Führe abschließend die folgende Abfrage aus, um die Liste der Datenbanken und Benutzer auf deinem PostgreSQL-Server zu überprüfen.

\l
\du

Auflisten der Datenbanken auf dem PostgreSQL-Server mit der Abfrage „\l“ – und du siehst, dass die neue Datenbank „fathomdb“ erstellt wurde.

Datenbanken auflisten

Auflisten der Benutzer auf dem PostgreSQL-Server über die ‚\du‘ -Abfrage – Du kannst sehen, dass der neue PostgreSQL-Benutzer ‚fathom‘ zu PostgreSQL hinzugefügt wurde.

Benutzer auflisten postgresql

Jetzt hast du den PostgreSQL-Server installiert und konfiguriert. Im nächsten Schritt beginnst du mit der Installation von Fathom.

Herunterladen von Fathom Binary

Fathom ist eine kleine und einfache Anwendung, die in Go geschrieben wurde. Sie wird als einzelne Binärdatei geliefert, die du jederzeit auf deinem Linux-System ausführen kannst.

Jetzt musst du Fathom auf deinen Debian-Server herunterladen.

Besuche die Fathom-Release-Seite auf GitHub und wähle die gewünschte Version für deine Installation aus. In diesem Beispiel wird die neueste Fathom-Version v1.3.0 verwendet, die zum Zeitpunkt der Erstellung dieses Artikels die aktuellste Version ist.

Lade die Fathom-Binärdatei mit dem unten stehenden wget-Befehl herunter.

wget https://github.com/usefathom/fathom/releases/download/v1.3.0-rc.1/fathom_1.3.0-rc.1_linux_amd64.tar.gz

Nach dem Download entpackst du Fathom mit dem Befehl tar in das Verzeichnis„/usr/local/bin„. Mache dann die Binärdatei „fathom“ mit dem Befehl chmod ausführbar.

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

Gib schließlich den unten stehenden Befehl ein, um sicherzustellen, dass du die Binärdatei„fathom“ ausführen kannst. Überprüfe dann die „fathom“-Version.

which fathom
fathom --version

Wenn der Befehl erfolgreich ist, solltest du den vollständigen Pfad der„fathom„-Binärdatei„/usr/local/bin/fathom“ sehen. Außerdem siehst du die Fathom-Version in deinem Terminal.

fathom herunterladen

Nachdem du Fathom heruntergeladen hast, konfigurierst du als Nächstes die Installation von Fathom Web Analytics.

Fathom Web Analytics konfigurieren

In diesem Schritt richtest du die Installation von Fathom Web Analytics ein. Du richtest das Datenverzeichnis ein, richtest die PostgreSQL-Datenbank mit Fathom ein und führst Fathom schließlich als systemd-Dienst aus.

Wenn du Fathom als systemd-Dienst ausführst, kannst du Fathom ganz einfach über das Dienstprogramm systemctl verwalten. Du kannst Fathom über systemctl starten, aktivieren und seinen Status überprüfen.

Führe zunächst den folgenden Befehl aus, um einen neuen Benutzer„fathom“ auf deinem Debian-System anzulegen. Vergewissere dich außerdem, dass du ein Passwort für deinen neuen Benutzer eingerichtet hast.

sudo useradd -m -s /bin/bash fathom
sudo passwd fathom

Führe nun den folgenden Befehl aus, um dich mit dem neuen Benutzer „fathom“ anzumelden und mit der Konfiguration der Fathom-Installation zu beginnen.

su - fathom

fathom Benutzer anlegen

Führe zunächst den folgenden Befehl aus, um eine zufällige Zeichenfolge zu erzeugen, die als„FATHOM_SECRET“ verwendet wird. Achte darauf, dass du die generierte Ausgabe kopierst.

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

Erstelle nun ein neues Verzeichnis„~/data“ und verschiebe das Arbeitsverzeichnis dorthin. Erstelle dann mit dem unten stehenden nano-Editor-Befehl eine neue Datei ‚.env‘.

mkdir -p ~/data; cd ~/data
nano .env

Füge die folgenden Zeilen in die Datei ein. Achte darauf, dass du die Details der PostgreSQL-Datenbank und des Benutzers änderst und ersetze außerdem das „FATHOM_SECRET“ durch deine generierte Zeichenkette am Anfang.

Wenn du Fathomn in der Produktion einsetzt, musst du außerdem die Option„FATHOM_DEBUG“ auf„false“ setzen. Du kannst auch„FATHOM_DATABASE_SSLMODE“ einstellen, wenn du Datenbanken mit sicheren SSL/TLS-Verbindungen verwendest. In diesem Beispiel wird derselbe Server wie in Fathom verwendet, daher ist„FATHOM_DATABASE_SSLMODE“ auf„disable“ eingestellt.

FATHOM_GZIP=true
FATHOM_DEBUG=true
FATHOM_DATABASE_DRIVER="postgres"
FATHOM_DATABASE_NAME="fathomdb"
FATHOM_DATABASE_USER="fathom"
FATHOM_DATABASE_PASSWORD="p4ssw0rdFathom"
FATHOM_DATABASE_HOST="127.0.0.1"
FATHOM_DATABASE_SSLMODE="disable"
FATHOM_SECRET="13tUIGpjCY9miJcSWW6S"

Speichere und schließe die ‚.env‘ -Datei, wenn du fertig bist.

Fathom konfigurieren

Tippe nun exit ein, um dich vom Benutzer „fathom“ abzumelden und zur Root-Sitzung zurückzukehren.

Als Nächstes erstellst du mit dem nano-Editor eine neue systemd-Dienstdatei „/etc/systemd/system/fathom.service“.

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

Füge die folgenden Zeilen in die Datei ein. Damit startest du Fathom Web Analytics auf localhost mit dem Standard-Port„8080“ und das Datenverzeichnis für Fathom wird auf „/home/fathom/data“ konfiguriert.

[Unit]
Description=Starts the fathom server
Requires=network.target
After=network.target
[Service]
Type=simple
User=fathom
Restart=always
RestartSec=3
WorkingDirectory=/home/fathom/data
ExecStart=/usr/local/bin/fathom server

[Install]
WantedBy=multi-user.target

Speichere und beende die Datei, wenn du fertig bist.

Führe nun den folgenden Befehl aus, um den systemd manager neu zu laden und die neue Dienstdatei „fathom.service“ anzuwenden.

sudo systemctl daemon-reload

Starte und aktiviere anschließend den Dienst„fathom“ mit dem folgenden systemctl-Befehl.

sudo systemctl start fathom
sudo systemctl enable fathom

fathom systemd einrichten

Überprüfe den Dienst„fathom„, um sicherzustellen, dass der Dienst läuft.

sudo systemctl status fathom

Du solltest eine Ausgabe wie diese erhalten – Der Status des Fathom-Dienstes lautet „running“ und er ist jetzt aktiviert, was bedeutet, dass der Dienst beim Hochfahren automatisch ausgeführt wird.

Erkundungsdienst überprüfen

Fathom Admin Benutzer erstellen

Da Fathom als systemd-Dienst läuft, kannst du jetzt einen neuen Admin-Benutzer für deine Fathom-Installation anlegen.

Um einen Fathom-Admin-Benutzer zu erstellen, musst du dich im Fathom-Datenverzeichnis befinden. Führe also den folgenden Befehl aus, um dich als Benutzer„fathom“ anzumelden. Verschiebe dann das Arbeitsverzeichnis nach„~/data„.

su - fathom
cd ~/data

Führe den folgenden fathom-Befehl aus, um einen neuen Administrator-Benutzer für Fathom Web Analytics hinzuzufügen. Achte darauf, dass du die E-Mail-Adresse und das Passwort in der folgenden Befehlszeile änderst.

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

Wenn du erfolgreich bist, erhältst du eine ähnliche Ausgabe wie diese. Du kannst die Meldung sehen, die dir den Status der Verbindung zur PostgreSQL-Datenbank„fathomdb“ anzeigt und dass der neue Administrator-Benutzer„alice@hwdomain.io“ erstellt wurde.

Admin-Benutzer einrichten

An diesem Punkt hast du die Installation von Fathom mit dem PostgreSQL-Datenbankserver abgeschlossen. Außerdem hast du einen Administrator-Benutzer für Fathom erstellt.

Im nächsten Schritt installierst und konfigurierst du Nginx als Reverse Proxy für Fathom Web Analytics, der auf localhost mit dem Standardport 8080 läuft.

Nginx als Reverse Proxy installieren und konfigurieren

In diesem Schritt installierst du den Nginx-Webserver und richtest den Nginx-Serverblock ein, der als Reverse-Proxy für Fathom Web Analytics verwendet wird.

Führe den folgenden apt-Befehl aus, um das Nginx-Paket auf deinem Debian-Server zu installieren. Wenn du dazu aufgefordert wirst, gib y ein, um zu bestätigen, und drücke ENTER, um fortzufahren.

sudo apt install nginx

nginx installieren

Nachdem Nginx installiert ist, erstelle mit dem unten stehenden nano-Editor-Befehl eine neue Serverblock-Konfigurationsdatei„/etc/nginx/sites-available/fathom„.

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

Füge die folgenden Zeilen in die Datei ein und achte darauf, dass du den Domainnamen durch deine Domain ersetzt.

server {
    listen 80;
    server_name fathom.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;
}
}

Speichere die Datei und beende den Editor, wenn du fertig bist.

Als Nächstes führst du den folgenden Befehl aus, um den Nginx-Serverblock„/etc/nginx/sites-available/fathom“ zu aktivieren. Überprüfe dann die Nginx-Konfiguration, um sicherzustellen, dass du die richtigen Nginx-Konfigurationen hast.

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

Wenn die Prüfung erfolgreich war, siehst du in deinem Terminal eine Ausgabe wie„test is successful – syntax ok„.

nginx Reverse Proxy einrichten

Führe nun den folgenden systemctl-Befehl aus, um den Nginx-Dienst neu zu starten und die Änderungen zu übernehmen.

sudo systemctl restart nginx

Überprüfe danach den Nginx-Dienst, um sicherzustellen, dass der Dienst mit dem unten stehenden systemctl-Befehl läuft.

sudo systemctl is-enabled nginx
sudo systemctl status nginx

Du solltest die Ausgabe erhalten, dass der Nginx-Dienst läuft und aktiviert ist, was bedeutet, dass der Dienst beim Hochfahren automatisch gestartet wird.

nginx verifizieren

Jetzt, wo der Nginx-Webserver als Reverse-Proxy für Fathom Web Analytics läuft, richtest du als Nächstes die UFW-Firewall ein und öffnest HTTP- und HTTPS-Ports.

Fathom mit Firewall absichern

In diesem Schritt installierst du UFW auf deinem Debian-Server. Dann öffnest du die SSH-, HTTP- und HTTPS-Dienste, um den Zugriff auf den Server zu ermöglichen.

Installiere das Paket ufw mit dem folgenden apt-Befehl. Gib y ein, wenn du dazu aufgefordert wirst und drücke ENTER, um fortzufahren.

sudo apt install ufw

ufw installieren

Sobald UFW installiert ist, führe den folgenden Befehl aus, um die Anwendungen OpenSSH und„WWW Full“ hinzuzufügen. Die OpenSSH-Anwendung wird den Standard-SSH-Port 22 öffnen und die„WWW Full„-Anwendung wird sowohl HTTP- als auch HTTPS-Dienste öffnen.

sudo ufw allow OpenSSH
sudo ufw allow 'WWW Full'

Wenn du sie hinzugefügt hast, solltest du eine Ausgabe wie„Regeln aktualisiert“ erhalten.

Führe nun den folgenden ufw-Befehl aus, um die UFW-Firewall zu starten und zu aktivieren. Wenn du dazu aufgefordert wirst, gib y zur Bestätigung ein und drücke ENTER, um fortzufahren.

sudo ufw enable

Du solltest eine Ausgabe wie„Firewall ist aktiv und beim Systemstart aktiviert“ erhalten, was bedeutet, dass die UFW-Firewall gestartet und aktiviert ist. Das bedeutet, dass die UFW-Firewall gestartet und aktiviert ist. Außerdem wird die UFW beim Systemstart automatisch gestartet.

ufw-Einrichtung

Führe abschließend den folgenden ufw-Befehl aus, um die Liste der offenen Ports und Dienste in der UFW zu überprüfen.

sudo ufw status

Du erhältst die Anwendungen OpenSSH und„WWW Full“, die zur UFW-Firewall hinzugefügt wurden.

ufw verifizieren

Absicherung von Fathom Web Analytics mit SSL/TLS Letsencrypt

In diesem Schritt sicherst du die Fathom Webanalyse mit SSL/TLS-Zertifikaten von Letsencrypt. Dazu musst du Certbot und ein zusätzliches Certbot Nginx Plugin auf deinem Debian-Server installieren.

Bevor du SSL/TLS-Zertifikate erstellst, musst du sicherstellen, dass deine Domain auf die IP-Adresse des Servers zeigt. Stelle außerdem sicher, dass du eine E-Mail-Adresse hast, mit der du dich bei Letsencrypt registrieren kannst.

Führe nun den folgenden apt-Befehl aus, um Certbot und das Certbot Nginx Plugin zu installieren. Gib y ein, wenn du dazu aufgefordert wirst, und drücke ENTER, um fortzufahren.

sudo apt install certbot python3-certbot-nginx

certbot installieren

Nachdem Certbot installiert ist, führe den folgenden Befehl aus, um SSL/TLS-Zertifikate für deinen Domainnamen zu erstellen. Achte auch darauf, den Domainnamen und die E-Mail-Adresse im folgenden Befehl zu ändern.

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

Mit diesem Befehl werden die neuen SSL/TLS-Zertifikate für deinen Domainnamen erstellt. Außerdem wird dadurch automatisch HTTPS auf deinem Nginx-Serverblock eingerichtet und eine automatische Umleitung von HTTP zu HTTPS für deinen Fathom-Serverblock eingerichtet. Die Certbot SSL/TLS-Zertifikate werden im Verzeichnis„/etc/elstencrypt/live/fathom.hwdomain.io/“ erstellt.

Einloggen bei Fathom Website Analytics

Öffne deinen Webbrowser und rufe den Domainnamen deiner Fathom Web Analytics-Installation auf (z. B. https://fathom.hwdomain.io). Du solltest die Anmeldeseite von Fathom angezeigt bekommen.

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

Login-Fathom

Wenn die E-Mail-Adresse und das Passwort korrekt sind, solltest du das Fathom-Administrations-Dashboard erhalten.

Fathom Dashboard

Damit hast du Fathom Web Analytics mit PostgreSQL und Nginx erfolgreich installiert.

Fazit

In diesem Tutorial hast du das Open-Source-Webanalyseprogramm Fathom auf einem Debian-11-Server installiert. Außerdem hast du PostgreSQL als Backend-Datenbankserver für Fathom Web Analytics installiert und konfiguriert. Und am Frontend für den Client-Zugang hast du Nginx als Reverse Proxy konfiguriert. Außerdem hast du Fathom Web Analytics mit SSL/TLS-Zertifikaten über Certbot und Letsencrypt abgesichert.

Jetzt kannst du neue Tracks hinzufügen und deine Website und Besucher überwachen. Du kannst Fathom auch in verschiedene CMS (Content Management Systeme) wie WordPress und Drupal integrieren. Außerdem kannst du Foren wie Discourse integrieren.

Das könnte dich auch interessieren …