services:
  plausible:
    image: ghcr.io/plausible/community-edition:v2.1
    restart: unless-stopped
    command: sh -c "/entrypoint.sh db migrate && /entrypoint.sh run"
    depends_on:
      - db
      - clickhouse
    networks:
      - default
      - coredns
    environment:
      - SECRET_KEY_BASE={{ vault_plausible_secret_key }}
      - SIGNING_SALT={{ vault_plausible_signing_salt }}
      - TOTP_VAULT_KEY={{ vault_plausible_totp_vault_key }}
      - DATABASE_URL=postgres://plausible:plausible@db:5432/plausible
      - DISABLE_REGISTRATION=true
      - DISABLE_SUBSCRIPTION=true
      - CLICKHOUSE_DATABASE_URL=http://clickhouse:8123/plausible
      - BASE_URL=https://plausible.theorangeone.net
      - GOOGLE_CLIENT_ID={{ vault_plausible_google_client_id }}
      - GOOGLE_CLIENT_SECRET={{ vault_plausible_google_client_secret }}
      - RELEASE_DISTRIBUTION=none
      - MAILER_EMAIL={{ vault_plausible_from_email }}
      - SMTP_HOST_ADDR=smtp.eu.mailgun.org
      - SMTP_HOST_PORT=465
      - SMTP_USER_NAME={{ vault_plausible_smtp_user }}
      - SMTP_USER_PWD={{ vault_plausible_smtp_password }}
      - SMTP_HOST_SSL_ENABLED=true

  clickhouse:
    image: clickhouse/clickhouse-server:24.12.4.49-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:
  coredns:
    external: true