Kup is created for helping people to keep up-to-date backups of their personal files. Connecting a USB hard drive is the primary supported way to store files, but saving files to a server over a network connection is also possible for advanced users.

When you plug in your external hard drive Kup will automatically start copying your latest changes, but of course it will only do so if you have been active on your computer for some hourse since the last time you took a backup (and it can of course ask you first, before copying anything).
In general Kup tries to not disturb you needlessly.

There are two types of backup schemes supported, one which keeps the backup folder completely in sync with what you have on your computer, deleting from the backup any file that you have deleted on your computer etc. The other scheme also keeps older versions of your files in the backup folder. When using this, only the small parts of your files that has actually changed since last backup will be saved and therefore incremental backups are very cheap. This is especially useful if you are working on big files. At the same time it's as easy to access your files as if a complete backup was taken every time; every backup contains a complete version of your directories. Behind the scenes all the content that is actually the same is only stored once. To make this happen Kup runs the backup program "bup" in the background, look at https://github.com/bup/bup for more details.

One important note is that bup will work regardless of which filesystem is used on the external drive. You can use NTFS or FAT32, unlike some other backup solutions which require hard links to work!

What the Kup backup system consists of
[li]Configuration module, available in your system settings. Here you can configure backup plans, what to include, where to store the backup and how often. You can also see the status for the backup plans here.[/li]
[li]A small program running in the background. It will monitor to see when your backup destination is available, schedule and run your backup plans. It has a system tray icon that shows up when a backup is long overdue.[/li]
[li]Kioslave for accessing bup archives. This allows you to open files and folders directly from an archive, with any KDE application.[/li]
[li]A file browsing application for bup archives, allowing you to locate the file you want to restore more easily than with the kioslave. It presents a merged view: inside each saved folder you can see all the files it ever contained (well, that has been backed up at least). Select a file and you can see which different versions of this file that exists in the bup archive. You can open and view the files from here and it also helps you restore files or folders. [/li]

Detailed list of features
[li]backup types:
- Synchronized folders with the use of "rsync".
- Incremental backup archive with the use of "bup"
[/li]
[li]backup destinations:
- local filesystem path, monitored for availability. That means you can set a destination folder which only exist when perhaps a eSATA harddrive or a network shared drive is mounted and Kup will detect when it becomes available.
- external storage, like usb hard drives. Also monitored for availability.
[/li]
[li]schedules:
- manual only (triggered from tray icon popup menu)
- interval (suggests new backup after some time has passed since last backup)
- usage based (suggests new backup after you have been active on your computer for some hours since last backup).
[/li]

Needed backup programs

To actually create backups of your data you will need either "bup" or "rsync" installed. They
provide the implementations for the two different types of backups that Kup supports.

Helping out
If you want to help out with translation, check out https://www.transifex.com/projects/p/kup/. There you can see the current status of all current languages and also request a new language to be added!

If you do test new features that are not in a released version yet, please let me know if it works or not. This project is still small enough that it is very useful to get feedback on any testing done. Last changelog:

Kup Version 0.7.1 2 months ago

- Important bugfix: saving big backups could cause plasma workspace to freeze for a very long time.
- Change to not show list of every file that has ever been deleted in the bup log file anymore.
- Updated translations, adding two new languages: Czech and Dutch.

Hehehe.. thank you. :)
I created this thing because I think there should be a simple and well-integrated backup solution installed by default with KDE desktop distros, but there was none to be found.
Despite me being quite shy to promote my own stuff there could be something changing soon... ;-)

Oh, that looks like a weird one. Don't know what could be happening there, sorry. The only advice I can give is to run "qdbusviewer" and look at the system bus, see if you can see the UDisks2 objects there.
Not sure if that error message is related to the fact that the drive is not listed.. but it does seem quite likely, yes.
If it is, then I would say that the problem lies outside of Kup, some issue with udisks2 or with how libsolid interfaces with udisks...

Because the underlying "bup" program does not use kioslaves it is not directly possible, no.
But, I'm sure there are fuse or kernel-level filesystem implementations of most network storage protocols... If you can mount a remote storage to a local folder then you can just select that local folder as the backup destination. Kup will monitor the local path to see when it appears/disappears... So the system tray icon will only be visible when the destination filesystem is actually mounted.

Hope this helps! And I also hope this solution is good enough for people who are advanced enough to know about these things.

Yes,
it's the thing I've done at the end...
I've used smb4k to discover and mount the SMB share and then I've pointed Kup to that directory and it worked...
(I'm using as the destination a NAS that uses SMB)
Sadly, I forgot to report my solution here as soon as I had found it.

Anyway, thanks a lot!
Your program works really well.

PS: It would be nice if there was a way to stop the backup. Could you implement it if you have spare time and you don't __really__ know what to do? Thanks!

The rsync stuff is already done, not so well tested but so simple that I don't expect much of problems with it. But I got started doing all these other things that I now also want to finish before making a release with new features. I have a couple of weeks off from work right now so I hope to make some progress, but can't promise anything.

If you are able and willing to compile from sources then the features are already in the master branch on github. Let me know how it goes if you do try it!

the kup daemon doesn't do any scanning of filesystems, it only registers itself (with libsolid) to be notified when devices appear or disappear. Very lightweight, could hardly be done in any simpler or more efficient way.

Just run it for the first time - 19Gb of data has been put on the USB drive although I can't see any files I recognise through the file manager. I assume this is because of encryption?

Anyway the KDE Notification keeps nagging me about 1st backup and kup thinks the backup plan hasn't been run yet. There was an error log in the notification area about not copying files. If the backup had completed normally on reopening the program should I see a restore option as I cannot currently see one?

So yeah, the stored files are not encrypted but are also not directly accessible. (they are chopped into small pieces which are then grouped together into big "packfiles")
The reason for this is to save space when a file has only changed a little bit between one backup and the next.
You can access the files if you have python-fuse installed (hopefully that should come automatically when you install bup). In that case you can plug in your backup harddrive, click the backup icon in the system tray and select "Show Files" for the backup plan. I'm working on a nicer way to do this for the next version, I'm adding a separate program to show the history of your files and allow you to open the different file versions and also to restore them... it's gonna be nice! :)

And yes, only if the backup completes without errors will it get registered as having taken a backup (and then not ask you again about backing up... not until it is time for a new backup again.)

Hi
Just installed the program (Kubuntu 13.04 64 bit beta 2) which looks great but I don't seem to be able to start the actual backup process.

I'm proposing to backup to a USB Hard drive. During kup configuration the disk is detected. However the profile is at all times greyed out in the system tray and hovering over the system tray dialog it says the destination is "unavailable". This is despite the disk having been mounted and is viewable in dolphin.

Any idea what's wrong please? I was thinking permissions but the same thing happens if I tell kup to backup as root user.

Let's see.. I haven't included much of support functions in the program to help figuring out what is wrong. Let's start with the most basic things...
1. Could you post the settings file here? It's found at .kde4/share/config/kuprc in your home folder. The important setting here is the "External drive UUID".
2. Also please post the output from running the command "sudo blkid" while the USB drive is plugged in. The UUID should match. If the filesystem is fat32 on the USB drive it will be a bit different.

Kup Version 0.7.1 2 months ago

- Important bugfix: saving big backups could cause plasma workspace to freeze for a very long time.
- Change to not show list of every file that has ever been deleted in the bup log file anymore.
- Updated translations, adding two new languages: Czech and Dutch.

Kup Version 0.7.0 9 months ago

- Change system tray icon from simple popup menu to plasma applet - allows you to see status of backup plans there instead of having to open configuration window.
- Add progress reporting with percentage and transfer speed.
- Add option to pause and abort the saving of backups.
- Change folder layout of backups of sync type. Before you would need to go through layers of folders inside folders before reaching your files, now Kup tries to minimize this problem while still making sure that the folders have different names.
- Detect if user is shutting down system while saving of backup is ongoing - shows a warning and gives user a way to cancel shutting down.
- Kup now prevents power saving system from suspending or hibernating the computer while backup saving is ongoing.
- Kup now detects if laptop is on battery and in that case even fully automatic backups that normally don't ask first will now ask if a new backup should be saved.
- System tray icon will now stay hidden until saving of backup is long overdue. Before it would be shown anytime the backup drive was plugged in.
- Improve wording of some phrases and the icon choices in a few places to make things clearer.
- Add button for duplicating an existing backup plan.
- Add notification for successful completion of backup saving, before Kup would only notify you in case of problem.
- Fix a crash that could sometimes happen when loading a new configuration.
- A bunch of smaller bug fixes and layout improvements, mostly in the configuration module.

6 years ago

Kup Version 0.6.1
2016-06-13:
- Show hard drives that are not listed as hotpluggable, but still considered removable. Fixes some cases where a plugged in USB3 harddrive did not show up and could not be selected as backup destination.
- Now allows free selection of unreadable folders but instead warns the user about any unreadable files or folders in the set of current folders to be backed up.
- Now detects if there are any symbolic links being backed up that points to something not being backed up. Shows a warning in that case.
- Updated translations, added Bosnian language.
- Improved messages in the log file.
- Bugfix for the case of no folder selected in the source selection. The entire folder selection tree was impossible to use because of a bug in Qt.Kup Version 0.6.0
2015-05-14:
- Ported the whole application to KDE Frameworks 5.
- Small bugfix for detecting problem with write permission for the backup destination.
- Please note that there are not so many other applications ported yet, so looking at files directly from backup archive (without restoring the files first) can be a problem. Applications based on KDE libraries version 4 will not be able to peek inside a bup backup archive. If you need that, keep using 0.5.1 instead.
- The default version linked from here is still 0.5.1, packages and source code for 0.6.0 is available at https://build.opensuse.org/package/show/home:simper:kup/kup-kf5
- Ubuntu packages are available at https://launchpad.net/~martin-loschwitz/+archive/ubuntu/kup/+files/kup_0.6.0-2_amd64.deb

Kup Version 0.5.1
2015-03-20:
- Bug fix for source selection: there was a situation where the folder selection collapsed and could not be expanded when dealing with hidden folders, this has now been fixed.
- Expand to show selected hidden folders when enabling "show hidden folders".
- Add ".local/share/Trash" as a default exclude for new backup plans.
- Change how includes and excludes are shown in the source selection, hopefully this way it should be clearer what will be backed up.
- Add an error message, correct some texts, update all translations. Contains big improvements to polish, german, italian and portugese translation.

Kup is now available in 12 languages, 7 of them are complete translations! The remaining 5 are about 70% translated.

Kup Version 0.5.0
2014-10-25:
- Add option to generate recovery information that can be used to fix broken bup backup archive.
- Add option to do integrity testing of bup archive every time a new backup is taken. In case something is broken and you are generating recovery information it will ask you if you want to try repairing the files.
- Now the configuration dialog warns about dataloss when using rsync in combination with fat32 or ntfs.
- Keep a log file of last backup job, can be viewed from system tray menu.
- Bugfix for viewing files in a bup archive containing more than 1000 separate backups.
- Cosmetic fixes and more informative texts in the configuration dialog.
- Add complete translation to Chinese(taiwan) and Lithuanian.

Kup Version 0.4.2
2014-05-09:
- Bug fix: store bup index in backup so that .bup folder in home directory is not needed, it was not being initialized anyway.. that was the real bug.
- Bug fix: allow user to select sources from /run. Internal hard drives could be mounted there, so it's a valid usage scenario.
- Bug fix: fix starting the monitoring process when enabling backups for the first time.

Kup Version 0.4.1
2014-03-15:
- Bug fix: detect when a new filesystem is mounted on a monitored path.
- Now with complete German, Polish, Russian, French, Portugese, Spanish, Tagalog, Swedish and Italian translations. Woohoo! A big "thank you" to all translators!

Kup Version 0.4.0 beta 1
2013-10-08:
- Add kioslave for accessing files and folders directly from any git archive (including bup archives, of course!). Comes complete with support for metadata scheduled to be available with the soon-to-come 0.25 version of bup. Please test! Just type "bup://" in a kde-based filemanager (dolphin, konqueror, krusader et al)
- Add a new application called filedigger, it helps you find the right version of a file and then also helps you restore that file. You can open folders and files to have a look at them before restoring, thanks to the new kioslave.
- Add rsync-type of backups.

Please help test the above new features! And now is also the time to translate all the new texts, please help adding your language!

Kup Version 0.3.2
2013-05-20:
- Add german, italian and tagalog translations.
- Make it more difficult to create a backup plan without a destination. (Select first usb drive automatically when connected, warn user if no drive is selected when saving)

Kup Version 0.3
2013-02-20:
- Adds an option to take the backup as root. Useful when you want to backup system files which needs root access to read.
- Now checks if you are inactive (no mouse or keyboard activity) when accumulating usage time. For instance, Kup will no longer count time watching a movie on your computer as active usage time.
- Adds ability to configure which compression level is used for backups.
- Adds the option of selecting/deselecting hidden folders.
- Adds infrastructure for translations and a swedish translation. Help with other languages would be appreciated!
- Now sets the CPU and (on linux) the IO scheduler priority of the backup processes to be very nice, just to minimize risk of a running backup disturbing you.
- Fixes a couple of bugs in the folder selection tree.
- Shows more info about external drives connected and now also remembers more info about the drive you have selected.
- Now uses the bup index file in your home directory instead of having the index file located in the destination archive. This can perhaps give better performance in some scenarios, not tested.
- Adds a few hidden folders in your home directory as default excludes, should be useful for most people.

Kup Version 0.2
2012-02-13:
- Introduced a new scheduling mode, Usage. Monitors how long you've been logged in since last backup was taken and suggests new backup after configured number of hours. Made this scheduling mode the default.
- Made a new systray icon (supposed to look like a safe... you judge..).
- The progress notification thing was just ugly & annoying, removed it. Now just showing an animated icon when taking a backup.
- Added option to never ask user before starting to take a new backup.
- Improved error reporting
- Big code cleanup for more maintainable code
- Made the config module's way of detecting/starting the daemon process more reliable.
- Systray icon tooltip now contains info on backup plan status.
- Systray icon now shows up with a red warning symbol if a plan has "bad" status; more than three times the backup interval has passed since last backup.
- Bug fix, already plugged in devices didn't show up in the list for selecting external destination drive.
- Bug fix for local filesystem destination: now detects if destination folder becomes available after a mount.