Below I've included details for the structure of this directory so you can have a better idea of what you're looking at.
Tip
This repository has recently been overhauled for the new nix-bootstrap.sh!
Read below to learn more about the new script, and make sure to leave some feedback after trying it out!
Thanks y'all o7
Each hostname is a seperate machine within my homelab using NixOS as its operating system;
Smith
This directory includes the configuration.nix file for Smith, a headless laptop (a.k.a "halftop") that is currently being utilized as a server.This configuration file is more focused on network security and stability rather than cool packages.
Oracle
This directory includes the configuration.nix file for Oracle, a hand-built desktop that serves as my workhorse pc.This is my daily machine that I use for browsing, dev, and gaming so the majority of the "fun" packages are held here.
Also serves as a secondary server for the more resource intensive services like machine learning, mc-servers, and LLM's.
~ Configured for Nvidia GPU's - uncomment line 33, and comment lines 61-71 to remove said config
Neo
This directory is under construction until further notice, \ check out the [README](hostnames/neo/README.md) for more information!Each role is an available option when running nix-bootstrap.sh;
Server
Server is the slimmest possible.nix, designed to be ran as a headless server.Contains minimal packages like git and text editors.
Preconfigured SSH, fail2ban, and rootless docker.
Minimal
Minimal is a slimmer.nix that serves as a good starting point.It still contains a fully fledged hyprland desktop, it's just designed to be a launch point for your own pkgs.
Full
Full is a larger.nix that serves as a good "daily-driver" ready machine.(Currently configured for NixOS 25.11 - Xantusia)
Speaking of nix-bootstrap.sh, let's discuss the script and it's purpose since it's integral to the way I (and hopefully you) will initialize a NixOS machine...
▓▓▓ ▒▒▒ ▒▒▒
▓▓▓ ▒▒▒▒▒▒
▓▓▓▓▓▓▓▓▓▓▓▒▒▒▒ ██████ █████ ███
▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒▒ ▓▓▓ ░░██████ ░░███ ░░░
▒▒▒ ▒▒▒▓▓▓ ░███░███ ░███ ████ █████ █████
▒▒▒▒▒▒▒▒ ▒▓▓▓▓▓▓▓ ░███░░███░███ ░░███ ░░███ ░░███
▒▒▒▒▒▒▒▓ ▓▓▓▓▓▓▓▓ ░███ ░░██████ ░███ ░░░█████░
▒▒▒▓▓▓ ▓▓▓ ░███ ░░█████ ░███ ███░░░███
▒▒▒ ▓▓▓▒▒▒▒▒▒▒▒▒▒▒▒▒ █████ ░░█████ █████ █████ █████
▓▓▓▓▒▒▒▒▒▒▒▒▒▒▒ ░░░░░ ░░░░░ ░░░░░ ░░░░░ ░░░░░
▓▓▓▓▓▓ ▒▒▒
▓▓▓ ▓▓▓ ▒▒▒
███████████ █████ █████
░░███░░░░░███ ░░███ ░░███
░███ ░███ ██████ ██████ ███████ █████ ███████ ████████ ██████ ████████
░██████████ ███░░███ ███░░███░░░███░ ███░░ ░░░███░ ░░███░░███ ░░░░░███ ░░███░░███
░███░░░░░███░███ ░███░███ ░███ ░███ ░░█████ ░███ ░███ ░░░ ███████ ░███ ░███
░███ ░███░███ ░███░███ ░███ ░███ ███ ░░░░███ ░███ ███ ░███ ███░░███ ░███ ░███
███████████ ░░██████ ░░██████ ░░█████ ██████ ░░█████ █████ ░░████████ ░███████
░░░░░░░░░░░ ░░░░░░ ░░░░░░ ░░░░░ ░░░░░░ ░░░░░ ░░░░░ ░░░░░░░░ ░███░░░
░███
█████
░░░░░
A complete NixOS system bootstrap designed to be ran post .iso installation and drive formatting.
Allows for online or even offline installation the if repo files are held on usb or already on your system.
Currently has 3 configuration profiles:
Server,Minimal, andFull.
(Ranked in order of smallest to largest final size)
And 2 hardware profiles:
Desktop,Laptop
(Does not effecthardware-configuration.nix, only additional dotfiles.)
Which configures the following:
- username
- hostname
configuration.nix
environment.systemPackagesenvironment.sessionVariablesprogramsservicessystem.stateVersion- dotfiles
- hyprland
- waybar
- theming
- lots n lots more
$HOMEdirectory- wallpapers (optional)
To install and use the script from a fresh NixOS install, connect to the internet and run:
curl -sLO https://raw.githubusercontent.com/0lswitcher/bash-scripts/refs/heads/main/scripts/nix-bootstrap.sh
Then, make the script executable:
chmod +x ./nix-bootstrap.sh
Finally, run it!
bash ./nix-bootstrap.sh
I LOVE NIXOS!! ![]()
