captainVersion: 4
services:
    $$cap_appname:
        volumes:
            - $$cap_appname-redis-data:/data
        restart: always
        environment:
            REDIS_PASSWORD: $$cap_redis_password
        caproverExtra:
            dockerfileLines:
                - FROM redis:$$cap_redis_version
                - CMD exec redis-server --requirepass "$$cap_redis_password"
            notExposeAsWebApp: 'true'
caproverOneClickApp:
    variables:
        - id: $$cap_redis_version
          label: Redis Version Tag
          description: 'Check out their Docker page for the valid tags: https://hub.docker.com/_/redis?tab=tags'
          defaultValue: '5'
          validRegex: /^([^\s^\/])+$/
        - id: $$cap_redis_password
          label: Redis Password
          validRegex: /^([a-zA-Z0-9-_])+$/
    instructions:
        start: >-
            Redis is an open source key-value store that functions as a data structure server.

             After installation on CapRover, it will be available as srv-captain--YOUR_CONTAINER_NAME at port 6379 to other CapRover apps.

             Enter your Redis container name and click on next. It will take about a minute for the process to finish.
        end: "Redis is deployed and available as srv-captain--$$cap_appname:6379 to other apps. For example with NodeJS: const client = redis.createClient(6379, 'srv-captain--$$cap_appname' , {password: '$$cap_redis_password'})"
    displayName: ''
    isOfficial: true
    description: Redis is an in-memory data structure store, used as a database, cache and message broker
    documentation: Taken from https://hub.docker.com/_/redis
