she/her

  • 0 Posts
  • 57 Comments
Joined 1 year ago
cake
Cake day: August 3rd, 2023

help-circle










  • Careful, there’s three different terms in the mix here:

    NixOS: an entire operating system, you don’t need this.

    nix: the nix package manager. This is what you’ll need to install. look for single user install in the instructions.

    home-manager: a module for nix. It’s aim is to allow declarative configuration of a users’ home configuration (and allow easier per-user install of packages on a global nix install).

    If you want to go down the nix route, which I would recommend if you enjoy tinkering and having fine control over your system, you should start with installing nix. With that, you can already setup a shell that has the newest version of python available.

    Going beyond that, I can link you some more resources, if you want c:





  • For reproducibility, nothing really beats NixOS. That’s not really what you’re asking for, as that would not involve Clonezilla.

    If you’re frequently switching hardware, and want to have everything up and running, configured to your liking, in minutes, you’re gonna have fun with NixOS in the long term. But I’m not gonna sugarcoat it, it has a steep learning curve and does require you to enjoy some tinkering. Worth it, imo

    Otherwise, just pick a distro that you enjoy and create a separate home partition, when it’s time to switch you do a fresh install and clone only the home partition. That’ll get you 90% of the way to have your old setup on the new device


  • For me it’s probably the way I self-host overleaf, a online LaTeX editor. The community version has a docker image that’s horribly maintained (because they want to sell enterprise, I reckon), and instead relies on a horrendous amalgamation of setup scripts that wrap docker compose.

    What I have is a Dockerfile that pulls the image, manually installs a second version of TeX with the right dependencies, unlinks the old one and links the second one. Then for the database, it uses Mongo replsets, which be to be manually initialized. So I wrote a health check for the container that checks if the repl set is initialized, and if that fails the health check initializes it.

    It’s horrendous, it’s disgusting, and it’s an all-in-one compose file to get overleaf running. Good enough.