I’m planning on, eventually, putting together a NAS for myself. I’ve basically narrowed down the selection to either trying NixOS or going for TrueNAS, however I can’t figure out how to decide between those two, as they are fundamentally quite different.

TrueNAS is a dedicated NAS OS so that’s obviously enticing for me, but I heard if you also want to do some server stuff like hosting some things and not just storing data it is subpar? I never got the information out of people what exactly is supposed to be subpar about it, but I’ve seen those complaints a handful of times.

Meanwhile NixOS is just a Linux distro. I’m familiar enough with Linux, although NixOS is its own beast and from what I heard its documentation isn’t quite what you’d get out of for instance the Arch Wiki, but it being declarative and easy to restore old versions in case something breaks allegedly makes it rock solid, so that also sounds interesting.

So, after thinking about those things, I was wondering if any of you who use either of them could share your experiences and what you like or dislike about either option?

  • smiletolerantly@awful.systems
    link
    fedilink
    English
    arrow-up
    3
    ·
    edit-2
    8 hours ago

    We have NixOS, Proxmox and TrueNAS in use.

    • TrueNAS on a dedicated NAS host. It’s great for that, and has been super stable. The snapshotting works great, and all the little tasks associated with a NAS are taken care of without needing to spare a thought.
    • Proxmox as VMS host. You haven’t mentioned it above, so I’ll leave it at this: also works really well for its purpose.
    • NixOS: acouple dozen NixOS VMs runnign on the Proxmox hosts. I like the separation (i.e.: one VM <-> one task/service), but it’s not necessary, esp. if you plan on using a stable branch. I absolutely love NixOS, and would never run server applications on anything else ever again. The documentation thing is trueish. There’s not even close to the same documentation as with e.g. Arch and the Arch Wiki, but that makes sense when you think about it: instead of hundreds of lines of documentation, you hide that complexity behind an option, e.g. graphics.nvidia.enable = true; which then becomes pretty self-explanatory, at least if you are somewhat familiar with the ecosystem already. The way I’d recommend going about documentation with nix is this:
      • go to search.nixos.org/options, search for the service you would like to host. 90% of the time, the options and descriptions shown are all you need.
      • if an option is unclear, click on its “declared in” link. You’ll be taken to the module source in nixpkgs. Look at what they are doing there/the comments explaining why. Often, this resolves any ambiguity, or helps you out with your goal.
      • if that did not help, check the NixOS wiki; often, common pitfalls are documented there, together with the nix expression to fix them.
      • another great way is to search GitHub for language:nix <thing you need to do>. As a random example: I recently wasn’t sure how to configuring scaling in hyprland on NixOS, but searching for an appropriate term will quickly show you how other people have solved the same problem. It’s not really documentation, but the declarative nature of nix means it’s easy to find TONS of working examples via a github search.
      • all else failing, ask on discourse.nixos.org. Youńll usually get useful help very quickly there.

    So, what’s my advice?

    If you are unfamiliar with NixOS, it’s probably a bit of a headache getting a NAS to run satisfactory. Truenas works so well, there isn’t really a need for nix. But running your services in nix is great, totally recommend!