Hi,<p>I am constantly annoyed by the fact that when I use 2 (or more) different systems (e.g. laptop, and desktop pc) it is difficult to keep them in sync.<p>What do I mean with "keep in sync", for example:<p>1) write code on laptop use git and commit to repo, pull when home<p>2) Install vscode on laptop, come home have to install again<p>3) Install cuda drivers on laptop, come home install cuda drivers again<p>4) Create a non-gitable file, like word documents (XML), binary, ... come home and use USB stick<p>There exist software like git which solves 1) pretty well, maybe Dropbox to solve 4).<p>2) and 3) probably belongs to code as infrastructure, and I know there are tools for this (Terraform, Ansible). I have no experience with these tools, but somehow have the impression that they are rather used for industry, cloud orchestration and not for my simple home-pc laptop problem.<p>I could even continue. For my passwords I use KeepassXC. In this case you have an encrypted password db you should NEVER EVER lose. So what do I do, I keep it on my laptop, home pc, usb stick. Which is super annoying when creating a new password because you have to sync it up everywhere. I know there exist cloud solutions like one-password and so on, but I do not want to trust them with my password file, even if they tell me about their super cool encryption.<p>These are only a few examples. This is a constant point of pain, which leads to the fact that I only maintain one system (my laptop) and in fact do not use my desktop pc or second laptop.<p>Is there a tool which solves my problems? What do you do?<p>What I am thinking of is<p>- an open-source solution<p>- self-hostable<p>- client-side encrypted<p>- versionize file changes in general somehow and "push them"<p>- pull changes to different system<p>- rollback system, because you messed something up<p>- sync on startup<p>In fact I would summarize it as "decouple system state you care about from the underlying hardware".