services: umami-ts: image: tailscale/tailscale:latest hostname: umami container_name: umami-ts environment: - TS_AUTHKEY={{YOUR_TAILSCALE_AUTHKEY}} - TS_STATE_DIR=/var/lib/tailscale - TS_SERVE_CONFIG=/config/serve.json - TS_EXTRA_ARGS=--login-server=https://controlplane.tailscale.com volumes: - ./tailscale/tailscale-data:/var/lib/tailscale - ./tailscale/config:/config - /dev/net/tun:/dev/net/tun ports: - '3000:3000' cap_add: - net_admin - sys_module restart: unless-stopped umami: image: ghcr.io/umami-software/umami:postgresql-latest # ports: # - '3000:3000' environment: DATABASE_URL: postgresql://umami:umami@localhost:5432/umami DATABASE_TYPE: postgresql APP_SECRET: replace-me-with-a-random-string depends_on: db: condition: service_healthy umami-ts: condition: service_started init: true restart: always healthcheck: test: ['CMD-SHELL', 'curl http://localhost:3000/api/heartbeat'] interval: 5s timeout: 5s retries: 5 network_mode: service:umami-ts db: image: postgres:15-alpine environment: POSTGRES_DB: umami POSTGRES_USER: umami POSTGRES_PASSWORD: umami volumes: - ./umami/db:/var/lib/postgresql/data restart: always healthcheck: test: ['CMD-SHELL', 'pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}'] interval: 5s timeout: 5s retries: 5 network_mode: service:umami-ts depends_on: - umami-ts