Files
Compose-Examples/examples/plausible/docker-compose.yml
2026-02-17 10:16:57 +01:00

81 lines
2.5 KiB
YAML

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
environment:
- CLICKHOUSE_UID=1000
- CLICKHOUSE_GID=1000
- CLICKHOUSE_SKIP_USER_SETUP=1
volumes:
- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/plausible/event-data:/var/lib/clickhouse
- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/plausible/event-logs:/var/log/clickhouse-server
- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/plausible/clickhouse/clickhouse-config.xml:/etc/clickhouse-server/config.d/logging.xml:ro
- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/plausible/clickhouse/clickhouse-user-config.xml:/etc/clickhouse-server/users.d/logging.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