services: << service_name >>: image: ghcr.io/plausible/community-edition:v3 container_name: << service_name >> environment: - TZ=<< timezone >> - BASE_URL=<< app_url >> - SECRET_KEY_BASE=<< secret_key_base >> - TOTP_VAULT_KEY=<< totp_vault_key >> - DATABASE_URL=postgres://plausible:<< db_password >>@<< service_name >>-db:5432/plausible - CLICKHOUSE_DATABASE_URL=http://<< service_name >>-clickhouse:8123/plausible_events command: sh -c "/entrypoint.sh db createdb && /entrypoint.sh db migrate && /entrypoint.sh run" ports: - "<< port >>:8000" depends_on: - << service_name >>-db - << service_name >>-clickhouse restart: unless-stopped << service_name >>-db: image: postgres:16-alpine container_name: << service_name >>-db environment: - POSTGRES_DB=plausible - POSTGRES_USER=plausible - POSTGRES_PASSWORD=<< db_password >> volumes: - << appdata_dir >>/<< service_name >>-db:/var/lib/postgresql/data restart: unless-stopped << service_name >>-clickhouse: image: clickhouse/clickhouse-server:24.12-alpine container_name: << service_name >>-clickhouse environment: - CLICKHOUSE_SKIP_USER_SETUP=1 volumes: - << appdata_dir >>/<< service_name >>-clickhouse:/var/lib/clickhouse ulimits: nofile: soft: 262144 hard: 262144 restart: unless-stopped