borgbackup / borg

Deduplicating archiver with compression and authenticated encryption.
https://www.borgbackup.org/
Other
10.94k stars 739 forks source link

Simplistic Qt GUI for borgbackup #2960

Closed vduseev closed 4 years ago

vduseev commented 7 years ago

Idea of GUI client

Create a simple desktop application that executes borg behind the scenes and runs the very basics of backups.

Goal

Aimed at users with no understanding of backup tools, directory structures, ssh, backup algorithms, etc. Allow them to run their favorite backup tool on any platform.

Proposed tech stack

Upd (8/24/2017):

Basic requirements

Available target platforms for Qt

Note: Qt is not targeting FreeBSD as of latest 5.9 version

Platform
Windows 7, 8.1, 10 (32/64-bit)
openSUSE 42.1 (64-bit)  
Red Hat Enterprise Linux 6.6, 7.2 (64-bit)
Ubuntu 16.04 (64-bit)
(Linux 32/64-bit)
macOS 10.10, 10.11, 10.12
Embedded Linux
QNX 6.6.0, 7.0 (armv7le and x86)
INTEGRITY 11.4.x
Universal Windows Platform (UWP) (x86, x86_64, armv7)
Android (API Level: 16)

Development plan

I'd like to start on this project and create a separate repository for the Desktop GUI. I suppose "borgbackup" can then fork my repository.

Looking forward to any ideas and comments about requirements for such desktop client.

ThomasWaldmann commented 7 years ago

Suggestions:

copart commented 7 years ago

With Crashplan Home announcing that they are killing the program, there will be a demand for a this. The Crashplan Business version does not support PC to PC backup!! Crashplan was an easy way to backup Windows/Linux computers to other PCs in a deduplicated fashion. I use Borg to backup all my Linux PCs, but I used Crashplan to backup family computers that use Windows! I would love to use Borg on Windows, but the support is "beta"!

ThomasWaldmann commented 7 years ago

@copart see windows branch in the repo. It's not finished, nor does it have enough developers / reviewers - that's the main obstacle for getting native windows support (and having that stuff merged into master).

vduseev commented 7 years ago

Also Qt in open source implies following restrictions:

Are these restrictions harmful for borg?

robaato commented 7 years ago

For borg - no - it's on 3 clause BSD. So the GUI can redistribute Borg (with copyright notice in docs or in-app). It is only an issue for the GUI app itself.

enkore commented 7 years ago

Are these restrictions harmful for borg?

In the general case the licenses of two programs talking over pipes to each other are irrelevant. When distributing them together (like an installer), then the license needs to permit that (no problem here). (Also Borg is BSD so it's even permitted to make a closed source fork and sell it).

ThomasWaldmann commented 6 years ago

Any progress on this?

dragetd commented 6 years ago

I'd also love to contribute to that project. Did you already open a repository for this @vduseev ? We could brainstorm some basic architectural ideas on IRC (or mumble, discord etc.). I am 'draget' on freenode and online today. :)

ThomasWaldmann commented 6 years ago

@enkore ^^

dimejo commented 6 years ago

Nice! Looking forward to a testable version.

ghost commented 6 years ago

I'm interested in this as well, please keep us posted, i know i have a few servers which this would greatly help

roynielsen17 commented 6 years ago

Since BorgBackup is Python, is there any interest in a PyQt or Pyside interface?

ThomasWaldmann commented 6 years ago

@roynielsen17 sure.

I played a bit with PyQt recently, but guess I don't have enough time to do the GUI work. I could maybe help with the interfacing to borg, though. If code is Python, I tend to have a look / help, if not, then rather not.

Last time I looked, PySide was quite behind current Qt, so maybe PyQt makes more sense.

dragetd commented 6 years ago

Developing Qt/QML is a lot more comfortable when using the native libraries and QT-Creator. Since borg has the json interface, my personal recommondation would be to is this and subprocesses. :)

roynielsen17 commented 6 years ago

Hello,

PySide 2 (Uses Qt5 interfaces) is officially supported ( https://wiki.qt.io/PySide2 ), with a much more flexible license (lgpl 3).

I've used PyQt on several projects, but am happy to switch to PySide.

Regards, -Roy

What man is a man who does not make the world better? - Balien of Ibelin, Kingdom of Heaven

On Sat, Dec 9, 2017 at 12:13 PM, TW notifications@github.com wrote:

@roynielsen17 https://github.com/roynielsen17 sure.

I played a bit with PyQt recently, but guess I don't have enough time to do the GUI work. I could maybe help with the interfacing to borg, though. If code is Python, I tend to have a look / help, if not, then rather not.

Last time I looked, PySide was quite behind current Qt, so maybe PyQt makes more sense.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/borgbackup/borg/issues/2960#issuecomment-350498945, or mute the thread https://github.com/notifications/unsubscribe-auth/ALCwGJ5gwol0QLi3DKzMxlUhQE0AJESwks5s-tvrgaJpZM4PA-xI .

bkloppenborg commented 6 years ago

@marcpope Do you need any help with Borg Backup Server? I am about to move all of my machines over to borg and would likely replicate deployment scripts. Having a console like the screenshot above to keep track or send notifications would be of very high interest to me.

henfri commented 6 years ago

Hello, I just stumbled upon this: https://demo.burp-ui.org/ Have a look. It's a nice example of a to-be situation.

Greetings, Hendrik

Nebucatnetzer commented 6 years ago

Hi everyone,

I'm currently studying software engineering. For my "thesis" I would like to develop a GUI for borg. I've had this idea since quite a while and decided I do it for my thesis because it would allow me to provide quite some time to it. However since it will be my "thesis" I can't work on it as part of a project. It will be open source from the beginning however and when I'm finished and it's useful for someone I would be more than glad to open it up to everyone. At the moment I don't know if my school allows me to go forward with this project because I didn't submit it yet. That will happen sometime during this year before fall.

The idea is to create an application similar to "Back in Time": https://github.com/bit-team/backintime Which I think is quite a good programme. The major problem is that it lacks deduplication. Technology wise I thought about using Python because the main platform will be Linux but I would like to maintain crossplatform compatibility. At least technology wise, I don't think I will be able to code it completely crossplatform from the beginning. For that I'm to inexperienced. For the GUI part I thought about using Qt for the same reasons as with Python. I will have to work this out in detail as part of my project so this is not set in stone yet.

I just wanted to let you know that I'm planning to do this and maybe it might be useful if I'm allowed to do it and I don't produce a huge pile of garbage :).

The start of the project would be in fall 2018 and I have to be finished in spring 2019.

Best Regards

Nebucatnetzer

ThomasWaldmann commented 6 years ago

@Nebucatnetzer sounds good! :)

ghost commented 6 years ago

I recently wrote Borgend. It's not a complete GUI, but after configuration, does the behind the scenes stuff: https://bitbucket.org/tuomov/borgend

ThomasWaldmann commented 6 years ago

@vomout The first paragraph there does not even say it is a GUI. Also, if it works on Linux, maybe say so (not just not on macOS).

IIRC, I had visited that URL before, but guess you lost me after a few seconds, thinking it is just a scheduler/tray icon for Mac.

ghost commented 6 years ago

@ThomasWaldmann It's a tray icon, so a GUI-of-sorts. But no GUI configuration, etc. Novices can use it to trigger backups once configured by an expert. The README says it works on other systems, but without the tray icon.

henfri commented 6 years ago

@marcpope what is the Status of your project?

henfri commented 6 years ago

Hello Marc,

good to hear. it looks great! Can you tell a bit more about it? Who is 'we'? Are you going to relase it as open source?

Greetings, Hendrik

dragetd commented 6 years ago

I really love the projects and would very much like to hear more about them. But this issue is about a simple QT-GUI for borg and got very off topic.

It would be awesome if @marcpope could open a new issue and post updates and infos there. Then this issue could be cleaned up back to comments around the desktop/QT GUI for borg :-)

Nebucatnetzer commented 6 years ago

@marcpope This sounds like something very useful and it would be really great if you could open source it.

About my "thesis" idea. I got told that it is a worthy project which means I can start development in December. A mirror of the documentation repositoy can be found here: https://github.com/Nebucatnetzer/thesis edit: the thesis will be in German however the code etc. will be in English.

I'll inform you as soon as I've created the code repository.

henfri commented 6 years ago

@marcpope sounds huge!

Is it "open source"? I really don't know. I am open for suggestions. We've got hundreds of hours of programming in this project and honestly, it was never going to be more than an internal utility for our company, but I know the need is out there for something like this. So extra work is being done to make it a usable product for others.

I understand that. The same (hundrets of hours) applies to borg aswell though. So it's a give and take, and maybe in the end you will even profit from hundrets of hours that others may invest to futher improve.

Greetings, Hendrik

ghost commented 6 years ago

hi Marc, can I please offer a little advice?!

First, kudos on a really cool looking GUI for a BORG backup system. It looks more than terrific.

Second, I too am going to offer something to open source - and that's my room escape CREPE (Cloudburst Room Escape Puzzle Engine). I may charge a tiny bit for back-end services.

Here's what I would recommend. I see that this project is getting stymied. This may seem obvious but I would recommend choosing to make a much, much smaller partial list of stuff to do and get done. That will allow for a release 1.0. The old Leen approach.

Why? I need this now, is my selfish reason. But seriously, things like fancy graphics can wait. It doesn't need to be working 100%. Most of the UI can be left for later. Lots and lots of the long list that you posted above and that I see, can certainly wait.

And monetization? I think that's a great idea. Releasing to perhaps Mac OS X store and charging maybe $20 / month subscription would send you lots of money for further development on the project. Please get it on the Mac. There's already a Windows BORG solution.

I probably don't need to say this but the first iteration, the focus of the short list - would be to just provide a basic solution for backup, and restore. Just get it basically working for starters...

Anyway, my two cents!!!

marcpope commented 6 years ago

Move conversation for Borg Backup Server to here: https://github.com/marcpope/borgbackupserver

henfri commented 6 years ago

What Windows BORG solution does exist?

Nebucatnetzer commented 6 years ago

I'm not sure about the state of Borg on Windows. I've seen recently that it's only supported through the Linux Subsystem.

However, I plan to build my application with cross platform compatible technologies. I won't develop against Windows during the thesis due to time constraints Once the thesis is finished I would welcome pull requests to make it work on all platforms.

ThomasWaldmann commented 6 years ago

@marcpope can you open a ticket there, publish the full url in your comment above, and start moving your content to there?

I'ld like to have all off-topic stuff removed from this ticket by end of august. Thanks.

ThomasWaldmann commented 6 years ago

Copy and Paste.

On July 27, 2018 9:47:51 PM GMT+01:00, Marc Pope notifications@github.com wrote:

@ThomasWaldmann not really sure how to move the content there

-- You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub: https://github.com/borgbackup/borg/issues/2960#issuecomment-408534620

-- Sent from my Android device with K-9 Mail. Please excuse my brevity.

enkore commented 6 years ago

https://github.com/horazont/cuteborg

myzinsky commented 6 years ago

I just discovered borg.

I wrote a rsync based qt client recently:

bildschirmfoto 2018-08-30 um 22 35 10

https://github.com/myzinsky/derTimeGeraet

It should be very easy to adapt it to borg ... I will do it when I find some time ...

It even has a tray: gears that turn if it's doing the backup:

image
ThomasWaldmann commented 6 years ago

haha @ project name.

ThomasWaldmann commented 6 years ago

dieZeitMaschine was already taken? less of a mix up.

myzinsky commented 6 years ago

Yeah I wanted to mix it up with apples time machine and "der Gerät" https://de.wikipedia.org/wiki/Alkadur

„Der Gerät wird nie müde, der Gerät schläft nie ein, der Gerät ist immer vor der Chef im Geschäft und schneidet das Dönerfleisch schweißfrei.“

ThomasWaldmann commented 6 years ago

would be cool to have 1 gui project with bus factor > 1 in the end. :)

myzinsky commented 6 years ago

@ThomasWaldmann: I'm willing to cooperate :D

I mainly have problems with Apple's time-machine, it really sucks since some months, backups with it take ages ... Back in my linux days I used a lot BackInTime, therefore my qt tool is very similar to that.

myzinsky commented 6 years ago

I integrated Borg in my tool ... comments welcome :)

henfri commented 6 years ago

Hello,

thanks for sharing. Can you tell us about the features that are in already and that are planned? For me a very useful feature would be if the UI would run cross-platform and communicate via the network to the server. Is that possible?

Greetings, Hendrik

Nebucatnetzer commented 6 years ago

@henfri, I don't know about the others. For my application I plan to support as many borg features as possible/sensible.

The settings are currently read from an .ini file but there's currently no GUI to write to it. It's however something I would like to provide.

There are many more features I would like to add. I've listed a few here: https://github.com/Nebucatnetzer/thesis/blob/master/projektantrag/projektantrag.org#zielsetzung Unfortunately it's in German but I'm going to add those to the project repo in English once that is up. Cross-plattform support is a must have target and making backups over SSH has priority 5/5 (it is very easy to do and in a few tests it didn't really mater if the repo was local or on a server except for the speed difference).

MTrage commented 5 years ago

Since I myself wanted a GUI that corresponds to my wishes, I created a simple one. It meets my requirements but is currently being extended by me.

For Borg users who want to have a look or use it, here is the link: https://github.com/MTrage/Borg-BackUP-GUI

ghost commented 5 years ago

Hi Marc-André,

Hey that was my idea I gave to you to keep the GUI simple. At the time it was exceedingly complex.

Thanks for listening to me. I will sure use this now…. It’s been what? Maybe a few months??

Glad you got it done, and a BIG CONGRATS…. ;-)

Cheers,

Ron Jr.

On Sep 29, 2018, at 1:03 AM, Marc-André Tragé notifications@github.com wrote:

Since I myself wanted a GUI that corresponds to my wishes, I created a simple one. It meets my requirements but is currently being extended by me.

For Borg users who want to have a look or use it, here is the link: https://github.com/MTrage/Borg-BackUP-GUI https://github.com/MTrage/Borg-BackUP-GUI — You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/borgbackup/borg/issues/2960#issuecomment-425625833, or mute the thread https://github.com/notifications/unsubscribe-auth/ACINi8hjUyHXrwHaSpOUU_7Og6W411yXks5ufylhgaJpZM4PA-xI.

ghost commented 5 years ago

Oh here’s my app’s website - please try it!!!

Https://www.goldengauntlets.com

On Sep 29, 2018, at 1:17 AM, Ron Packard Jr rjpackard@me.com wrote:

Hi Marc-André,

Hey that was my idea I gave to you to keep the GUI simple. At the time it was exceedingly complex.

Thanks for listening to me. I will sure use this now…. It’s been what? Maybe a few months??

Glad you got it done, and a BIG CONGRATS…. ;-)

Cheers,

Ron Jr.

On Sep 29, 2018, at 1:03 AM, Marc-André Tragé <notifications@github.com mailto:notifications@github.com> wrote:

Since I myself wanted a GUI that corresponds to my wishes, I created a simple one. It meets my requirements but is currently being extended by me.

For Borg users who want to have a look or use it, here is the link: https://github.com/MTrage/Borg-BackUP-GUI https://github.com/MTrage/Borg-BackUP-GUI — You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/borgbackup/borg/issues/2960#issuecomment-425625833, or mute the thread https://github.com/notifications/unsubscribe-auth/ACINi8hjUyHXrwHaSpOUU_7Og6W411yXks5ufylhgaJpZM4PA-xI.

m3nu commented 5 years ago

Took a shot at a Borg GUI as well. Here what I have so far. Features are roughly as discussed here, except that it uses the older Qt Creator instead of Qt Quick to keep it nice and boring.

Here the repo. I'll upload a binary package tomorrow or so. Currently only tested on macOS.

MTrage commented 5 years ago

@m3nu this looks good. Finally some competition in the area of BORG GUI :D

I will upload my newest version of BORG BackUP GUI in the next days (maybe tomorrow (sunday)).

Have fun coding.

m3nu commented 5 years ago

Next update is out. Main changes:

enkore commented 5 years ago

Using a src/ based project layout might save you a bunch of trouble in the future (e.g. when using unit tests or tox or ...).