Installation
Die Installation kann ganz einfach mit einem Docker Image vom Hersteller vorgenommen werden. Hierzu gibt es eine Anleitung in der offiziellen Dokumentation: Plausible GitHub
Im folgenden wird auf Basis dieser Anleitung die Docker Compose Datei zusammengestellt.
Basis Konfiguration
Zuerst erstellen wir einen Ordner, in den wir dann die benötigten Konfigurationsdateien laden. Diese werden freundlicherweise vom Hersteller über das GitHub Repository bereitgestellt. Außerdem löschen wir einige Dateien und Ordner, die wir für die Bereitstellung nicht benötigen.
# Neues Verzeichnis im aktuellen Ordner erstellen
mkdir plausible-analytics
# In den neuen Ordner wechseln
cd plausible-analytics
# GitHub Repository in das akteuelle Verzeichnis klonen
git clone https://github.com/plausible/community-edition .
# Einige der Dateien und Ordner sind nicht notwendig, also löschen
sudo rm -R README.md reverse-proxy/ upgrade/ .git/ .github/ images/
Nun wird die Datei plausible-conf.env
bearbeitet. In dieser werden einige wichtige Einstellungen vorgenommen. Die Datei sieht zur Zeit wie folgt aus.
BASE_URL=replace-me
SECRET_KEY_BASE=replace-me
Beide Zeilen müssen angepasst werden.
BASE_URL: Dies ist der Link, unter dem die Seite von Plausible erreichbar sein wird. Beispiel: http://beispiel.de
SECRET_KEY_BASE: Dies ist ein Base64 String, welcher für einige Sicherheitsfunktionen benötigt wird. Dieser lässt sich mit openssl rand -base64 48
generieren. Die so erzeugte Zeichenkette wird eingetragen.
Nachdem die Werte angepasst wurden, könnte die Datei z. B. wie folgt aussehen.
BASE_URL=http://beispiel.de/
SECRET_KEY_BASE=r3vcAJI/8Dv6IA7/MziKPxEP851eO4n03CHsdhqBtymVVCOrztHP83GSMWmmEzAd
Im Prinzip ist die Einrichtung damit abgeschlossen, jedoch wäre die Seite so nicht ausreichend geschützt, da sie keine Verschlüsselung hat. Hier empfiehlt sich der Einsatz eines Reverse Proxy.
Anpassung für Reverse Proxy
In diesem Beispiel wird die Anpassung der Docker Konfiguration für den Reverse Proxy Traefik gezeigt. Um Plausible bei Traefik bekannt zu machen und damit dieser als Dienst angeboten wird, müssen lediglich die folgenden Label beim Container plausible in der originalen Konfiguration ergänzt werden. Zusätzlich muss ggf. das Netzwerk von Traefik angegeben werden, damit die Container miteinander über das Docker Netzwerk kommunizieren können.
services:
plausible:
labels:
traefik.enable: "true"
traefik.http.routers.plausible.rule: "Host(`beispiel.de`)" # Link anpassen, unter dem Plausible erreichbar sein soll
traefik.http.routers.plausible.entrypoints: "websecure" # Ebenfalls an die eigene Umgebung anpassen
traefik.http.services.plausible.loadbalancer.server.port: "8000"
# Wenn Traefik ein eigenes Netzwerk hat, dieses hier angeben, damit der Dienst auch erreichbar ist
networks:
traefik
networks:
traefik:
external: true
Wenn der Dienst plausible in das Netzwerk von Traefik gepackt wird, muss zusätzlich ein eigenes Netzwerk für das Backend erstellt werden, damit plausible weiterhin mit den anderen Containern kommunizieren kann.
Die angepasste Compose Konfiguration sieht dann wie folgt aus.
services:
mail:
image: bytemark/smtp
restart: always
networks:
- backend
plausible_db:
# Plausible v2.0.0 was tested against PostgreSQL versions 12, 13, and 14
# https://github.com/plausible/analytics/blob/v2.0.0/.github/workflows/elixir.yml#L16
image: postgres:14-alpine
restart: always
volumes:
- ./db-data:/var/lib/postgresql/data
environment:
- POSTGRES_PASSWORD=postgres
networks:
- backend
plausible_events_db:
image: clickhouse/clickhouse-server:23.3.7.5-alpine
restart: always
volumes:
- ./event-data:/var/lib/clickhouse
- ./clickhouse/clickhouse-config.xml:/etc/clickhouse-server/config.d/logging.xml:ro
- ./clickhouse/clickhouse-user-config.xml:/etc/clickhouse-server/users.d/logging.xml:ro
ulimits:
nofile:
soft: 262144
hard: 262144
networks:
- backend
plausible:
image: plausible/analytics:v2.0
restart: always
command: sh -c "sleep 10 && /entrypoint.sh db createdb && /entrypoint.sh db migrate && /entrypoint.sh run"
depends_on:
- plausible_db
- plausible_events_db
- mail
env_file:
- plausible-conf.env
labels:
traefik.enable: "true"
traefik.http.routers.plausible.rule: "Host(`beispiel.de`)" # Link anpassen, unter dem Plausible erreichbar sein soll
traefik.http.routers.plausible.entrypoints: "websecure" # Ebenfalls an die eigene Umgebung anpassen
traefik.http.services.plausible.loadbalancer.server.port: "8000"
# Wenn Traefik ein eigenes Netzwerk hat, dieses hier angeben, damit der Dienst auch erreichbar ist
networks:
- backend
- traefik
networks:
backend:
driver: bridge
traefik:
external: true
Um die Docker Compose Konfiguration auszuführen, kann am besten in das Verzeichnis der YAML Datei gewechselt werden. Danach wird je nach nach gewählter Installation sudo docker-compose up -d
oder sudo docker compose up -d
(keine Bindestrich zwischen docker und compose) eingegeben, um die Standard Konfiguration docker-compose.yml
zu starten. Compose erstellt dann die gewünschten Container mit den angegeben Optionen. Sollten die Container bereits mit dieser Compose Konfiguration erstellt worden sein, so werden die Container in dieser neu erstellt, dessen Konfiguration geändert wurde.
Keine Kommentare