This repo is from our NixCon NA 2024 presentation. View the presentation here or download the pdf. Talk recording is located at here
You can use the instructions below to follow along and make your own home server. Feel free to file an issue or email [email protected].
We won't be going over getting a base install setup in too much detail here. The NixOS Wiki is a great guide for doing so. This is just the same as installing another Linux distribution from a bootable USB drive. You can download an Graphical ISO image, copy it onto a USB drive, boot into it from your computer's BIOS, and follow the graphical installer.
Sample home server configuration is at configuration.nix
.
Once you're on a vanilla system, you can start modifying your system configuration.
It's located at /etc/nixos/configuration.nix
on your system.
You can modify this file or swap in a configuration like the one we provide. We reccomend you iteratively modify this file by changing one thing at a time and rebuilding
Switch now
sudo nixos-rebuild switch
Switch on next boot
sudo nixos-rebuild boot
By default, the NixOS installation will autogenerate a hardware-configuration.nix
at /etc/nixos/hardware-configuration.nix
which contains hardware specific configuration.
If for whatever reason you corrupted or deletd this file, you can regenerate it by running nixos-generate-config
.
The source code of the slides is in slides.md
. This compiles to the slides.html
using marp
. The HTML has speaker notes, or you can use ./utils/create_script.sh
to generate a script.html
that you can print out.
If you have Nix installed, enter our Nix shell with the marp-cli
package installed by running nix-shell
.
Then run make
to generate a slides.html
file.
Install VSCode with the Marp extension. Open slides.md
in VSCode and run "Marp: Export Slide Deck" in the VSCode command pallete (View -> Command Pallete). You can also click the marp preview on the top right of the text window.
CC BY-NC-SA 4.0 Attribution-NonCommercial-ShareAlike 4.0 International https://creativecommons.org/licenses/by-nc-sa/4.0/
Thanks to @Cody Rupp.