version: "2.1"
services:
    backup_mattermost:
        image: ghcr.io/tecnativa/docker-duplicity-postgres:master
        hostname: {{ inventory_hostname_short | lower | regex_replace('_','') }}-mattermost
        environment:
            DST: "swift://mattermost_{{ inventory_hostname|lower }}"
            PGDATABASE: "{{ mm_db_name }}"
            PGPASSWORD: "{{ mm_db_pass }}"
            PGUSER: "{{ mm_db_user }}"
            PASSPHRASE: "{{ mm_backup_pass | default(mm_db_pass) }}"
            SWIFT_USERNAME: "{{ swift_odoo_username }}"
            SWIFT_PASSWORD: "{{ swift_odoo_password }}"
            SWIFT_AUTHURL: "{{ swift_odoo_authurl }}"
            SWIFT_AUTHVERSION: {{ swift_odoo_authversion }}
            SWIFT_TENANTNAME: "{{ swift_odoo_tenantname }}"
            SWIFT_TENANTID: "{{ swift_odoo_tenantid }}"
            SWIFT_REGIONNAME: "{{ swift_odoo_regionname }}"
            JOB_200_WHEN: "never"
            JOB_300_WHAT: "pg_dump --no-owner --no-privileges --file $$SRC/$$PGDATABASE.sql && backup --full-if-older-than 6D"
            JOB_302_WHAT: "dup remove-all-but-n-full 5 --force $$DST $$@"
            JOB_302_WHEN: "daily"
        volumes:
            - mattermost_backup_cache:/root/.cache/duplicity/
            - mattermost_config:/mnt/backup/src/config:z
            - mattermost_data:/mnt/backup/src/data:z
            - mattermost_plugins:/mnt/backup/src/plugins:z
            - mattermost_client-plugins:/mnt/backup/src/client-plugins:z
        networks:
            - mattermost_default
            - public
        command:
            - /etc/periodic/daily/jobrunner

networks:
    mattermost_default:
        external: true
    public:
        driver_opts:
            encrypted: 1

volumes:
    mattermost_backup_cache:
    mattermost_config:
        external: true
    mattermost_data:
        external: true
    mattermost_plugins:
        external: true
    mattermost_client-plugins:
        external: true