captainVersion: 4
services:
    '$$cap_appname':
        image: 'thingsboard/tb-postgres:$$cap_version'
        ports:
            - '$$mqtt_port:1883'
            - '$$coap_port:5683'
        environment:
            TB_QUEUE_TYPE: in-memory
        volumes:
            - '$$cap_appname-data:/data'
            - '$$cap_appname-logs:/var/log/thingsboard'
        caproverExtra:
            containerHttpPort: '9090'
caproverOneClickApp:
    variables:
        - id: '$$cap_version'
          label: ThingsBoard Version
          defaultValue: '3.2.2'
          description: Check out their Docker page for the valid tags hhttps://hub.docker.com/r/thingsboard/tb-postgres/tags
          validRegex: "/^([^\\s^\\/])+$/"
        - id: '$$mqtt_port'
          label: MQTT device API port
          defaultValue: '1883'
          description: Choose what port to expose the MQTT device API on.
          validRegex: '/^([0-9]{1,4}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$/'
        - id: '$$coap_port'
          label: COAP device API port
          defaultValue: '5683'
          description: Choose what port to expose the COAP device API on.
          validRegex: '/^([0-9]{1,4}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$/'
    instructions:
        start: |-
            ThingsBoard is an open-source IoT platform for data collection, processing, visualization, and device management.

            More details: https://thingsboard.io/
        end: |-
            ThingsBoard has been successfully deployed! Make sure to port forward $$mqtt_port and $$coap_port.
    displayName: ThingsBoard - Postgres
    description: ThingsBoard is an open-source IoT platform for data collection, processing, visualization, device management, with an integrated Postgres database.
    documentation: See https://thingsboard.io/docs/user-guide/install/docker/
