captainVersion: 4
services:
    $$cap_appname-mongodb:
        image: mongo:$$cap_mongo_version
        volumes:
            - $$cap_appname-db-data:/data/db
            - $$cap_appname-db-config:/data/configdb
        restart: always
        environment:
            MONGO_INITDB_ROOT_USERNAME: root
            MONGO_INITDB_ROOT_PASSWORD: $$cap_mongo_password
        caproverExtra:
            notExposeAsWebApp: 'true'
    $$cap_appname-parse:
        depends_on:
            - $$cap_appname-mongodb
        image: parseplatform/parse-server:$$cap_parse_version
        restart: always
        volumes:
            - $$cap_appname-parse-cloud:/parse-server/cloud
            - $$cap_appname-parse-config:/parse-server/config
        environment:
            PORT: '8080'
            PARSE_SERVER_APPLICATION_ID: $$cap_app_id
            PARSE_SERVER_MASTER_KEY: $$cap_master_key
            PARSE_SERVER_DATABASE_URI: mongodb://root:$$cap_mongo_password@srv-captain--$$cap_appname-mongodb:27017/parse?authSource=admin
        caproverExtra:
            containerHttpPort: '8080'
    $$cap_appname-parse-dashboard:
        depends_on:
            - $$cap_appname-parse
        image: parseplatform/parse-dashboard:$$cap_parse_dashboard_version
        restart: always
        environment:
            PORT: '4040'
            PARSE_DASHBOARD_SERVER_URL: https://$$cap_appname-parse.$$cap_root_domain/parse
            PARSE_DASHBOARD_MASTER_KEY: $$cap_master_key
            PARSE_DASHBOARD_APP_ID: $$cap_app_id
            PARSE_DASHBOARD_APP_NAME: $$cap_appname-parse
            PARSE_DASHBOARD_USER_ID: caprover
            PARSE_DASHBOARD_ALLOW_INSECURE_HTTP: 'true'
            PARSE_DASHBOARD_USER_PASSWORD: $$cap_parse_dashboard_password
        caproverExtra:
            containerHttpPort: '4040'
caproverOneClickApp:
    variables:
        - id: $$cap_mongo_version
          label: MongoDB Version
          defaultValue: '4'
          description: Check out their Docker page for the valid tags https://hub.docker.com/r/library/mongo/tags/
          validRegex: /^([^\s^\/])+$/
        - id: $$cap_mongo_password
          label: MongoDB password
          description: Only use alphanumeric chars.
          validRegex: /^([a-zA-Z0-9])+$/
        - id: $$cap_parse_dashboard_version
          label: Parse Dashboard Version
          defaultValue: 2.0.5
          description: Check out their Docker page for the valid tags https://hub.docker.com/r/parseplatform/parse-dashboard/tags
          validRegex: /^([^\s^\/])+$/
        - id: $$cap_parse_dashboard_password
          label: Parse Dashboard Password
          validRegex: /^\S{8,}$/
        - id: $$cap_parse_version
          label: Parse Version
          defaultValue: 3.1.3
          description: Check out their Docker page for the valid tags https://hub.docker.com/r/parseplatform/parse-server/tags
          validRegex: /^([^\s^\/])+$/
        - id: $$cap_app_id
          label: Application ID
          description: Use a random string. See Parse documentation for more details.
          validRegex: /^([a-zA-Z0-9])+$/
        - id: $$cap_master_key
          label: Master Key
          description: Use a random string. See Parse documentation for more details.
          validRegex: /^([a-zA-Z0-9])+$/
    instructions:
        start: >-
            Parse Server is an open source version of the Parse backend that can be deployed to any infrastructure that can run Node.js. For more information on Parse platform see http://parseplatform.org

             Enter your Parse Configuration parameters and click on next. A MongoDB (database) and a Parse container will be created for you.  The process will take about a minute for the process to finish.
        end: 'Parse is deployed! IMPORTANT: Make sure to enable HTTPS and Force HTTPS on your apps before accessing them! Your Parse Dashboard username is "caprover"'
    displayName: ''
    isOfficial: true
    description: Parse Server is an open source Backend-as-a-Service(BaaS) framework initially developed by Facebook
    documentation: Taken from https://hub.docker.com/r/parseplatform/parse-server/
