Ask HN: Developer Workstation Backups

39 points by a2tech ↗ HN
What is everyone using these days? I used to be a firm believer in Crashplan for both my Linux servers as well as my Mac development machines, but Crashplan really doesn't play well with all the new automatic syncing stuff that Apple has (like fetching copies of your images and files only when necessary) and Dropbox's intelligent sync things. On my Macs Crashplan is always mired in some high CPU activity and consuming disk space. And they stopped supporting Linux machines that don't have a graphical environment (yes I know all the tricks for managing it remotely and they're worse).

So long story short, what are people using to reliably backup their machines without a lot of fuss? Most services don't support Macs or they don't support Linux, or they don't do infinite revisions.

51 comments

[ 2.6 ms ] story [ 93.2 ms ] thread
The most important stuff is backed up by version control, obviously. For everything else I use Syncthing.
"Is Syncthing my ideal backup application?

No. Syncthing is not a great backup application because all changes to your files (modifications, deletions, etc.) will be propagated to all your devices. You can enable versioning, but we encourage you to use other tools to keep your data safe from your (or our) mistakes."

https://docs.syncthing.net/users/faq.html#is-syncthing-my-id...

My workstation backup is a word document that explains how to quickly reproduce a configured workstation, given the usual sort of Windows fresh install we get from IT. This is useful because, far more often than needing a backup restored, we have new people starting, and established folks needing fresh clean Windows images because theirs are trash from 12 months of development. It's just a side benefit that if somebody's machine were to fall into a bathtub, we could deal with that, too.

All documentation and non-code files are in OneDrive, SharePoint, Teams, or good old fashioned shared network drives. IT handles backing that up for us. $Deity bless them, we've never lost anything from a database or file storage.

I just don't store anything locally that I don't mind losing. If we are talking about software development then everything is tracked in git. If I'm still part way through some changes at the end of the day I will just `git commit -am "wip"` and push to a remote branch for safe keeping. Then you can rework the commit[s] locally before opening / flagging the PR for review.

Documents and stuff are all in google docs/drive or something like that, all my dotfiles / config is in a git repo. I even work like this on my personal machine which is also used for gaming. In case of failure I can just wipe the OS drive and start fresh without any worries.

>Documents and stuff are all in google docs/drive or something like that

There have been horror stories of people randomly loosing access to their Google account, probably because some automatic check decided that they violated some term of use. I see how convenient it is to work "in the cloud", but if those are important documents you should keep a local copy as well.

Yes, and/or a second copy mirrored to a completely different cloud provider that has no dependencies on your main provider. (Including login dependencies!)
I have OneDrive sync both ways. Odds my machine is fried at the same time M$ decides they hate me is a risk I'll take.
(comment deleted)
I run macOS on an iMac on an external SSD and then have another SSD connected to the machine that is a Time Machine clone of the first drive. The internal drive on the iMac acts as an emergency boot device.
Github and my organization's OneDrive account.

The actual computer/OS that I happen to be using is entirely not a concern for me anymore. Even accounting for installing VS2022, office, etc., I can go from zero to productive in about 30-45 minutes.

Fast storage and networks changed everything for me.

git, docker vim

nothing else, if my machine crashes, I just install linux, git and docker and jump back into it.

when the source has been checked out by git, I run the build script which fetches the build environment container for me, which contains the interpreters, compilers, libraries and other tools I need.

I went to restore an old Crashplan backup of my desktop PC before I started traveling. The restore hung for at least a week without downloading anything. I'm guessing it was put on something Glacier like due to age, but there was no indication of how long it was going to take to get the files, and I was left wondering if they even still existed.

Run, don't walk, imo. I swapped to backblaze.

https://rclone.org/ + backblaze b2.

It Works on every desktop and server and takes minimal cpu and memory. Backblaze b2 buckets can be configured to retain overwritten copies, or you can take periodic snapshots within b2.

my dev workstation is so simple i don’t even really need to back it up. All my projects are stored on git. Even assets are stored in the cloud somewhere. I can copy sensitive data like recovery keys onto USB sticks, and occasionally back up everything to a hard drive.

But the actual workstation is IntelliJ, git, language tooling, neovim, fish shell, and firefox. The rest are constantly changing based on the project, e.g. language tooling and libraries, and most projects either install these automatically or make them clear to install.

i’ve set up my dev workstation so often it takes me like 30 minutes to go from fresh OS to working on a project. maybe one day ill make a shell script or something but the software i need changes so often it doesn’t really matter.

I have around the same - any setup of systems I am working on if will be gone I will just learn to set it up again.

Besides that code is in GIT and passwords are in password manager.

Arq backup + GSuite/Workspace as a target. Needs fewer resources than Backblaze, and is (was?) cheaper than it. I had to exclude Dropbox etc. folders from Arq because of the warnings about these online-only placeholder files, and I would prefer it if we could silently ignore those.

Additionally, I recommend a solution that can restore entire volume images in case of boot drive failures. Time Machine or Carbon Copy Cloner on Mac and Macrium on Windows are nice choices in my experience. Acronis was also very reliable in the past, but since then, they have shifted to yearly nonsense upgrades with questionable value. It reminds me of the transition of Nero Burning ROM into the Nero Media-whatever-center-thingy, where the core functionality remained unchanged while more and more auxiliary features were added.

for OSX, network time machine.

for linux, ZFS, and a couple of scripts to do snapshotting and copying the backups to a target host.

I'm using Kopia + {Wasabi, B2}
Second! I'm also using Kopia + B2 (as well as LAN-based filesystems), it's incredible!

Would like to add a second cloud destination as a redundancy (especially because B2 is so cheap that it's basically free), but I haven't gotten around to it yet. Will check out Wasabi!

I push my code changes to origin. I copy my media files to a local NAS. Other than that, nothing. In 30 years I've never lost a file. My .vimrc was around 8k at one point, but I pretty much use vanilla vim now and defaults for most things.

I'm not saying this is the correct approach but it has worked for me.

Treat your workstation much like one would a Docker container: everything should be ephemerally configured, driven by automation, and reproducible on the fly. Always commit frequently, backup large files to cloud storage, and wipe your device clean on a regular basis.
Arq Backup, with both a Linux VPS and a local drive as the target. Plus attached Time Machine backup.
I do software development for living and do not have any special backups for dev related files other than git. For general office documents I use Seafile (selfhosted Dropbox equivalent) and have redundant copies of important files on multiple machines and the central Seafile server. If I need real backups with the ability to restore a set of files in a specific point in time I use restic.
tarsnap, if you want a decent all-in-one solution. It's pricey though.
restic . Use whatever you want for the back end. If there's important stuff on the machine that's not anywhere else, do NOT rely on any one cloud service.
borgbackup + local unraid server + cron
* Dropbox for documents and important files

* SyncThing (to local Synology and cloud server) for my root git folder (I use the following "style" ~/git/<company>/<project>)

* CarbonCopyCloner (to T7 SSD) running daily for a full clone

* Backblaze for my cloud copy

* Time Machine to my Synology just to be safe

Not sure if that meets "without a lot of fuss" but it's all on auto-pilot for me and I never think about it.

I like https://www.borgbackup.org/ and you can get a relatively cheap storage plan on rsync.net just for Borg (https://www.rsync.net/products/borg.html)

Retrieving backups is a little manual. Perhaps someone has created a nice GUI for it.

I just mount the backup repository and then copy what is needed.
Datto...I frickin love that company.

Not easily accessible though :(

codeberg.org for code and notes, rsync to local HDDs, SyncThing between workstation, laptop and mobile, Sync.com for things that I need to store privately in the cloud
Any dev related stuff is checked in, so dockerfiles and code, so that’s easy to spin up again.

Then I have a folder in my home called Sync that has a library and resources folder inside. Documents and Pictures etc are linked to library, and resources contains docs or things that I want to keep.

The sync folder is setup in syncthing to my laptop and nas, then the nas also backups up that to Backblaze.

Dotfiles and ansible books are in GitHub, via chezmoi.

Otherwise I don’t mind if I lose anything else.