Added: Plausible (stats)

This commit is contained in:
Machiel
2026-03-09 09:39:58 +01:00
parent e2e10b180b
commit ecc88a6a15
3 changed files with 118 additions and 0 deletions

4
Plausible/.env Normal file
View File

@@ -0,0 +1,4 @@
BASE_URL=https://stats.vanemousmantelzorgwoningen.nl
SECRET_KEY_BASE=OvvDfv0NA//ll147muJUwW0LaRRdPVOq+ITOhDOdkNtRq2T0YnCABo9AtjkVwd/ll1P3tYprQuhF0DbyER86lw==
DATABASE_URL=postgres://postgres:postgres@db:5432/plausible_db
CLICKHOUSE_DATABASE_URL=http://events_db:8123/plausible_events_db

42
Plausible/README.md Normal file
View File

@@ -0,0 +1,42 @@
# 📊 Plausible Analytics Setup
Deze repository bevat de configuratie voor de zelf-gehoste Plausible Analytics stack voor **vanemousmantelzorgwoningen.nl**.
## 🛠️ Voorbereiding
Voordat je de containers start, moeten er twee zaken geregeld zijn:
1. **Omgevingsvariabelen:** Maak een `.env` bestand aan in dezelfde map als de `docker-compose.yml`.
2. **Caddy Netwerk:** Zorg dat het externe netwerk `caddy_ntwk` actief is.
### .env template
```env
BASE_URL=[https://stats.vanemousmantelzorgwoningen.nl](https://stats.vanemousmantelzorgwoningen.nl)
# Genereer een veilige key met: openssl rand -base64 48
SECRET_KEY_BASE=jouw_gegeneerde_key_hier
```
## 🚀 Installatie & Start
De Plausible container is geconfigureerd om bij de eerste start automatisch de database aan te maken en migraties uit te voeren via het commando:
`sh -c "/entrypoint.sh db createdb && /entrypoint.sh db migrate && /entrypoint.sh run`
### Stap-voor-stap:
1. **Configuratiebestanden controleren:** Zorg dat de map `./clickhouse/` aanwezig is met de volgende bestanden voor resource-beheer:
- logs.xml
- ipv4-only.xml
- low-resources.xml
- default-profile-low-resources-overrides.xml
2. **Containers opstarten:** `docker compose up -d`
3. **Logs monitoren (optioneel):** `docker compose logs -f plausible`
## 🌐 Netwerkstructuur
- **Internal Netwerk**: Gebruikt voor de communicatie tussen Plausible, PostgreSQL en Clickhouse.
- **Caddy_ntwk:** Extern netwerk waarmee de plausible service verbonden is voor de reverse proxy.
## Volumes & Backups
De data wordt persistent opgeslagen in de volgende Docker volumes:
- db-data: PostgreSQL metadata en gebruikers.
- event-data: Clickhouse analytics data (deze wordt snel groot).
- plausible-data: Tijdelijke bestanden en uploads.

View File

@@ -0,0 +1,72 @@
services:
plausible_db:
image: postgres:16-alpine
restart: always
volumes:
- db-data:/var/lib/postgresql/data
environment:
- POSTGRES_PASSWORD=postgres
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
start_period: 1m
networks:
- internal
plausible_events_db:
image: clickhouse/clickhouse-server:24.12-alpine
restart: always
volumes:
- event-data:/var/lib/clickhouse
- event-logs:/var/log/clickhouse-server
- ./clickhouse/logs.xml:/etc/clickhouse-server/config.d/logs.xml:ro
- ./clickhouse/ipv4-only.xml:/etc/clickhouse-server/config.d/ipv4-only.xml:ro
- ./clickhouse/low-resources.xml:/etc/clickhouse-server/config.d/low-resources.xml:ro
- ./clickhouse/default-profile-low-resources-overrides.xml:/etc/clickhouse-server/users.d/default-profile-low-resources-overrides.xml:ro
ulimits:
nofile:
soft: 262144
hard: 262144
environment:
- CLICKHOUSE_SKIP_USER_SETUP=1
healthcheck:
test: ["CMD-SHELL", "wget --no-verbose --tries=1 -O - http://127.0.0.1:8123/ping || exit 1"]
start_period: 1m
networks:
- internal
plausible:
image: ghcr.io/plausible/community-edition:v3.2.0
restart: always
command: sh -c "/entrypoint.sh db createdb && /entrypoint.sh db migrate && /entrypoint.sh run"
depends_on:
plausible_db:
condition: service_healthy
plausible_events_db:
condition: service_healthy
volumes:
- plausible-data:/var/lib/plausible
ulimits:
nofile:
soft: 65535
hard: 65535
environment:
- TMPDIR=/var/lib/plausible/tmp
- BASE_URL=${BASE_URL}
- SECRET_KEY_BASE=${SECRET_KEY_BASE}
- DATABASE_URL=postgres://postgres:postgres@plausible_db:5432/plausible_db
- CLICKHOUSE_DATABASE_URL=http://plausible_events_db:8123/plausible_events_db
networks:
- internal
- caddy_ntwk
networks:
caddy_ntwk:
external: true
internal:
driver: bridge
volumes:
db-data:
event-data:
event-logs:
plausible-data: