2019-01-11 19:38:53 +01:00
|
|
|
* Borg-Qt
|
|
|
|
|
|
|
|
Borg-Qt is a Python 3 based graphical frontend for the backup tool [[https://github.com/borgbackup/borg][BorgBackup]]
|
|
|
|
as its name implies it is using the Qt5 Framework. Currently it works only on
|
|
|
|
Linux.
|
|
|
|
|
|
|
|
** Motivation
|
|
|
|
|
|
|
|
I think Borg is a great backup tool which should be available to many move
|
|
|
|
users. Since command line tools can be a bit scary for less experienced users I
|
|
|
|
decided to write a GUI as my "thesis" during my final semester at the IBZ
|
|
|
|
school in Aarau, Switzerland.
|
|
|
|
|
|
|
|
** Getting Started
|
|
|
|
|
|
|
|
These instructions will get you a copy of the project up and running on your
|
|
|
|
local machine for development and testing purposes. See deployment for notes on
|
|
|
|
how to deploy the project on a live system.
|
|
|
|
|
|
|
|
*** Prerequisites
|
|
|
|
|
|
|
|
You need to have Borg installed in order to have Borg-Qt working. You can get a
|
|
|
|
binary for your operating system here:
|
|
|
|
https://github.com/borgbackup/borg/releases
|
|
|
|
On a Debian based system you can install it by copying to ~~/.local/bin/~. Borg
|
|
|
|
needs to be able to get executed by calling the command ~borg~.
|
|
|
|
|
|
|
|
#+begin_src sh
|
|
|
|
cp ~/Downloads/borg-linux64 ~/.local/bin/borg
|
|
|
|
chmod +x ~/.local/bin/borg
|
|
|
|
#+end_src
|
|
|
|
For other systems check their [[https://borgbackup.readthedocs.io/en/stable/][documenation]].
|
|
|
|
|
|
|
|
*** Installing
|
|
|
|
|
|
|
|
Installing Borg-Qt is very simple. Download the binary for your operating
|
|
|
|
system here: https://github.com/Nebucatnetzer/borg-qt/releases
|
|
|
|
|
|
|
|
You can then either run it by double clicking on it or by copying it to
|
|
|
|
~~/.local/bin/~ like Borg. If you do that you might want to create a desktop
|
|
|
|
file for it. Puth the following code into a ~borg-qt.desktop~ file in
|
|
|
|
~~/.local/share/applications/~.
|
|
|
|
|
|
|
|
#+example
|
|
|
|
[Desktop Entry]
|
|
|
|
Version=1.0
|
|
|
|
Name=Borg-Qt
|
|
|
|
Exec=/home/username/.local/bin/borg-qt
|
|
|
|
Terminal=false
|
|
|
|
Type=Application
|
|
|
|
Categories=Tools
|
|
|
|
MimeType=x-scheme-handler/tg;
|
|
|
|
#+example
|
|
|
|
|
|
|
|
Make sure the file is executable:
|
|
|
|
#+begin_src sh
|
|
|
|
chmod +x ~/.local/share/applications/borg-qt.desktop
|
|
|
|
#+end_src
|
|
|
|
|
|
|
|
Now you should find Borg-Qt in your desktops start menu.
|
|
|
|
|
|
|
|
** Development
|
|
|
|
|
|
|
|
To start working on Borg-Qt first clone the git repository and install
|
|
|
|
BorgBackup as described in [[Prerequisites]].
|
|
|
|
|
|
|
|
#+begin_src sh
|
|
|
|
git clone https://github.com/borg-qt/borg-qt.git
|
|
|
|
#+end_src
|
|
|
|
|
|
|
|
Now create a virtual environment.
|
|
|
|
|
|
|
|
#+begin_src sh
|
|
|
|
cd borg-qt
|
|
|
|
python3 -m venv venv
|
|
|
|
#+end_src
|
|
|
|
|
|
|
|
And activate it.
|
|
|
|
|
|
|
|
#+begin_src sh
|
|
|
|
source venv/bin/activate
|
|
|
|
#+end_src
|
|
|
|
|
|
|
|
Finally you can install the depencies.
|
|
|
|
|
|
|
|
#+begin_src sh
|
|
|
|
pip3 install -r requirements.txt
|
|
|
|
#+end_src
|
|
|
|
|
|
|
|
You're now all set to work on Borg-Qt. It's a good idea to run the tests before
|
2019-01-20 20:56:19 +01:00
|
|
|
starting. You can do this with the following command from the root of the
|
|
|
|
repository.
|
2019-01-11 19:38:53 +01:00
|
|
|
|
|
|
|
#+begin_src sh
|
2019-01-20 20:56:19 +01:00
|
|
|
make test
|
|
|
|
#+end_src
|
2019-01-20 20:56:46 +01:00
|
|
|
|
|
|
|
To make testing the application while programming a bit easier there's a script
|
|
|
|
which reloads the application everytime a file changes in the ~borg_qt~
|
|
|
|
directory. You to use it run the following command from the root of the
|
|
|
|
repository.
|
|
|
|
|
|
|
|
#+begin_src sh
|
|
|
|
./scripts/debugging.sh
|
2019-01-11 19:38:53 +01:00
|
|
|
#+end_src
|
|
|
|
|
|
|
|
** Used packages
|
|
|
|
|
|
|
|
- [[https://pyqt.readthedocs.io/en/latest/][PyQt5]] - the GUI framework
|
|
|
|
- [[https://pyinstaller.readthedocs.io/en/stable/][PyInstaller]] - used for creating the binary
|
|
|
|
|
|
|
|
** Contributing
|
|
|
|
|
|
|
|
Since I'm currently working on this as part of my thesis I won't be able to
|
|
|
|
accept any pull requests. After the 18th or March 2019 everybody is more than
|
|
|
|
invited to contribute.
|
|
|
|
|
|
|
|
** Versioning
|
|
|
|
|
|
|
|
Currently there is no versioning as such. In the future a versioning scheme
|
|
|
|
based on [[http://semver.org/][semantic Versioning]] might get used. However the master branch is
|
|
|
|
considered to be the stable branch. Other branches might be highly experimental.
|
|
|
|
|
|
|
|
** Authors
|
|
|
|
|
2019-01-11 19:40:41 +01:00
|
|
|
- Andreas Zweili - /Initial work/ - [[https://github.com/Nebucatnetzer][Nebucatnetzer]]
|
2019-01-11 19:38:53 +01:00
|
|
|
|
|
|
|
** License
|
|
|
|
|
|
|
|
This project is licensed under the GPLv3 License - see the [[file:LICENSE]] file
|
|
|
|
for details.
|
|
|
|
|
|
|
|
** Acknowledgments
|
|
|
|
|
|
|
|
- Thanks to PurpleBooth for her [[https://gist.github.com/PurpleBooth/109311bb0361f32d87a2][README template]].
|
2019-01-13 21:40:40 +01:00
|
|
|
- Thanks to [[https://github.com/bit-team/backintime][Back in Time]] for the inspiration.
|
|
|
|
- Thanks to [[https://github.com/feathericons/feather][Feather Icons]] for their great icon set.
|
2019-01-11 19:38:53 +01:00
|
|
|
|