GoBack

GoBack was created out of the need for a simple, minimal, and easy-to-use backup solution. While many existing backup software options are powerful, they were often too complex to set up or didn't cover specific needs. GoBack aims to be a straightforward tool that can run as a system service and reliably do its job.
It supports scheduling via Crontab expressions and intervals, allowing for flexible backup intervals, such as every 57 seconds.
Current Status: This project is a Work In Progress (W.I.P). Features are being developed and tested.
Disclaimer: Most of the tests in this project were written with AI assistance, because the generated tests are generally better than the ones I write manually.
Features
- Database Backups: Support for MariaDB.
- Volume Backups: Backup Docker volumes and other mounted storage.
- Directory Backups: Simple file and directory backups.
- Cloud Storage Integration: Store backups on S3 compatible storage.
- Compression: Reduce backup size for efficient storage.
- Encryption / Decryption: AES-GCM encryption during backup and CLI decryption support.
- Recovery: Download remote backups and extract them into a local recovery directory.
- Flexible Scheduling: Use Crontab expressions or intervals for scheduling.
- CLI Commands: Run the service with
goback start, decrypt archives with goback decrypt, and extract recovery bundles with goback recover.
Roadmap
The following features are planned for future releases:
- PostgreSQL Support
- MongoDB Support
- MySQL Support (Currently use the MariaDB driver)
Installation (W.I.P)
Installation instructions will be provided once the project reaches a more stable state.
Automated Installation
Manual Installation
Usage
Start GoBack:
goback start --dir /etc/goback
Decrypt an encrypted archive:
goback decrypt /path/to/backup.tar.gz.enc --key "your-key"
Or resolve key from config/spec:
goback decrypt /path/to/backup.tar.gz.enc my-spec.yml --dir /etc/goback
Recover a remote backup using a spec and extract it into a local directory:
goback recover backups/backup-daily.yml-1740000000.tar.gz.enc ./restore --spec daily.yml --dir /etc/goback
Recover a remote backup without a spec and extract it into a local directory:
goback recover backups/backup-daily.yml-1740000000.tar.gz.enc ./restore --source s3:main --dir /etc/goback --key "your-key"
Notes:
goback recover currently downloads from configured remote repositories only.
- Recovery is intentionally simple in this early stage: it extracts items into
directory/, mariadb/, and volumes/ inside the target path and writes a manifest.yml beside them.
- The output path must be empty or not exist yet, which keeps recovery safe and predictable.
- New backups include an embedded
manifest.yml that enables spec-less recovery. Older backups can still be recovered because item names are inferred from archive filenames.
License
This project is licensed under the GNU General Public License v3.0 License - see the LICENSE file for details.