← GoBack projectGoBack / Documentation

Overview

GoBack is a backup daemon and CLI toolkit that runs scheduled specs and ships backups to S3-compatible storage.

Core Terms

  • Base Directory: Folder passed to `goback start --dir`, containing `config.yml` and `specs.d/`.
  • Config (`config.yml`): Global settings like S3 connections, MariaDB defaults, and global `encryption_key`.
  • Spec (`specs.d/*.yml`): A single scheduled backup definition with repositories and drivers.
  • Repository: Upload target reference such as `source: s3:main` with destination path.
  • Driver: Backup unit type (`mariadb`, `directory`, `volumes`) that collects data into the archive.

Implemented Now

  • Daemon runtime via `goback start --dir ...`
  • Spec-based scheduling (`interval` or `crontab`)
  • MariaDB dump backups
  • Directory and Docker volume backups
  • Archive upload to S3-compatible repositories
  • Optional AES-GCM archive encryption
  • CLI decryption command with key resolution precedence

Execution Flow

  1. 1.Boot with `start`: ensure `config.yml` + `specs.d/` directory structure.
  2. 2.Load core config (`s3`, `mariadb`, `encryption_key`).
  3. 3.Load all YAML specs from `specs.d/` and validate structure.
  4. 4.Register scheduled jobs in gocron and wait for SIGINT/SIGTERM.
  5. 5.Run driver backups in parallel, compress, encrypt, upload, then enforce retention.

Quick Start

Start with command docs, then configure core settings and one spec.

Encryption key behavior: a spec can define its own `encryption_key`; if present it overrides the global key from `config.yml` for that spec run.

goback start --dir /etc/goback

# in another shell, decrypt a produced encrypted archive
goback decrypt /tmp/backup-example.tar.gz.enc --key "replace-me"

These docs were created for about 80% with LLMs (AI), then reviewed and edited by maintainers.

Previous

Start of section