services: plausible_db: # Plausible v2.1.1 was tested against PostgreSQL versions 15 and 16 # https://github.com/plausible/analytics/blob/v2.1.1/.github/workflows/elixir.yml#L21-L32 image: postgres:16-alpine restart: always volumes: - db-data:/var/lib/postgresql/data environment: - POSTGRES_PASSWORD=postgres plausible_events_db: image: clickhouse/clickhouse-server:24.3.3.102-alpine restart: always volumes: - event-data:/var/lib/clickhouse - event-logs:/var/log/clickhouse-server - ./clickhouse/clickhouse-config.xml:/etc/clickhouse-server/config.d/logging.xml:ro - ./clickhouse/clickhouse-user-config.xml:/etc/clickhouse-server/users.d/logging.xml:ro ulimits: nofile: soft: 262144 hard: 262144 plausible: image: ghcr.io/plausible/community-edition:v2.1.2 restart: always command: sh -c "/entrypoint.sh db createdb && /entrypoint.sh db migrate && /entrypoint.sh run" depends_on: - plausible_db - plausible_events_db ports: - 80:8000 - 443:8001 volumes: - plausible-data:/var/lib/plausible environment: - LOG_LEVEL=notice # replace with the URL where your dashboard would be accessible # ensure https:// scheme if you use https - BASE_URL=replace-me # use `openssl rand -base64 48` to generate a $SECRET_KEY_BASE - SECRET_KEY_BASE=replace-me - HTTP_PORT=8000 - HTTPS_PORT=8001 volumes: db-data: event-data: event-logs: plausible-data: