You could instead have your “primary” remote (a la “origin” in GitHub) in a VPS hosted by a hosting service you trust. The idea is basically just that you don’t actually need a forge to host your git repo, you only the git repo in a file system and an http connection.
For personal projects, I work on my main laptop and have a remote set to my server which runs in my garage. I push changes from my laptop there. That server gets backed up to a S3 like cloud storage bucket. The backups are all encrypted on my server before going to the cloud.
All you would have to add is the off-site backup from your laptop. If you want to share your code on Github, Codeberg, GitLab, etc. you can just add additional remotes in git and the push will go to all of them.
I actually use rclone. It’s kind of rsync++, so only copies differences. It also handles the encryption for me. I think I have it running about every 5 minutes on that server. Most of the time it only runs for a few seconds to verify that nothing has changed.
Could you elaborate on the multiple remotes setup please? Does it mean I keep multiple laptops running each acting as a git remote?
Currently I have my primary PC and one refurbished ThinkPad with an external HDD to run pihole, jellyfin etc.
I’m thinking this would not be a very safe setup - being an HDD and old thinkpad and all.
You could instead have your “primary” remote (a la “origin” in GitHub) in a VPS hosted by a hosting service you trust. The idea is basically just that you don’t actually need a forge to host your git repo, you only the git repo in a file system and an http connection.
That makes sense actually. So it’s an IaaS setup instead of GH’s crappy Saas.
For personal projects, I work on my main laptop and have a remote set to my server which runs in my garage. I push changes from my laptop there. That server gets backed up to a S3 like cloud storage bucket. The backups are all encrypted on my server before going to the cloud.
All you would have to add is the off-site backup from your laptop. If you want to share your code on Github, Codeberg, GitLab, etc. you can just add additional remotes in git and the push will go to all of them.
This is pretty cool, so you have a cron job to secure tarball and push it to a cloud? How often works for you?
I actually use rclone. It’s kind of rsync++, so only copies differences. It also handles the encryption for me. I think I have it running about every 5 minutes on that server. Most of the time it only runs for a few seconds to verify that nothing has changed.