job "photoprism" {
  schedule = "10 * * * *"

  config {
    repo = "rclone::ftp,env_auth:/nomad/photoprism"
    passphrase = env("BACKUP_PASSPHRASE")
  }

  task "Create local photoprism dir" {
    pre_script {
      on_backup = "mkdir -p /local/photoprism"
    }
  }

  task "Dump database" {
    mysql "Dump database" {
      hostname       = env("MYSQL_HOST")
      port           = env("MYSQL_PORT")
      database       = "photoprism"
      username       = env("MYSQL_USER")
      password       = env("MYSQL_PASSWORD")
      no_tablespaces = true
      dump_to        = "/local/photoprism/dump.sql"
    }
  }

  backup {
    paths = [
      "/local/photoprism",
      "/data/nas-container/photoprism",
    ]
    # Because path is absolute
    restore_opts {
      Target = "/"
    }
  }

  forget {
    KeepLast = 2
    KeepHourly = 24
    KeepDaily = 30
    KeepWeekly = 8
    KeepMonthly = 6
    KeepYearly = 2
    Prune = true
  }
}