Skip to content
A Golang implementation of Vorta, the Borg Backup client
Go Dockerfile Makefile
Branch: master
Clone or download


An implementation of Vorta in Golang to improve deployment and packaging.

Work in progress and NOT functional. Use the Python version if you need something that works.


Borg Commands:

  • init
  • create
  • info
  • check
  • extract
  • mount
  • delete
  • diff
  • list-archive
  • list-repo
  • prune
  • umount
  • version

Backend Functionality

  • Keychain/SecretService
  • Background scheduler
  • Single App
  • Backup status (icon, menu)
  • Read and parse existing SSH keys
  • Create new SSH key
  • Check Borg version for available features
  • Tests
  • Read list of WiFis
  • Password fallback in database
  • Translations

Packaging (via Docker)

  • macOS
  • Ubuntu 19.04
  • Debian 10
  • Fedora 30
  • Archlinux
  • Windows?


  1. Follow the official steps to set up a Go project in Module Mode.
  2. Test app using $ qtdeploy -debug -uic=false -quickcompiler test
  3. Package for deployment $ qtdeploy -uic=false -quickcompiler build

Important folders:

  • /ui has .ui files provided by Qt Designer
  • /qml has icons and other assets


See the Makefile for different deployment options. Needs Docker installed. E.g.

  • $ make darwin
  • $ make linux DISTRO=archlinux

For Linux, Qt5 is linked dynamically to match your distro's look and feel. Install required Qt5 packages like this:

  • Ubuntu/Debian: $ apt install qt5-default libqt5qml5
  • Archlinux: $ pacman -S qt5
  • Fedora: $ yum install qt5-qtbase


  • extract strings: lupdate -extensions ui ui/*.ui -ts qml/i18n/ui_en.ts
  • merge .ts files: lconvert -i primary.ts secondary.ts -o complete.ts
  • compile .ts to .qm: lrelease qml/i18n/ui_de.ts -qm qml/i18n/ui_de.qm

License and Credits

You can’t perform that action at this time.