the awful.systems server cluster runs on an open infrastructure based on NixOS and Nix flakes, and though it desperately needs cleanup in some places, it’s still a pretty good example of how to use a Nix flake to deploy NixOS in production. feel free to browse the repo and ask any questions about how it works, or about Nix in general!

also, if I get hit by a bus, this can be used to redeploy awful.systems elsewhere. an existing admin who isn’t in the hospital or the grave can import a database backup and get back up and running!

and as always, contributions are welcome.

  • sue_me_please@awful.systems
    link
    fedilink
    English
    arrow-up
    2
    ·
    edit-2
    8 months ago

    Cool, thanks for releasing the source.

    Curious if anyone is using Nix and NixOS in production outside of personal projects. I’ve been dabbling in it and it would solve some problems well, but I’m cautious about inflicting Nix upon anyone who isn’t already at least attracted to the Nix mindset.

    You have to be a particular type of insane (which I am, not a bad thing) to go all in on Nix, and I’m interested in how that pans out in a team environment where not everyone is a Nix enthusiast. How is onboarding, turnover, velocity etc.

    edit: I’m also curious about deployment and costs of running this Lemmy instance are like. What’s the stack look like when deployed, what are the monthly ingress/egress, how much CPU time does it use, etc.

    • self@awful.systemsOPM
      link
      fedilink
      arrow-up
      1
      ·
      8 months ago

      of course!

      you’re definitely right about needing to be a particular type of insane for Nix to fully click, and I’ve seen enough people bounce off of it that I try to make Nix optional (but very nice to have) wherever I can

      with that said, there are a few areas where what Nix does is irreplaceable. broadly, areas like deployments (devops), embedded development (where Nix’s methods of cross compilation and target configuration are much saner and more reliable than average), and developer tooling are where it’s extraordinarily difficult to replicate what Nix provides, and those are also the areas where I’ve personally seen the most production usage of Nix.

      I don’t personally coordinate a professional team that uses Nix, but it might be worth looking up impressions from companies that do. to my memory, two companies I know use Nix heavily are Pololu Robotics and replit (which uses Nix as a user-facing part of their developer tooling; fair warning though, last time I looked they were heavily enshittifying and pushing a bunch of AI shit).