Voeg self-hosted Umami analytics + UptimeRobot uptime dashboard toe
Co-authored-by: Junie <junie@jetbrains.com>
This commit is contained in:
+57
@@ -0,0 +1,57 @@
|
||||
# Voorbeeldconfiguratie voor de nginx reverse proxy op de reverse-proxy-Pi
|
||||
# (dezelfde Pi als reverse-proxy-nginx.conf.example) om het zelf-gehoste
|
||||
# Umami-analyticsdashboard bereikbaar te maken via analytics.slpsoftware.nl.
|
||||
#
|
||||
# Umami zelf draait als podman-container op de webserver-Pi (Pi Main,
|
||||
# 192.168.1.103:3000 — zie ../umami/podman-compose.yml.example) en heeft dus
|
||||
# GEEN eigen nginx-configuratie op die Pi nodig; Umami serveert zijn eigen
|
||||
# dashboard + tracking-script rechtstreeks via die poort.
|
||||
#
|
||||
# Kopieer dit bestand handmatig naar bijvoorbeeld
|
||||
# /etc/nginx/sites-available/slpsoftware-analytics.conf op de reverse-proxy-Pi,
|
||||
# maak een symlink in sites-enabled, en herlaad nginx.
|
||||
#
|
||||
# SSL-certificaat: net als voor test.slpsoftware.nl wordt dit aangevraagd met
|
||||
# certbot (Let's Encrypt), bijvoorbeeld:
|
||||
# sudo certbot --nginx -d analytics.slpsoftware.nl
|
||||
# Zorg dat het DNS-record voor analytics.slpsoftware.nl al naar het publieke
|
||||
# IP van deze Pi wijst voordat je certbot draait.
|
||||
|
||||
# HTTP: alleen gebruikt voor de Let's Encrypt ACME-challenge en om door te
|
||||
# verwijzen naar HTTPS. Na het draaien van certbot ziet dit block er zo uit.
|
||||
server {
|
||||
listen 80;
|
||||
listen [::]:80;
|
||||
|
||||
server_name analytics.slpsoftware.nl;
|
||||
|
||||
location /.well-known/acme-challenge/ {
|
||||
root /var/www/certbot;
|
||||
}
|
||||
|
||||
location / {
|
||||
return 301 https://$host$request_uri;
|
||||
}
|
||||
}
|
||||
|
||||
# HTTPS: het daadwerkelijke reverse-proxy-verkeer naar Umami op de webserver-Pi.
|
||||
server {
|
||||
listen 443 ssl;
|
||||
listen [::]:443 ssl;
|
||||
|
||||
server_name analytics.slpsoftware.nl;
|
||||
|
||||
ssl_certificate /etc/letsencrypt/live/analytics.slpsoftware.nl/fullchain.pem;
|
||||
ssl_certificate_key /etc/letsencrypt/live/analytics.slpsoftware.nl/privkey.pem;
|
||||
include /etc/letsencrypt/options-ssl-nginx.conf;
|
||||
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
|
||||
|
||||
location / {
|
||||
proxy_pass http://192.168.1.103:3000;
|
||||
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
# Kopieer dit bestand naar `.env` naast podman-compose.yml op de Pi (NIET committen —
|
||||
# bevat straks echte wachtwoorden/secrets).
|
||||
|
||||
# Willekeurig, sterk wachtwoord voor de Umami PostgreSQL-database.
|
||||
# Genereren met bv.: openssl rand -base64 32
|
||||
POSTGRES_PASSWORD=
|
||||
|
||||
# Willekeurige, sterke random string die Umami gebruikt om sessies te ondertekenen.
|
||||
# Genereren met bv.: openssl rand -base64 32
|
||||
APP_SECRET=
|
||||
+55
@@ -0,0 +1,55 @@
|
||||
# Voorbeeld podman-compose bestand om Umami (self-hosted analytics) te draaien
|
||||
# op de webserver-Pi (Pi Main, 192.168.1.103), naast de al draaiende nginx die
|
||||
# de website zelf serveert.
|
||||
#
|
||||
# Vereist: podman + podman-compose (`pip3 install --user podman-compose`) op de Pi.
|
||||
#
|
||||
# Gebruik:
|
||||
# 1. Kopieer dit bestand naar bv. ~/umami/podman-compose.yml op de Pi.
|
||||
# 2. Kopieer .env.example naast dit bestand naar .env en vul een echte
|
||||
# POSTGRES_PASSWORD en APP_SECRET in (zie .env.example voor hoe je die genereert).
|
||||
# 3. cd ~/umami && podman-compose up -d
|
||||
# 4. Zie umami-setup.md voor het instellen van auto-start na reboot (systemd)
|
||||
# en het aanmaken van een website in de Umami-UI om het website-ID te krijgen.
|
||||
|
||||
services:
|
||||
umami:
|
||||
image: docker.umami.is/umami-software/umami:postgresql-latest
|
||||
# Alleen op het interne (LAN) IP van deze Pi binden, niet op 0.0.0.0 — zelfde
|
||||
# aanpak als webserver-nginx.conf.example, zodat deze poort niet per ongeluk
|
||||
# vanaf buiten het netwerk bereikbaar is. De reverse-proxy-Pi stuurt
|
||||
# analytics.slpsoftware.nl door naar 192.168.1.103:3000 (zie
|
||||
# ../nginx/analytics-nginx.conf.example).
|
||||
ports:
|
||||
- "192.168.1.103:3000:3000"
|
||||
environment:
|
||||
DATABASE_URL: postgresql://umami:${POSTGRES_PASSWORD}@db:5432/umami
|
||||
DATABASE_TYPE: postgresql
|
||||
APP_SECRET: ${APP_SECRET}
|
||||
depends_on:
|
||||
db:
|
||||
condition: service_healthy
|
||||
restart: always
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "curl -f http://localhost:3000/api/heartbeat"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
|
||||
db:
|
||||
image: docker.io/postgres:15-alpine
|
||||
environment:
|
||||
POSTGRES_DB: umami
|
||||
POSTGRES_USER: umami
|
||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
||||
volumes:
|
||||
- umami-db-data:/var/lib/postgresql/data
|
||||
restart: always
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -U umami -d umami"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
|
||||
volumes:
|
||||
umami-db-data:
|
||||
Reference in New Issue
Block a user