# vim: ft=yaml.docker-compose
version: "3.8"

services:
  backup:
    image: mazzolino/restic:{{ services.restic.version }}
    restart: always
    environment:
      RUN_ON_STARTUP: false
      BACKUP_CRON: "0 30 3 * * *"
      RESTIC_REPOSITORY: sftp:{{ services.restic.user }}@{{ services.restic.domain }}:{{ services.restic.repository }}
      RESTIC_PASSWORD: "{{ restic_secrets.repository_password }}"
      RESTIC_BACKUP_SOURCES: /mnt/volumes
      RESTIC_BACKUP_ARGS: >-
        --tag datacoop-volumes
        --exclude '*.tmp'
        --exclude '/mnt/volumes/mastodon/mastodon_data/cache/'
        --exclude '/mnt/volumes/restic/'
        --verbose
      RESTIC_FORGET_ARGS: >-
        --keep-last 10
        --keep-daily 7
        --keep-weekly 5
        --keep-monthly 12
      TZ: Europe/Copenhagen
      POST_COMMANDS_FAILURE: /run/libexec/failure.sh
    volumes:
      - "./ssh:/run/secrets/.ssh:ro"
      - "./scripts:/run/libexec:ro"
      - "/docker-volumes:/mnt/volumes:ro"
    networks:
      - postfix

  prune:
    image: mazzolino/restic:{{ services.restic.version }}
    environment:
      RUN_ON_STARTUP: false
      PRUNE_CRON: "0 30 4 * * *"
      RESTIC_REPOSITORY: sftp:{{ services.restic.user }}@{{ services.restic.domain }}:{{ services.restic.repository }}
      RESTIC_PASSWORD: "{{ restic_secrets.repository_password }}"
      TZ: Europe/copenhagen
    volumes:
      - "./ssh:/run/secrets/.ssh:ro"

networks:
  postfix:
    external: true