Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.Sign up
web: Implement api/web server for restic (WIP/PoC) #1963
What is the purpose of this change? What does it change?
It's an early status / proof of concept, but I want to have feedback as soon a possible.
To work and prototype fast (and maybe ugly ;), the views use bootstrap and fancytree, the treeview is lazy load using the /api.
You can access to the webserver with :
json api respond to :
My point is not de build a web ui to manage all restic functions, but the idea is to be able to navigate, stats, browse and do quick restore / download from a web page.
I think having endpoint api build in restic would make this easier (also for other building an ui).
@fd0, somes questions :
Was the change discussed in an issue or in the forum before?
Found issue #60 : Implement web server to view backups
The POC appears to be functional (but not buildable form the make file). Nice to see a GUI for snapshots. Is the intention to also be able to download these files? Good job so far!
I would like to see the following features:
Hi @kitone! Thank you very much for your contribution!
I'm sorry about the rather long delay, restic is a fun project that I'm doing in my spare time, and I the last few weeks have been very busy real-life wise.
Very much, at least for the use case for restoring/accessing files. The
So as long as the web UI you're building is restricted to restoring/accessing files you have my full support :)
That depends on the data that is to be queried: the restore size probably won't change, but is not saved anywhere, so for now it needs to be re-computed.
Did you find the design document yet? It describes the data we store in the repo, after reading it you should have a good understanding of what's available. Only the data structures that have been saved to the repo have an ID, and since we don't save every single node by itself, only trees (collections of nodes) have IDs.
I'll try to have a look at the code shortly. Please let me know if there's anything you need! And don't hesitate to bug me here several times, GitHub issues get complicated/forgotten/convoluted very fast. I'm trying to keep up, but the project is so big already that I sometimes get lost and forget things. ;)
I'd recommend a whole other application called something along the lines of
Really it's too much to add a web command to restic but if thats what you want, then provide it as a plugin, the plugin being another repo altogether that handles the web stuff for restic, build it with golang or nodejs for the backend and reactjs of angularjs for the frontend.
Just my two cents, please don't use jQuery, as the application infrastructure grows you will see the need for something like angularjs or reactjs or backbonejs for that matter.
I do agree that while this is nice, this would probably be best as a separate repo/project, not integrated into restic directly. Restic's global
@fd0 Did you already decide on how you'd like to integrate a 'browse' functionality for restic? I.e. either add it to restic's core or implement it as a separate application?
I think it would be great to have it in restic's core similar to the fuse mount to make it easy for users on Windows to browse their repository and restore selected files / folders from an earlier snapshot. I don't know how useful the
After closing #2125, I think an API provided by restic (after being started by