NixOS configuration banner

NixOS configuration

10 devlogs
38h 22m 25s

My NixOS configuration utilizing Dendritic Pattern and following best practices (unlike my 3 previous configs).

This project uses AI

I use AI as a helper. Most, if not all code is written by me. AI helps me to prototype and learn new concepts.

janekmusin

Sorry for early devlog.

I did metric ton of things. Around half the time since last devlog was spent in the loop: 1. Install 2. Test 3. Note issues 4. Fix 5. Back to 1.

This took way, way more time than the 6h logged in this devlog, if I had to guess, I would aim in the low 30s or high 20s. From an outsider perspective I haven’t accomplished much. The end is even further than it was last devlog. I might have to ship version without mobile nixos, but we will see.

The only* small win I got is the CI/CD pipeline. I can’t recall many nixos configs with CI/CD, so this, despite not being hard at all, is somehow an achievement.

On screenshot: Proof of automated checks working

Attachment
0
janekmusin

I’ve got first ā€œrealā€ machine running the config, it’s using the ā€œServerā€ config. I run it as my server. I have few problems with it, but those should be resolved by the end of the week.

Also, by today evening (UTC +1) I should have second machine running the config - my laptop, I’m doing final corrections to the config, but according to my best knowledge it works now.

Since last devlog I have been mainly fixing things, but there’s more to be fixed.

I can see the end now. There’re few issues I need to resolve, I need to setup CI/CD management of flake.lock, create documentation and install script, and, somehow install NixOS mobile without destroying my phone.

Attachment
0
janekmusin

It seems like my assumptions about nixos-anywhere were wrong and it can’t be used to install nixos on localhost. I spent most of those 5 hours troubleshooting that, before I realized I can’t do what I wanted to do.

I’ve deleted the ā€˜Desktop’ host, I won’t be installing NixOS on my main machine before trying everything up on a laptop.

I’ve also added the ā€˜Server’ host for my server, but setting it up is harder than I thought, mainly because of the quality of the docs.

I hope to finish this config in less than 20 hours, but I don’t think I will be able to. Not only I have to create the installation guide, but also fix few things, add the server host and few little thing, but I also ā€œhave toā€ fight final boss of declarative operating systems: Mobile NixOS

Attachment
0
janekmusin

The config is ready to be installed!!!

Or at least I think so.

Most of the time logged in this devlog was spent on adding the documentation, going through existing files and fixing them.

Now I only have to install, check what isn’t working , fix that and I’m done (for the desktop config, I also have 3 servers and a phone).

This is the last time the screenshot isn’t related to the actual computers I will be deploying the config to.

Attachment
0
janekmusin

The configuration should be fully working by now. I’ve finished the desktop environment config, and while I wouldn’t want to share the project, at least for now, I will begin the early tests.

Because screenshots of code are banned and I have nothing else to show, on the screenshot I have a proof that my system builds and I’ve eliminated all internal evaluation errors.

Attachment
0
janekmusin

I’ve been to hell and beyond.

It’s a lot harder to partition the drive with ZFS and using tmpfs as a root, when you know nothing about those things. Doing this declaratively…

Deciding which files and directories to persist was also a hard task.

From your perspective, it appears I’ve coded for only 2 hours since the last devlog. It isn’t true. I’ve spent at least 6 hours searching configurations and surfing the internet to find what parts of the FS can’t be erased.

Attachment
Attachment
0
janekmusin

Easy parts done.

Honestly, the whole project is easy. Nix is a pretty easy language and I don’t implement any hard logic. (I might regret those words).

Attachment
0
janekmusin

Theming done!!!

I’m very proud of myself for the image svg to png block.

I also made few smaller changes and created few smaller modules

Attachment
0
janekmusin

I haven’t finished any worth mentioning. Despite that, I made lots of progress, mostly regarding smaller things. From now I will put the code of my main machine, unless I made changes to only one part.

I’m pretty happy with my AI usage with this project. Almost all of the code is still mine, which was unheard of in my previous projects.

Attachment
0
janekmusin

I finally finished the secrets config. It was harder than I expected. At least 100% of the code is mine

Attachment
0