Skip to content
/ locutus Public

Very simple remote backup solution based on BorgBackup for home usage.

License

Notifications You must be signed in to change notification settings

janost/locutus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Locutus

Introduction

Locutus is a wrapper for borg to simplify the backup workflow of a typical home user and provide a secure and easy remote backup solution.

The utility works with a single encrypted borg repository where all configured paths are backed up and synced to a remote cloud storage via rclone or any other custom tool. With borg's encrypted backup solution and rclone's support for a wide variety of cloud storage providers it's easy to set up a secure, free or relatively cheap way for home users to back up their important data.

Remotes

Locutus supports any custom command to sync the backup repository to a remote location. Rclone is recommended and works very well. You can find configuration examples for the REPO_SYNC_COMMAND variable in the .env.template file for rclone and aws s3.

Dependencies

You will need a fairly recent version of bash, pwgen, borg and (optionally) rclone.

Setting up

Clone the repository, rename .env.template to .env and customize the parameters to your needs. You will also need to setup your remote storage in rclone with rclone config before using this tool if you're planning to use rclone.

Note on backup security

Locutus initializes your backup repository with keyfile-blake2 encryption by default, and generates a random passphrase with pwgen and saves it to a file specified in the PW_FILE parameter in the .env file.
To be able to access data in your repository, you need both the keyfile and the passphrase. Please make sure to back up your repository key (by exporting it via borg key export) and your passphrase (saved in PW_FILE, configured in .env) in a safe and secure place (for example a proper password manager, like KeePassXC or BitWarden) and never share them with anyone. Exposing your repository, key and passphrase means others can access the data in your backup repository. You probably don't want that.

Usage

Please make sure to read, understand and customize the .env file before using Locutus. Locutus will initialize your backup repository the first time you're using it.

locutus.sh create

Creates a backup with the current timestamp according to the configuration, prunes the repository and syncs it to the configured remote storage.

locutus.sh list

Lists backups in your repository.

locutus.sh delete BACKUP_NAME

Deletes the backup named BACKUP_NAME.

locutus.sh list BACKUP_NAME

Lists the contents of a backup in your repository.

locutus.sh info

Displays detailed information about your repository.

locutus.sh info BACKUP_NAME

Displays detailed information about a backup in your repository.

locutus.sh check

Verifies the consistency of your repository and the data stored in it.

locutus.sh prune

Manually executes a prune operation on the repository, removing backups not matching the configured retention options in .env.
Normally this is automatically done by locutus.sh create.

locutus.sh sync

Manually synchronizes your repository with the configured remote storage.
Normally this is automatically done by locutus.sh create.

locutus.sh mount MOUNT_POINT

Mounts your repository as a FUSE filesystem to MOUNT_POINT.

locutus.sh export-tar BACKUP_NAME FILE_NAME

Creates a tarball (FILE_NAME) from the specified backup (BACKUP_NAME).

About

Very simple remote backup solution based on BorgBackup for home usage.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages