version: "2.3" services: plausible: image: plausible/analytics:v2.0 restart: unless-stopped command: sh -c "/entrypoint.sh db migrate && /entrypoint.sh run" depends_on: - db - clickhouse networks: - default - traefik labels: - traefik.enable=true - traefik.http.routers.plausible.rule=Host(`plausible.theorangeone.net`) - traefik.http.services.plausible-plausible.loadbalancer.server.port=8000 # https://github.com/plausible/analytics/pull/237 - traefik.http.routers.plausible-embed.rule=Host(`elbisualp.theorangeone.net`) - traefik.http.routers.plausible-embed.service=plausible-plausible # https://github.com/plausible/analytics/pull/340 - traefik.http.middlewares.plausible-index.replacepathregex.regex=/js/index.js - traefik.http.middlewares.plausible-index.replacepathregex.replacement=/js/plausible.js - traefik.http.routers.plausible-embed.middlewares=plausible-index environment: - SECRET_KEY_BASE={{ plausible_secret_key }} - SIGNING_SALT={{ plausible_signing_salt }} - DATABASE_URL=postgres://plausible:plausible@db:5432/plausible - DISABLE_REGISTRATION=true - DISABLE_SUBSCRIPTION=true - CLICKHOUSE_DATABASE_URL=http://clickhouse:8123/plausible - BASE_URL=https://elbisualp.theorangeone.net - GOOGLE_CLIENT_ID={{ plausible_google_client_id }} - GOOGLE_CLIENT_SECRET={{ plausible_google_client_secret }} - RELEASE_DISTRIBUTION=none - MAILER_EMAIL={{ plausible_from_email }} - SMTP_HOST_ADDR=smtp.eu.mailgun.org - SMTP_HOST_PORT=465 - SMTP_USER_NAME={{ plausible_smtp_user }} - SMTP_USER_PWD={{ plausible_smtp_password }} - SMTP_HOST_SSL_ENABLED=true clickhouse: image: clickhouse/clickhouse-server:22.12-alpine restart: unless-stopped volumes: - ./clickhouse:/var/lib/clickhouse - ./docker_related_config.xml:/etc/clickhouse-server/config.d/docker_related_config.xml:ro - ./docker_related_user_config.xml:/etc/clickhouse-server/users.d/docker_related_user_config.xml:ro tmpfs: - /var/log/clickhouse-server ulimits: nofile: soft: 262144 hard: 262144 db: image: postgres:14-alpine restart: unless-stopped volumes: - ./postgres:/var/lib/postgresql/data environment: - POSTGRES_PASSWORD=plausible - POSTGRES_USER=plausible networks: traefik: external: true