NixOS “is boring and iust works” until you want to do something fancy a module author didn’t anticipate and suddenly you find yourself defining functions that use genAttrs on some lists imported from JSON files
Comment on Which one is you?
renzev@lemmy.world 1 year ago
Void on laptop, alpine on homeserver. Yep, checks out.
Love how the indian guy sitting meme perfectly sums up how I feel about alpine, nixos, and freebsd, even though those are completely different projects with different directions and goals. “It’s boring and it just works”.
Laser@feddit.org 1 year ago
renzev@lemmy.world 1 year ago
This (and systemd bugs) is the main reason I moved away from nixos on my homeserver. Nowadays if I want declarative configuration, I just cram everything into docker containers and write a huge
docker-compose.ymlfor everything that I want to run. Would still recommend nixos for things that don’t require a lot of tweaking. Like if I had to set up a simple website for a small business or something. I love how you can set up SSL certificates for nginx with autorenewal just by switching it on inconfiguration.nix.Laser@feddit.org 1 year ago
I haven’t encountered systemd bugs in NixOS yet. Doesn’t mean they don’t exist - but I can’t confirm the issue.
I run everything on NixOS nowadays and I do think that all of this makes sense, whether the implementation is the best I can’t judge.
Just wanted to make sure my statement wasn’t a criticism on NixOS, the maintainers do a great job. It’s rather taking a jab at the “boring” statement.
Nowadays if I want declarative configuration, I just cram everything into docker containers and write a huge
docker-compose.ymlfor everything that I want to run.Docker compose is imperative though ;) (if that actually matters is up for debate) - fun fact nix allows you to build containers very easily.
I love how you can set up SSL certificates for nginx with autorenewal just by switching it on in
configuration.nix.How well this all goes together is really one of the strongest points of nix and NixOS. Though just for manageability, I personally wouldn’t put this into
configuration.nix, but rather into a file dedicated to the respective service.renzev@lemmy.world 1 year ago
Maybe I’m confused, but from what I understand, “declarative” means you tell the computer what you want the final thing to look like, and “imperative” means you tell the computer what steps to take. So Dockerfile would be imperative because it’s a set of commands that are executed in-order to create the image. Meanwhile docker-compose.yml is declarative because you say which containers are used with what options and how they’re interconnected. IDK tho, as far as I understand the definitions aren’t that rigid
tux7350@lemmy.world 1 year ago
Indian guy sitting? That’s Pablo Escobar!
renzev@lemmy.world 1 year ago
TIL, thanks!
tux7350@lemmy.world 1 year ago
Lol it’s from Narcos. Great show if you haven’t seen it.