Configuration files for my NixOS and nix-darwin machines
- Nix 93.5%
- Python 3.1%
- CSS 2.1%
- TypeScript 1%
- Just 0.3%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| .github/workflows | ||
| bin | ||
| modules | ||
| .envrc | ||
| .gitignore | ||
| AGENTS.md | ||
| flake.lock | ||
| flake.nix | ||
| justfile | ||
| LICENSE | ||
| README.md | ||
nix-config
Configuration files for my NixOS and nix-darwin machines.
Very much a work in progress.
Services
This section is generated automatically from the Nix configuration using GitHub Actions and this cursed Nix script
alison
| Icon | Name | Description | Category |
|---|---|---|---|
| Grafana | Platform for data analytics and monitoring | Observability | |
| Home Assistant | Home automation platform | Smart Home | |
| OpenCCU | Homematic IP CCU | Smart Home | |
| Prometheus | Monitoring system & time series database | Observability | |
| Uptime Kuma | Service monitoring tool | Services |
aria
| Icon | Name | Description | Category |
|---|---|---|---|
| Immich | Self-hosted photo and video management solution | Media |
emily
| Icon | Name | Description | Category |
|---|---|---|---|
| Audiobookshelf | Audiobook and podcast player | Media | |
| Bazarr | Subtitle manager | Arr | |
| CrossPoint Sync | Reading progress sync for KOReader e-readers | Services | |
| Deluge | Torrent client | Downloads | |
| Immich | Self-hosted photo and video management solution | Media | |
| Jellyfin | The Free Software Media System | Media | |
| Jellyseerr | Media request and discovery manager | Arr | |
| Keycloak | Open Source Identity and Access Management | Services | |
| leseratte | Hardcover to OPDS book downloader | Arr | |
| Microbin | A minimal pastebin | Services | |
| Miniflux | Minimalist and opinionated feed reader | Services | |
| Navidrome | Self-hosted music streaming service | Media | |
| Nextcloud | Enterprise File Storage and Collaboration | Services | |
| Paperless-ngx | Document management system | Services | |
| Prowlarr | PVR indexer | Arr | |
| Radarr | Movie collection manager | Arr | |
| Radicale | Free and Open-Source CalDAV and CardDAV Server | Services | |
| SABnzbd | The free and easy binary newsreader | Downloads | |
| slskd | Web-based Soulseek client | Downloads | |
| Sonarr | TV show collection manager | Arr | |
| Vaultwarden | Password manager | Services |
spencer
| Icon | Name | Description | Category |
|---|---|---|---|
| Forgejo | A painless, self-hosted Git service | Services |
Installation runbook (NixOS)
Build an installer ISO (or use any NixOS ISO):
just build-iso <host>
On the target, set a root password from the TTY:
sudo su
passwd
From your host, copy your public key over and connect with agent forwarding
(the agent is needed to fetch the private secrets flake input):
export NIXOS_HOST=192.168.2.xxx
ssh-add ~/.ssh/notthebee
ssh-copy-id -i ~/.ssh/notthebee root@$NIXOS_HOST
ssh -A root@$NIXOS_HOST
Enable flakes if you are not using the generated ISO:
mkdir -p ~/.config/nix
echo "experimental-features = nix-command flakes" >> ~/.config/nix/nix.conf
Clone this repository and partition/mount the drives with the host's disko config:
git clone https://github.com/notthebee/nix-config.git /etc/nixos
cd /etc/nixos
nix run github:nix-community/disko -- \
--mode destroy,format,mount --flake .#<host>
Copy the repository into the new root so the installed system has it at
/etc/nixos, and place the private key used by agenix:
cp -a /etc/nixos /mnt/etc/nixos
mkdir -p /mnt/home/notthebee/.ssh
exit
scp ~/.ssh/notthebee root@$NIXOS_HOST:/mnt/home/notthebee/.ssh
ssh root@$NIXOS_HOST
chmod 700 /mnt/home/notthebee/.ssh
chmod 600 /mnt/home/notthebee/.ssh/*
Install the system:
nixos-install \
--root "/mnt" \
--no-root-passwd \
--flake "/etc/nixos#<host>"
Unmount the filesystems and reboot:
umount /mnt/boot/efis/*
umount -Rl "/mnt"
zpool export -a
reboot