Developer documentation

Hi guys,

I have been using URBackup for a few days. I think it is a very useful software and some functionalities involving cloud storage would be very interesting. I have been thinking about the complexity of developing a functionality to store archived backups directly in Amazon S3 storage. I have been reading the source code, but it’s a bit difficult to grasp a way to add new opperations without a better understanding of the code structure and the way present functionalities are implemented. I guess this functionality implies modifications in web interface, database and the way the archived backups are stored/recovered.

It would be great to have some developer documentation explaining the implementation. At least, a small explanation of the code. Are developer documents available anywhere?

There currently isn’t much in the way of developer documentation (or comments in the code), but I’d be willing to write/add that in the areas where they are needed.

The archived backups are currently only a flag in the database telling UrBackup not to remove the backup. I think the easiest option to add S3 support would be to allow the execution of a custom command when archiving/unarchiving calling e.g. duplicity to sync the folder to S3. I can also think of a separate folder where archived backups may get copied to which could be mounted e.g. by s3ql.
The nicest, fully integrated way would mean implementing a lot of the duplicity/s3ql functionality, as you would want the S3 backups to be deduplicated.

The archiving is done here: https://github.com/uroni/urbackup_backend/blob/next/urbackupserver/server_archive.cpp

Thanks. I’ll give it a try and comment here if the results are positive.