← GoBack projectGoBack / Documentation

Specs

Each file in `<base-dir>/specs.d/*.yml` defines a scheduled backup job with repositories and drivers.

Spec Example

specs.d/daily.yml
interval: 5m
# crontab: "*/10 * * * *"

repositories:
  - source: s3:main
    dest: "goback/prod"

retention:
  keep_last: 14

encryption_key: "optional-spec-override"

mariadb:
  - name: app

directory:
  - name: uploads
    source: /var/www/uploads

volumes:
  - name: app_data

Validation Rules

  • At least one `repositories` entry is required.
  • At least one schedule timing is required: `interval` or `crontab`.
  • At least one driver list is required: `mariadb`, `directory`, or `volumes`.
  • Spec file extension must be `.yml` or `.yaml` to be loaded.

Repository Source Format

Format is <engine>:<name>. Example: s3:main.

Source engine must be a valid storage engine and the named connection must exist in `config.yml`.

Scheduling Notes

If both `interval` and `crontab` are provided, cron scheduling becomes the active timer in current implementation.

`interval` is parsed as Go duration and effectively runs at second-level precision.

Encryption Key Override

You can set `encryption_key` directly inside a spec file. When present, this spec-level key overrides the global `encryption_key` from `config.yml` for that spec only.

If a spec does not define `encryption_key`, GoBack falls back to the global key in core configuration.