This is my personal NixOS system configuration flake. There are many like it, but this one is mine. I don't do anything particularly special, but you're free to look around and use what you want.
The basic organization is something like this:
nixos
├─── README.md
├─── assets
│ ╰─── desktop.jpg
├─── home
│ ├─── default.nix
│ ╰─── <username>
│ ╰─── <user home-manager config>
├─── host
│ ├─── default.nix
│ ╰─── <hostname>
│ ╰─── <host machine config>
╰─── secrets
├─── secrets.nix
╰─── <program_secret.age>
Contains assets for the system, such as a desktop background image or profile picture.
User environment definition via home-manager. Currently only one user defined, since I am the only one using these machines.
Contains host machine configuration. Basically what would be in configuration.nix on a non-flake system.
Nix friendly secrets storage using agenix.
You're free to take and use modules as you please, but you should not try and use this as is for your own system. At the very least, you would need to change hardware-configuration.nix to get it working, but there are other modules that rely on having the same hardware as me to be functional.
-
Make home-manager its own flake in its own repo. This lets me run it on non NixOS systems.
-
Make Nixvim its own flake in its own repo. Like above, this lets me run it on non NixOS systems.
-
Do more stuff with agenix. Right now I don't really have it set up.
-
Set up Home Assistant on my server.
-
Have fun!