Professional software engineer, musician, gamer, stoic, democratic socialist

  • 2 Posts
  • 33 Comments
Joined 2 years ago
cake
Cake day: July 2nd, 2023

help-circle
  • Pretty sure my journey looked something like:

    1. Ubuntu for a while
    2. A furious bout of hopping experiments: Debian, ElementaryOS, Crunchbang, MX Linux, Fedora
    3. Arch for a bit, but it was too much struggle
    4. Ubuntu for a while, embracing the “vanilla” lifestyle
    5. Manjaro for a while. It seemed to solve my previous issues with vanilla Arch.
    6. EndeavourOS, basically a better Manjaro.
    7. NixOS, which had a significant learning curve but ultimately gives me the most control and repeatability for all of my machine configs. Still daily driving this on my desktop, router, and some web servers.
    8. Tried out Fedora Atomic on my old laptop out of curiosity. Installing packages was ultra slow. Workflows were too annoying.

    So I think the graph is actually pretty reflective of my own experience, aside from some of the specific distro choices during my peak ignorance phase, and obviously I ended up at NixOS which isn’t even on here.
















    • Has a simple backup and migration workflow. I recently had to backup and migrate a MediaWiki database. It was pretty smooth but not as simple as it could be. If your data model is spread across RDBMS and file, you need to provide a CLI tool that does the export/import.

    • Easy to run as a systemd service. This is the main criteria for whether it will be easy to create a NixOS module.

    • Has health endpoints for monitoring.

    • Has an admin web UI that surfaces important configuration info.

    • If there are external service dependencies like postgres or redis, then there needs to be a wealth of documentation on how those integrations work. Provide infrastructure as code examples! IME systemd and NixOS modules are very capable of deploying these kinds of distributed systems.