by thojest on 2/7/20, 2:54 PM with 0 comments
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.
What do I mean with "keep in sync", for example:
1) write code on laptop use git and commit to repo, pull when home
2) Install vscode on laptop, come home have to install again
3) Install cuda drivers on laptop, come home install cuda drivers again
4) Create a non-gitable file, like word documents (XML), binary, ... come home and use USB stick
There exist software like git which solves 1) pretty well, maybe Dropbox to solve 4).
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.
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.
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.
Is there a tool which solves my problems? What do you do?
What I am thinking of is
- an open-source solution
- self-hostable
- client-side encrypted
- versionize file changes in general somehow and "push them"
- pull changes to different system
- rollback system, because you messed something up
- sync on startup
In fact I would summarize it as "decouple system state you care about from the underlying hardware".