Skip to main content

Borg for Dummies

Project description

Easyborg

Easyborg is a simple frontend for the awesome BorgBackup (aka Borg) with fzf for user input.

This project is currently in beta phase.

Tests (Linux) Tests (macOS)

Screenshots

Extract

Extract command in terminal

Backup

Backup command in terminal

Setup

Dependencies

Required:

Verify:

$ borg --version
borg 1.4.2

$ fzf --version
0.66.1 (brew)

Installation

pipx

pipx install easyborg 

You need a Python installation for this.

Homebrew (macOS / Linux)

TBD

Repositories

Easyborg doesn't provide any commands for creating repositories. It's easy to do with Borg, and you only have to do it once. For Easyborg to access a repository, Borg commands must work on it without having to enter a password:

$ borg list /Volumes/STICK/backup
2025-11-13T17:46:47-F1AC35F6         Thu, 2025-11-13 17:46:47 [7b9fd68dd8e991ea9fd598ca015e10266498afc156969ccdfe67149124fd27cc]
2025-11-14T20:20:25-2965DCFB         Fri, 2025-11-14 20:20:25 [33539a1e5f2b83852cf5396ed442531d6b5d4cb2137522280285725c3ea5df48]
  • If you're asked for a SSH password, set up access to your server via SSH key.
  • If you're asked for a Borg repository password, set up BORG_PASSCOMMAND.

NOTE Any repository you want to use with Easyborg should be accessible on your terminal without password request.

Configuration

Call easyborg info to generate an empty config file and show its path:

$ easyborg info

Configuration:

  Config dir    /Users/user/Library/Application Support/easyborg/default
  Config file   /Users/user/Library/Application Support/easyborg/default/easyborg.toml
  Log dir       /Users/user/Library/Logs/easyborg/default
  Log file      /Users/user/Library/Logs/easyborg/default/easyborg.log
  Log level     INFO
  
...

If you're on a modern terminal, you may be able to click on a path to open it (Ctrl + click on iTerm2). Open the config file, configure the folders you want to back up, and your backup and archive repositories.

Usage

Easyborg currently supports five actions: backup, archive, restore, extract and delete. Use

$ easyborg --help

for details.

Concept

Easyborg makes a distinction between backup and archive.

Purpose Data Type Retention
Backup Recovery in case of emergency (short-term) Current, changing Days to months
Archive Preservation for reference (long-term) Old, stable Years or forever

Backup

If you enable automatic backups, Easyborg will create a snapshot of all configured folders in each configured backup repository every full hour. Meaning at 12:00, 13:00 and so on. Then, snapshots are pruned to save space. So after the 13:00 snapshot is written, the 12:00 snapshot will be deleted. Here's how snapshots are retained:

  • the last snapshot of the day for the past seven days
  • one snapshot per week for the past three months

Any snapshot older than three months will be deleted.

NOTE Pruning only occurs when easyborg backup is called, manually or automatically. If you don't call it, your existing snapshots won't be touched.

Archive

With Easyborg you create a snapshot in each configured archive repository whenever you want. For example if you decide to tidy up your Documents folder, a resonable strategy would be:

  1. Delete all files you want to get rid of (especially big files)
  2. Archive the remaining files using easyborg archive
  3. Delete all files you want to keep but don't need for your daily work

That way, you start with a nice clean slate and still have all the documents you might need for later reference stored away in your archive repositories. Of course you can follow a different approach. It's up to you what to archive and when.

NOTE Archive snapshots are never pruned automatically. If you want to delete an archive snapshot, use easyborg delete.

Relativization

If you backup or archive a folder, e.g.:

/Users/user/Documents

it will be stored in the snapshot as:

Users/user/Documents

When you restore or extract the folder, it will be written to the current working directory:

<CWD>/Users/user/Documents

This is a safety feature. If you do want to overwrite the original folder, you can

  • go to its parent folder (/ in the example) and run the restore action there, or
  • remove the original folder and move the restored one (recommended)

Glossary

Easyborg Meaning Borg
Snapshot immutable point-in-time view of data Archive
Backup Repository storage of snapshots intended for recovery Repository
Archive Repository storage of snapshots intended for preservation Repository
Backup (action) create snapshot in backup repository borg create
Archive (action) create snapshot in archive repository borg create
Extract (action) fetch selected items from snapshot borg extract
Restore (action) fetch entire snapshot borg extract
Repository URL Borg-style repository reference (local or remote) (same)
Snapshot Location Borg-style snapshot reference (repository_url::snapshot_name) Archive Location

Disclaimer

Even though I do my best, and there's an automatic test suite that covers the critical functionality on Linux and macOS, errors can happen. Use this application at your own risk. It is highly recommended to start with fresh repositories to avoid data loss.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

easyborg-0.9.1.tar.gz (25.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

easyborg-0.9.1-py3-none-any.whl (27.5 kB view details)

Uploaded Python 3

File details

Details for the file easyborg-0.9.1.tar.gz.

File metadata

  • Download URL: easyborg-0.9.1.tar.gz
  • Upload date:
  • Size: 25.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for easyborg-0.9.1.tar.gz
Algorithm Hash digest
SHA256 9f4ac39da4646f394e2dd947e08a3650c2dd67749a4b349355bf32be54769b6c
MD5 665df1cde7bdd143dd541df79506b482
BLAKE2b-256 cddd65b4857e863f584ba32c698de51725f3546768876aa66e4e8c65cb3f737c

See more details on using hashes here.

File details

Details for the file easyborg-0.9.1-py3-none-any.whl.

File metadata

  • Download URL: easyborg-0.9.1-py3-none-any.whl
  • Upload date:
  • Size: 27.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for easyborg-0.9.1-py3-none-any.whl
Algorithm Hash digest
SHA256 19617861c2812b39af510747aa97f00fa4e150243fed22ad0e158f5ed4ad23d7
MD5 63fb9adbd2d704ed4126d2e41bcb0a2c
BLAKE2b-256 ffee5ff8256429243bfd7e77b009c7a97515c170c3fbb81511e8f7104984b9b4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page