captainVersion: 4
services:
    $$cap_appname:
        depends_on:
            - $$cap_appname-mongo
        image: strapi/strapi:$$cap_strapi_version
        volumes:
            - $$cap_appname-data:/srv/app
        restart: always
        environment:
            DATABASE_CLIENT: mongo
            DATABASE_HOST: srv-captain--$$cap_appname-mongo
            DATABASE_PORT: '27017'
            DATABASE_NAME: strapi
            DATABASE_USERNAME: strapi
            DATABASE_PASSWORD: $$cap_mongo_password
            DATABASE_AUTHENTICATION_DATABASE: strapi
        caproverExtra:
            containerHttpPort: '1337'
    $$cap_appname-mongo:
        image: mongo:$$cap_mongo_version
        volumes:
            - $$cap_appname-mongo-data:/data/db
            - $$cap_appname-mongo-config:/data/configdb
        restart: unless-stopped
        environment:
            MONGO_INITDB_DATABASE: strapi
            MONGO_INITDB_ROOT_USERNAME: strapi
            MONGO_INITDB_ROOT_PASSWORD: $$cap_mongo_password
        caproverExtra:
            notExposeAsWebApp: 'true'
caproverOneClickApp:
    variables:
        - id: $$cap_strapi_version
          label: Strapi Version
          defaultValue: 3.5.4
          description: Check out the Docker page for the valid tags https://hub.docker.com/r/strapi/strapi/tags
          validRegex: /^([^\s^\/])+$/
        - id: $$cap_mongo_version
          label: MongoDB Version
          defaultValue: 4.4.4
          description: Check out the Docker page for the valid tags https://hub.docker.com/r/library/mongo/tags/
          validRegex: /^([^\s^\/])+$/
        - id: $$cap_mongo_password
          label: MongoDB password
          defaultValue: $$cap_gen_random_hex(32)
          description: Only use alphanumeric chars.
          validRegex: /^([a-zA-Z0-9])+$/
    instructions:
        start: >-
            Strapi is the leading open-source headless CMS. It’s 100% Javascript, fully customizable and developer-first

            Read more here: https://strapi.io

            Hardware requirements:

            2GB RAM required

            1 CPU core (2 is recommended)

            read more on https://strapi.io/documentation/developer-docs/latest/setup-deployment-guides/deployment.html#hosting-provider-guides
        end: >-
            Strapi is deployed and available as $$cap_appname
            IMPORTANT: It will take up to 3 minutes for Strapi to be ready. Before that, you will see an 502 error page.

            Note when installing a plugin an error will be displayed. This error message is due to a restart on plugin installation.
            This behaviour is normal. Refresh the page after few seconds (502 can happen if you refresh too fast).
    displayName: ''
    isOfficial: true
    description: The Open source Headless CMS Front-End Developers love. Manage your content. Distribute it anywhere
    documentation: Taken from https://github.com/strapi/strapi-docker/blob/master/examples/mongo/docker-compose.yml
