captainVersion: 4
services:
    # Umami
    $$cap_appname:
        image: tschannik/caprover-umami:$$cap_umami_version
        restart: always
        environment:
            DATABASE_URL: postgresql://umami:$$cap_postgres_pass@srv-captain--$$cap_appname-postgres/umami
            POSTGRES_HOSTNAME: srv-captain--$$cap_appname-postgres
            POSTGRES_DB: umami
            POSTGRES_USER: umami
            POSTGRES_PASSWORD: $$cap_postgres_pass
            POSTGRES_INITDB_ARGS: $$cap_pg_initdb_args
            HASH_SALT: $$cap_gen_random_hex(16)
        depends_on:
            - $$cap_appname-postgres
        caproverExtra:
            containerHttpPort: '3000'
    # PostgreSQL
    $$cap_appname-postgres:
        image: postgres:$$cap_postgres_version
        volumes:
            - $$cap_appname-postgres-data:/var/lib/postgresql/data
        restart: always
        environment:
            POSTGRES_DB: umami
            POSTGRES_USER: umami
            POSTGRES_PASSWORD: $$cap_postgres_pass
            POSTGRES_INITDB_ARGS: $$cap_pg_initdb_args
        caproverExtra:
            notExposeAsWebApp: 'true'
caproverOneClickApp:
    variables:
        - id: $$cap_postgres_version
          label: Postgres Version
          defaultValue: '12.6-alpine'
          description: Checkout their page for the valid tags https://hub.docker.com/_/postgres
          validRegex: /^([^\s^\/])+$/
        - id: $$cap_umami_version
          label: Caprover Umami Version
          defaultValue: 'postgresql-5ecaf55'
          description: Checkout their github page for the valid tags https://github.com/tschannik/caprover-umami
          validRegex: /^([^\s^\/])+$/
        - id: $$cap_postgres_pass
          label: Potgress Database password
          description: 'Pasword for postgres'
          defaultValue: $$cap_gen_random_hex(16)
          validRegex: /^([^\s^\/])+$/
        - id: $$cap_pg_initdb_args
          label: "OPTIONAL: Arguments for 'postgres initdb'"
          description: For example, --data-checksums
          validRegex: /.{0,}/
    instructions:
        start: >-
            umami is a simple, easy to use, self-hosted web analytics solution. The goal is to provide you with a friendly privacy-focused alternative to Google Analytics.


            This app will install a default postgres instance with persistant data. You can choose the version yourself. The deployment was tested with postgres 12.x.

            After the installation we'll fork a slightly customized version of the original umami package which makes sure that your data is not corrupted on new container deployments or restarts. 
            Open a PR on https://github.com/tschannik/caprover-umami of your desired umami-version is not supported.


            For more details about umami, see: https://umami.is


            Enter your configuration parameters and click on next. It will take about a minute for the process to finish.
        end: >-
            Aaaand you're done! 🔥 
            Your umami instance is available at http://$$cap_appname.$$cap_root_domain

            IMPORTANT: Use user 'admin' and password 'umami' to login and change your password immediately!
    displayName: umami
    isOfficial: false
    description: umami is a simple, easy to use, self-hosted web analytics solution. The goal is to provide you with a friendly privacy-focused alternative to Google Analytics.
    documentation: Official docs are [here](https://github.com/mikecao/umami)
