Selfhosted
A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.
Rules:
-
Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.
-
No spam posting.
-
Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.
-
Don't duplicate the full text of your blog or github here. Just post the link for folks to click.
-
Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).
-
No trolling.
Resources:
- selfh.st Newsletter and index of selfhosted software and apps
- awesome-selfhosted software
- awesome-sysadmin resources
- Self-Hosted Podcast from Jupiter Broadcasting
Any issues on the community? Report it using the report flag.
Questions? DM the mods!
view the rest of the comments
You probably want to go into a bit more detail on exactly what you want to backup. Are you talking the entire system, flat files, databases...?
Docker configs, sensitive documents, pictures, a limited amount of video files...
Cron + rsync is always a bulletproof solution. Simple bash script that runs every X minutes to sync to a network target. Wouldn't need to be only when the machine starts as you mentioned.
I will probably start with this approach and see where it leads me, thanks!
Since you're interested in this kind of DIY, approach, I'd seriously consider thinking the whole process through and writing a simple script for this that runs from your desktop. That will make it trivial to do an automatic backup whenever you're active on the network.
Instead of
cron
, look into systemd timers and you can fire off your script after, say, one minute of being on your desktop, using a monotonic timer likeOnUnitActiveSec=60
.Thinking through the script in pseudo code, it could look something like:
rsync -avzh $server_source $desktop_destination || curl -d "Backup failed" ntfy.sh/mytopic
This would pull the back from your server to your desktop and, if the backup failed, use a service such as ntfy.sh to notify you of the problem.
I think that would pretty much take care of all of your requirements and if you ever decided to switch systems (like using
zfs send/recv
instead ofrsync
), it would be a matter of just altering that one script.