Files
SlpSoftware/aidlc-docs/features/react-frontend/operations/deployment/umami/podman-compose.yml.example
T

59 lines
2.2 KiB
Plaintext

# 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. Externe poort is 3001 (i.p.v. het
# gebruikelijke 3000), omdat Gitea op dezelfde Pi al poort 3000 systeembreed
# bezet (ook op dit interne IP, ongeacht dat Umami een specifiek IP opgeeft).
# De container zelf luistert intern nog gewoon op 3000. De reverse-proxy-Pi
# stuurt analytics.slpsoftware.nl door naar 192.168.1.103:3001 (zie
# ../nginx/analytics-nginx.conf.example).
ports:
- "192.168.1.103:3001: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: