services: plausible_db: image: postgres:16-alpine container_name: plausible-db restart: always expose: - 5432 volumes: - ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/plausible/database/:/var/lib/postgresql/data environment: - POSTGRES_PASSWORD=${PSQL_PASS:-password} healthcheck: test: ["CMD-SHELL", "PGPASSWORD='${PSQL_PASS:-password}' pg_isready -U '${PSQL_USER:-postgres}' -d postgres"] start_period: 1m #networks: # - proxy plausible_events_db: image: clickhouse/clickhouse-server:24.12-alpine container_name: plausible-events-db restart: always user: "101:1000" environment: - CLICKHOUSE_SKIP_USER_SETUP=1 volumes: - ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/plausible/clickhouse/event-data:/var/lib/clickhouse - ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/plausible/clickhouse/event-logs:/var/log/clickhouse-server - ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/plausible/clickhouse/logs.xml:/etc/clickhouse-server/config.d/logs.xml:ro - ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/plausible/clickhouse/ipv4-only.xml:/etc/clickhouse-server/config.d/ipv4-only.xml:ro ulimits: nofile: soft: 262144 hard: 262144 healthcheck: test: [ "CMD-SHELL", "wget --no-verbose --tries=1 -O - http://127.0.0.1:8123/ping || exit 1", ] start_period: 1m #networks: # - proxy plausible: image: ghcr.io/plausible/community-edition:v3.2.0 container_name: plausible restart: always volumes: - ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/plausible/data:/var/lib/plausible command: sh -c "sleep 10 && /entrypoint.sh db createdb && /entrypoint.sh db migrate && /entrypoint.sh run" depends_on: plausible_db: condition: service_healthy plausible_events_db: condition: service_healthy ulimits: nofile: soft: 65535 hard: 65535 ports: - 8000:8000 # WEB UI expose: - 8000 env_file: - .env #networks: # - proxy #labels: # - traefik.enable=true # - traefik.http.routers.plausible.rule=Host(`plausible.example.com`) # - traefik.http.services.plausible.loadbalancer.server.port=8000 # - traefik.docker.network=proxy # # Part for local lan services only # # - traefik.http.routers.plausible.middlewares=local-ipwhitelist@file #networks: # proxy: # external: true