A Dashboard to monitor restic backups
Since I got some time on my hands I decided to do a little project using python and svelte5 . Primarily meant as a refresher to use unfamiliar technologies and as a way to setup an experimental playground.
I prefer to do something useful so I came up with this dashboard for restic . restic is a very fast and reliable backup software which I’m using for over a year now and so far has never disappointed me.
Obviously those backups run on a time schedule which so far worked fine. Paranoid as I am I often go to check on my backup server to verify that the last backups ran correctly. Though feasible it’s an annoying task.
That’s where the idea for the ResticDashboard comes into play. At this initial stage it’s only purpose is to provide an overview of all my backups showing them in red when the backup didn’t ran for a specified amount of time.
I chose python for the backend since it’s several years ago that I’ve done something real using python except for the occasional scripting job.
svelte was my first choice for the frontend as I was already somewhat familiar with it. In the past I’ve also used angularjs and react . Even though I liked react I found svelte much more appealing. I could have gone down the road using vuejs or solidjs to check out those frameworks but I’m not a frontend dev and I didn’t want to put too much onto my plate so I can’t make any comments on these frameworks. However I got somewhat lucky as svelte became a mordernization with svelte5 which I used and I won’t look back (runes rule!).
The ResticDashboard is meant to be run in my homelab so this software doesn’t address any security related issues. It runs behind my traefik reverse proxy in a protected network unaccessible from the outside. So if you want to use it, it’s up to you to think about potential security issues.
The backend will be bundled as a pex executable in an archive together with the frontend code. It’s prepared to be installed as Linux service.
I’ve created a project walkthrough so you might get some first impressions about the software and the project structure:
Be aware that the project is meant as a useful playground for myself, so there are ugly corners I’m already aware of. And I suspect that professional python and/or frontend devs might have some comments about the codebase. That’s what the issues section it github is for.
Nevertheless I would be happy to hear any kind of feedback as I think that this application might actually become a useful tool for others as well.