captainVersion: 4
services:
    $$cap_appname:
        image: shumc/imagor:$$cap_imagor_version
        environment:
            PORT: 80
            IMAGOR_UNSAFE: $$cap_env_imagor_unsafe
            IMAGOR_SECRET: $$cap_env_imagor_secret
            AWS_ACCESS_KEY_ID: $$cap_env_aws_key_id
            AWS_SECRET_ACCESS_KEY: $$cap_env_aws_secret_access_key
            AWS_REGION: $$cap_env_aws_region

            S3_LOADER_BUCKET: $$cap_env_s3_loader_bucket
            S3_LOADER_BASE_DIR: $$cap_env_s3_loader_bucket_dir

            S3_STORAGE_BUCKET: $$cap_env_s3_storage_bucket
            S3_STORAGE_BASE_DIR: $$cap_env_s3_storage_bucket_dir

            S3_RESULT_STORAGE_BUCKET: $$cap_env_s3_result_storage_bucket
            S3_RESULT_STORAGE_BASE_DIR: $$cap_env_s3_result_storage_bucket_dir
        restart: always
caproverOneClickApp:
    variables:
        - id: $$cap_imagor_version
          label: App Version
          description: Check out their Docker page for the valid tags https://hub.docker.com/r/shumc/imagor/tags
          defaultValue: '0.8.11'
          validRegex: /^([^\s^\/])+$/

        - id: $$cap_env_imagor_unsafe
          label: Imagor Undafe
          description: unsafe URL for testing (valid value 1 or 0)
          defaultValue: 1
          validRegex: /^\d$/

        - id: $$cap_env_imagor_secret
          label: Imagor Secret
          description: Secret key for URL signature
          defaultValue: $$cap_gen_random_hex(32)
          validRegex: /^([^\s^\/])+$/

        - id: $$cap_env_aws_key_id
          label: AWS Key ID
          description: AWS Access Key Id
          defaultValue: ''
          validRegex: /^([^\s^\/])+$/

        - id: $$cap_env_aws_secret_access_key
          label: AWS Key Secret Access Key
          description: AWS key secret access key
          defaultValue: ''
          validRegex: /^([^\s^\/])+$/

        - id: $$cap_env_aws_region
          label: AWS Region
          description: AWS region
          defaultValue: ''
          validRegex: /^([^\s^\/])+$/

        - id: $$cap_env_s3_loader_bucket
          label: AWS S3 Loader Bucket
          description: enable S3 loader by specifying bucket
          defaultValue: 'mybucket'

        - id: $$cap_env_s3_loader_bucket_dir
          label: AWS S3 Loader Bucket Directory
          description: optional
          defaultValue: 'images'

        - id: $$cap_env_s3_storage_bucket
          label: AWS S3 Storage Bucket
          description: enable S3 storage by specifying bucket
          defaultValue: 'mybucket'

        - id: $$cap_env_s3_storage_bucket_dir
          label: AWS S3 Storage Bucket Directory
          description: optional
          defaultValue: 'images'

        - id: $$cap_env_s3_result_storage_bucket
          label: AWS S3 Result Storage Bucket
          description: enable S3 result storage by specifying bucket
          defaultValue: 'mybucket'

        - id: $$cap_env_s3_result_storage_bucket_dir
          label: AWS S3 Result Storage Bucket Directory
          description: optional
          defaultValue: 'images/result'

    instructions:
        start: |-
            Imagor is a fast, Docker-ready image processing server written in Go.
            This app will store the images in S3 bucket.
            If you want to store the images locally as docker volume use Imagor Local instead.
            GitHub: https://github.com/cshum/imagor
        end: |-
            $$cap_appname deployed successfuly.
            Imagor is currently running in unsafe mode for easier testing.
            In production environment, it is highly recommended turning off IMAGOR_UNSAFE 
            by setting the IMAGOR_UNSAFE to 0 or removing the IMAGOR_UNSAFE environment variable
    displayName: Imagor (S3 storage)
    isOfficial: true
    description: Imagor is a fast, Docker-ready image processing server written in Go. (Stores images in S3 bucket)
    documentation: https://github.com/cshum/imagor
