top | item 46173822

(no title)

Scandiravian | 2 months ago

I think the sibling answer by oasisaimlessly is really good. I'd supplement it by saying that because you can have the entire configuration in a git repo, you can see what you've changed at what point in time

I'm the beginning I was doing one change, writing that change down in some log, then doing another change (this I'll mess up in about five minutes)

Now I'm creating a new commit, writing a description for it to help myself remember what I'm doing and then changing the Nix code. I can then review everything I've changed on the system by doing a simple diff. If something breaks I can look at my commit history and see every change I've ever made

It does still have some overhead in terms of keeping a clean commut history. I occasionally get distracted by other issues while working and I'll have to split the changes into two different commits, but I can do that after I've checked everything works, so it becomes a step at the end where I can focus fully on it instead of yet another thing I need to keep track of mentally

discuss

order

Scandiravian|2 months ago

I just realised I didn't answer the first question about what keeps me from discovering the issues earlier

The quick answer is complexity and the amount of energy I have, since I'm mostly working on my homelab after a full work day

Some things also don't run that often or I don't check up on them for some time. Like hardware acceleration for my jellyfin instance stopped working at some point because I was messing around with OpenCL and I messed up something with the Mesa drivers. Didn't discover it until I noticed the fans going ham due to the added workload

maccard|2 months ago

> because you can have the entire configuration in a git repo, you can see what you've changed at what point in time

That’s true of docker too.

Scandiravian|2 months ago

I'm not really sure what your point is, but I'll try to take it in good faith and read it as "why doesn't docker solve the problem for it, since you can also keep those configurations in a git repo?"

If any kind of apt upgrade or similar command is run in a dockerfile, it is no longer reproducible. Because of this it's necessary to keep track of which dockerfiles do that and keep track of when a build was performed; that's more out-of-band logging. With NixOS I will get the exact same system configuration if I build the same commit (barring some very exotic edge cases)

Besides that, docker still needs to run on a system, which must also be maintained, so Docker only partly addresses a subset of the issue

If Docker works for you and you're not facing any issues with such a setup, then that's great. NixOS is the best solution for me