isb-apps 1.6.11

isb's apps over stacks: deployments, builds, jobs, backups, templates and notifications. Use the `isb` crate.
Documentation
id: plausible
name: Plausible Analytics
description: Privacy-friendly web analytics (Community Edition), with Postgres and ClickHouse.
version: "3"
logo: https://raw.githubusercontent.com/plausible/docs/8c3b2383026e3826d0921d32957ce9140e613c2e/static/img/plausible_logo.png
tags: [analytics]
links:
  website: https://plausible.io
  source: https://github.com/plausible/community-edition
variables:
  - name: domain
    type: domain
    label: Domain
    description: The public hostname; empty for a generated one.
  - name: db_password
    type: password
  - name: secret_key_base
    type: base64
    bytes: 64
  - name: totp_vault_key
    type: base64
    bytes: 32
apps:
  - name: db
    image: docker:postgres:16-alpine
    volumes: ["data:/var/lib/postgresql/data"]
    env:
      POSTGRES_PASSWORD: "${db_password}"
    healthcheck:
      test: [CMD-SHELL, "pg_isready -U postgres"]
      interval: 5s
      retries: 10
  - name: events
    image: docker:clickhouse/clickhouse-server:24.12-alpine
    volumes: ["data:/var/lib/clickhouse", "logs:/var/log/clickhouse-server"]
    env:
      CLICKHOUSE_SKIP_USER_SETUP: "1"
    healthcheck:
      test: [CMD-SHELL, "wget --no-verbose --tries=1 -O - http://127.0.0.1:8123/ping || exit 1"]
      interval: 10s
      retries: 10
      start_period: 10s
  - name: plausible
    image: ghcr:plausible/community-edition:v3.0.1
    port: 8000
    depends_on: [db, events]
    command: [sh, -c, "/entrypoint.sh db createdb && /entrypoint.sh db migrate && /entrypoint.sh run"]
    volumes: ["data:/var/lib/plausible"]
    env:
      TMPDIR: /var/lib/plausible/tmp
      BASE_URL: "https://${domain}"
      SECRET_KEY_BASE: "${secret_key_base}"
      TOTP_VAULT_KEY: "${totp_vault_key}"
      DATABASE_URL: "postgres://postgres:${db_password}@${host:db}:5432/plausible_db"
      CLICKHOUSE_DATABASE_URL: "http://${host:events}:8123/plausible_events_db"
      HTTP_PORT: "8000"
    domains:
      - {host: "${domain}"}
main: plausible
notes:
  - The first visit registers the admin account.