captainVersion: 4
services:
    $$cap_appname:
        environment:
            AWS_ACCESS_KEY_ID: $$cap_aws_access_key_id
            AWS_SECRET_ACCESS_KEY: $$cap_aws_secret_access_key
            BUCKET: $$cap_bucket
            BACKUP_FOLDER: $$cap_backup_folder
            MONGODB_HOST: $$cap_mongodb_host
            MONGODB_PORT: $$cap_mongodb_port
            MONGODB_USER: $$cap_mongodb_user
            MONGODB_PASS: $$cap_mongodb_pass
            MONGODB_DB: $$cap_mongodb_db
            EXTRA_OPTS: $$cap_extra_opts
            CRON_TIME: $$cap_cron_time
            TZ: $$cap_tz
            CRON_TZ: $$cap_tz
            INIT_BACKUP: $$cap_init_backup
            INIT_RESTORE: $$cap_init_restore
            DISABLE_CRON: $$cap_disable_cron
        image: halvves/mongodb-backup-s3@sha256:e709db5e0fe5d44873ac5a385af214e951f2a0366a7c02b515ebf7c983658b0c
        restart: always
caproverOneClickApp:
    variables:
        - description: Your aws access key id (for your s3 bucket)
          id: $$cap_aws_access_key_id
          label: AWS ACCESS KEY ID
          validRegex: /^.+$/
        - description: Your aws secret access key (for your s3 bucket)
          id: $$cap_aws_secret_access_key
          label: AWS SECRET ACCESS KEY
          validRegex: /^.+$/
        - description: Your s3 bucket.
          id: $$cap_bucket
          label: BUCKET
          validRegex: /^.+$/
        - description: Name of folder or path to put backups (eg myapp/db_backups/)
          id: $$cap_backup_folder
          defaultValue: mongo_dumps/
          label: BACKUP_FOLDER
        - description: The host/ip of your mongodb database. For CapRover hosted database, use srv-captain--your-mongodb-name
          id: $$cap_mongodb_host
          label: MONGODB HOST
          validRegex: /^.+$/
        - description: The port number of your mongodb database
          id: $$cap_mongodb_port
          label: MONGODB PORT
          defaultValue: '27017'
        - description: The username of your mongodb database. If MONGODB_USER is empty while MONGODB_PASS is not, the image will use admin as the default username
          id: $$cap_mongodb_user
          label: MONGODB USER
          defaultValue: admin
        - description: The password of your mongodb database
          id: $$cap_mongodb_pass
          label: MONGODB PASS
          validRegex: /^.+$/
        - description: The database name to dump. If not specified, it will dump all the databases
          id: $$cap_mongodb_db
          label: MONGODB DB
        - description: Any extra options to pass to mongodump command. If you see *Unrecognized field 'snapshot'* problem add --forceTableScan here
          id: $$cap_extra_opts
          label: EXTRA_OPTS
        - description: The interval of cron job to run mongodump. 0 3 * * * by default, which is every day at 03:00hrs.
          id: $$cap_cron_time
          label: CRON TIME
          defaultValue: 0 3 * * *
        - description: timezone
          id: $$cap_tz
          label: TIMEZONE
          defaultValue: US/Eastern
        - description: If set, create a backup when the container launched
          id: $$cap_init_backup
          label: INIT BACKUP
          defaultValue: 'true'
        - description: If set (any string, eg. true), restore from latest when container is launched.
          id: $$cap_init_restore
          label: INIT RESTORE
          defaultValue: ''
        - description: if set (any string, eg.true), it will skip setting up automated backups. good for when you want to use this container to seed a dev environment.
          id: $$cap_disable_cron
          label: DISABLE CRON
          defaultValue: ''
    instructions:
        start: Runs mongodump to backup data using cronjob to an s3 bucket
        end: MongoDB Backup S3 is ready
    displayName: MongoDB Backup Amazon S3
    description: Runs mongodump to backup data using cronjob to an Amazon S3 bucket
    documentation: https://github.com/halvves/mongodb-backup-s3
