goback

module
v0.0.0-...-094c854 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 18, 2026 License: GPL-3.0

README

GoBack

Coverage Go Report Card Go Version Stars Forks License Last Commit

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.

Directories

Path Synopsis
cmd
cli command
internal
app

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL