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.
Key Links
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.Boot with `start`: ensure `config.yml` + `specs.d/` directory structure.
- 2.Load core config (`s3`, `mariadb`, `encryption_key`).
- 3.Load all YAML specs from `specs.d/` and validate structure.
- 4.Register scheduled jobs in gocron and wait for SIGINT/SIGTERM.
- 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"