Crayon abstract with overlapping triangles in rainbow colors on white background

Nix Curious

I don't use Arch btw


Friendship with Arch over, new best friend is Nix now.

I used to use Arch (btw).

It was on my Framework 13 with a 13th gen intel i5. Came with a legendless keyboard, but an absolute steal on marketplace.

I first started using Arch consistently after I had hosted an Arch install party.

Nowadays I’ve sold or gifted them off, but at one point I had a large number of 2nd hand Dell Latitudes running various flavors of Linux. Pro tip, great devices to keep around for whenever your less technically inclined relatives both refuse to spend money on a new laptop and move off Microslop. Avoid the ones with soldered memory, but in general, they’re like a sexy Thinkpad; more appealing to normies.

There was a freshman who used to hang out in the networking lab (senior lounge) in Sennott. Kid used Gentoo so I wasn’t a stranger to being mogged by someone younger than me. The commenters on old Reddit had nothing on me. Obligatory aggression directed towards Spez.

Overall it was a good run. Honestly, I think Mint with XFCE is fine for most people. If someone needs to have something closer to MacOS, I like how the System76 flavored GNOME feels in Pop!_OS. Friends don’t let friends use uncut Ubuntu, either use raw Debian or a refined version. Anyways, I hate having to run apt update -y && apt upgrade -y to first update my repos, and then a second to upgrade all my packages. Manjaro had me sold on yay -Syu. But ever since Arch became quick to install, it felt like a no brainer to remove the extra abstraction layer.

I liked it enough to host a party to evangelize to the few friends who are also chronically online enough to want to install Arch for fun.

Unfortunately my homelab threw a wrench in things.

It used to be simple. One big tower with one chip connected to a lot of memory, drive bays, and power. Plus my old GTX 1070, same exact GPU I bought with my first “real job” money. Who’da thunk that the markup back then because everyone wanted to mine Ether would seem tame compared to today.

Despite all the gas, wind, sun, and oil. My beloved One Star State isn’t known for consistently delivering reliable internet or power. So there was only so long the system continued to run on my UPS.

Plus electric bill wasn’t getting any lower. So I swapped the GPU with a GTX 1080ti I had lying around from another system I parted out and sold off, reduced the storage to a normal number of terabytes, and reclaimed some memory so it had a more reasonable amount. Same Atman, different Sharir. Off it went to a cousin to have another life as a gaming pc.

Now the homelab has smaller, cheaper, and less energy intensive nodes. Unfortunately too many which is a different problem.

Much like microservices, they’re a solution best used to solve constraints. And much like them, they introduce new complications.

These are the two that matter.

Both my Proxmox ones. One is Hades Canyon NUC. A rare collaboration pairing an Intel CPU with an AMD GPU that has roughly the performance of a GTX 1060. And a Minisforum with an i9. Quick aside Minisforum, wtf is up with y’all’s fit and finish, already had both a memory socket’s metal clip and one of the plastic clips holding the lid break off. Don’t want to talk about the RAM, ask the hyperscalers.

I wanted a better way to quickly spin up Linux boxes with predefined configurations, I have a backburner task to learn functional programming, and the Framework was sitting around as tribute to test it out. 100seconds of Fireship had me hooked, then I saw Forrest Knight’s video of the friction he had and I was sold.

Pretty normal pattern, my primary gets to be tinkered on but is always MacOS. My stable, that’s always been Linux. Stable enough that I have no fear wiping functioning systems because bootstrapping by hand is trivial. I don’t like Arch because it’s bleeding edge, I like it because it’s minimal enough, quick to set up, and pretty fast on old hardware.

And so began the installation process. Downloaded the installer and flashed it onto a USB 2.0 flashdrive that’s old enough to drive using Rufus. Yes I use Microslop for file system operations, fight me.

Unfortunately SSDs have gotten too fast for me to always time the bios menu. After three missed reboots, I hit the nuclear option, grabbed my iFixit, pulled out the nvme, and wiped the drive. Can’t boot into an OS if there’s no OS to boot.

Install finished.

First hurdle, neither Zen nor Helium are easy to install. Guess I’m going Librewolf and Brave for now.

Overall though?

I kinda like the install process, it feels like a natural progression from slinging commands on the terminal.

Modify the configuration.nix in /etc/nixos/ by:

Updating environment.systemPackages

  environment.systemPackages = with pkgs; [
    # basics
    wget
    curl
    less
    git
    neovim

    # languages / runtimes
    python3
    go
    deno
    nodejs
    php
    phpPackages.composer

    # browsers
    librewolf
    brave

    # terminal
    ghostty

    # editor
    zed-editor

    # tools
    opencode
    obsidian

    # file / text utilities
    ripgrep
    fd
    jq
    unzip
    zip
    tree

    # system / process
    btop
    lsof
    strace
    pciutils
    usbutils

    # network
    nmap
    netcat
    dnsutils

    # git
    lazygit

    # docker
    lazydocker

    # fonts
    nerd-fonts.jetbrains-mono

    # shell utilities
    bat
    fzf

    # media
    imagemagick

    # gnome
    gnome-tweaks
    dconf-editor
  ];

Then enable Docker working with:

  virtualisation.docker.enable = true;

Add it to your extraGroups under users.users.YOURHOSTNAME

  extraGroups = [ "networkmanager" "wheel" "docker" ];

Finish up with nixos-rebuild switch. And log out and back in to get the Docker changes go into effect.

A scriptable install without reaching for something like Ansible or Terraform was pretty exciting. Sure I’ll find more friction though.