captainVersion: 4
services:
    $$cap_appname:
        image: getmeili/meilisearch:$$cap_app_version
        volumes:
            - $$cap_appname-data:/data.ms
            - $$cap_appname-snapshot:/snapshot
            - $$cap_appname-dump:/dumps
        restart: always
        environment:
            MEILI_MASTER_KEY: $$cap_master_key
            MEILI_NO_ANALYTICS: $$cap_no_analytics
            MEILI_ENV: $$cap_env
            MEILI_HTTP_PAYLOAD_SIZE_LIMIT: $$cap_payload_size
            MEILI_MAX_MDB_SIZE: $$cap_max_mdb_size
            MEILI_MAX_UDB_SIZE: $$cap_max_udb_size
            MEILI_NO_SENTRY: $$cap_no_sentry
            MEILI_SCHEDULE_SNAPSHOT: $$cap_schedule_snapshot
            MEILI_SNAPSHOT_INTERVAL_SEC: $$cap_snapshot_interval
            MEILI_DUMP_BATCH_SIZE: $$cap_dump_batchsize
        caproverExtra:
            containerHttpPort: '7700'
caproverOneClickApp:
    variables:
        - id: $$cap_app_version
          label: MeiliSearch Version
          description: 'Check out their Docker page for the valid tags: https://hub.docker.com/r/getmeili/meilisearch/tags'
          defaultValue: 'v0.25.2'
          validRegex: /^([^\s^\/])+$/
        - id: $$cap_master_key
          label: MeiliSearch Master Key
          description: 'The master key allowing you to do everything on the server. If no master key is provided all routes will be accessible without keys. (https://docs.meilisearch.com/reference/features/configuration.html#master-key)'
          defaultValue: $$cap_gen_random_hex(64)
          validRegex: /^([^\s^\/])+$/
        - id: $$cap_no_analytics
          label: Disable MeiliSearch Analytics
          defaultValue: 'false'
          validRegex: /^(true|false)$/
          description: Analytics allow us to know how many users are using MeiliSearch and the following (https://docs.meilisearch.com/reference/features/configuration.html#analytics)
        - id: $$cap_env
          label: MeiliSearch Environment (development/production)
          defaultValue: 'development'
          validRegex: /^(production|development)$/
          description: In production mode, the web interface is disabled. (https://docs.meilisearch.com/reference/features/configuration.html#environment)
        - id: $$cap_payload_size
          label: Payload Limit Size
          defaultValue: '104857600'
          validRegex: /^\d[\d.]*$/
          description: The maximum size, in bytes, of accepted JSON payloads.
        - id: $$cap_max_mdb_size
          label: Max MDB Size
          defaultValue: '107374182400'
          validRegex: /^\d[\d.]*$/
          description: The maximum size, in bytes, of the main database. The main database stores the processed data. (https://docs.meilisearch.com/reference/features/configuration.html#max-mdb-size)
        - id: $$cap_max_udb_size
          label: Max UDB Size
          defaultValue: '107374182400'
          validRegex: /^\d[\d.]*$/
          description: The maximum size, in bytes, of the update database. The update database stores the pending updates.
        - id: $$cap_no_sentry
          label: Disable Sentry
          defaultValue: 'true'
          validRegex: /^(true|false)$/
          description: MeiliSearch use Sentry to get bug reports and diagnostics, and improve MeiliSearch experience. To deactivate Sentry, set this value to true.
        - id: $$cap_schedule_snapshot
          label: Schedule Snapshot Creation
          defaultValue: 'false'
          validRegex: /^(true|false)$/
          description: To activate scheduled snapshots, set this value to true. Disabled by default.
        - id: $$cap_snapshot_interval
          label: Snapshot Interval
          defaultValue: '86400'
          validRegex: /^\d[\d.]*$/
          description: Defines the time gap in seconds between each snapshot creation.
        - id: $$cap_dump_batchsize
          label: Dump Batch Size
          defaultValue: '1024'
          validRegex: /^\d[\d.]*$/
          description: Sets the batch size used in the dump importation process.
    instructions:
        start: >-
            MeiliSearch is a lightning Fast, Ultra Relevant, and Typo-Tolerant Search Engine
        end: >-
            Your service is available at http://$$cap_appname.$$cap_root_domain

            Each instance of MeiliSearch has three keys- a master, a private, and a public. (https://docs.meilisearch.com/reference/api/keys.html#keys)


            Get your private and public key using-

            curl -H "Authorization: Bearer $$cap_master_key" -X GET 'http://$$cap_appname.$$cap_root_domain/keys'
    displayName: 'MeiliSearch'
    isOfficial: true
    description: MeiliSearch is a lightning Fast, Ultra Relevant, and Typo-Tolerant Search Engine
    documentation: https://docs.meilisearch.com/
