My flake files which I use to manage my local and remote machines https://git.disroot.org/Zonsopkomst/flake
Go to file
zonsopkomst 3ea2e7ca05 Attempting to fix corrupt filesystem 2023-09-23 13:57:15 -05:00
common Added pandoc 2023-09-21 09:13:19 -05:00
config Fixed blur_new_optimizations to new_optimizations 2023-09-13 13:17:43 -05:00
desktop clean up 2023-03-25 20:36:54 -05:00
display testing 2023-02-12 10:06:56 -06:00
hosts Attempting to fix corrupt filesystem 2023-09-23 13:57:15 -05:00
reference Updated Goals 2023-09-23 11:09:22 -05:00
users Maintenance & Clean-Up 2023-09-14 11:56:52 -05:00
.Rhistory clean up 2023-03-25 20:36:54 -05:00
.directory Cleaned and compartmentalized files & hierarchy 2023-01-18 16:53:08 -06:00
LICENSE.md Added 2023-01-31 09:02:24 -06:00
README.md Updated desktop screenshot 2023-09-21 09:25:25 -05:00
flake.lock Updated 2023-09-16 11:43:26 -05:00
flake.nix Maintenance & Clean-Up 2023-09-14 11:56:52 -05:00

README.md

My NixOS Configuraton File

This is my NixOS setup to manage multiple computers with a home-manager config structure using nix flakes.

Current Desktop Screenshot

Gnome Gnome

Highlights:

  • Multiple NixOS configurations: desktop, laptop, and hopefully a test server and eventually a full transition over from my Ubuntu server.

How to

Process
Source: South Park

  1. NixOS Installation
    1. Install NixOS on a computer. I use the default Gnome installer from https://nixos.org/download.html.
    2. Copy the configuration.nix and hardware-configuration.nix files from the /etc/nixos directory and move them to hosts/local/NEW_PC_NAME.
      1. I have been renaming configuration.nix to default.nix and, under flake.nix located in the top directory, linking the appropriate modules I want to use on that computer.
    3. Create a hosts directory on git for the new machine and either use an existing users or create a new one.
  2. home-manager
    1. See https://github.com/nix-community/home-manager for manual and configuration options
    2. Remember to add unstable channel (in this case) in the terminal:
    3. sudo nix-channel --add https://github.com/nix-community/home-manager/archive/master.tar.gz home-manager
    4. sudo nix-channel --update
    5. Include <home-manager/nixos> in "Imports" section above
  3. Declare desktop, kernals & RAM, modules, host & user specific items, and home-manager in flake.nix
  4. Declare packages either globally under /hosts/<location>/hostname/packages.nix or /users/<username>/home-manager.nix
  5. Maintenance
    1. See /config/.bashrc for alias using nixos-rebuild --flake .#<hostname> commands and other useful items

Structure

Directory What is it for?
common Shared configurations and modules
config Config files that are managed by NixOS
desktop Shared desktop configs
display Login Display managers
hosts The PCs deployed
reference Package list, git assets, notes, etc.
users Individual User configs
flake.nix & flake.lock Declared configuration using the above directories & configs

Hosts

Hostname Model Type RAM Processor Main Use
weda Dell Inspiron 15 Laptop 16GB AMD Ryzen 5 (Cezanne) Business
frija Acer Aspire 3 Laptop 4GB AMD A9 Testing
tyr Intel i5 Desktop 16GB Intel i5 Media
tuisto AMD Ryzen 5 Desktop 16GB AMD Ryzen 5 (Renoir) Remote
TODO AMD Ryzen 5 Server ??GB AMD 2200G Test Server
TODO AMD Ryzen 5 Server ??GB AMD 2200G Main Server