- Nix 94.6%
- Shell 3.9%
- Python 1%
- Perl 0.3%
- Lua 0.2%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
A nixpkgs bump that changes the nvidia driver leaves the old kernel module loaded until reboot; a restarted Xorg then fails on the NVRM API mismatch, which fails activation and triggers deploy-rs's rollback. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> |
||
| hosts | ||
| lib | ||
| modules | ||
| openwrt | ||
| secrets | ||
| .gitattributes | ||
| .gitignore | ||
| .sops.yaml | ||
| ATARAXIA.md | ||
| BACKUP.md | ||
| BLOCKERS.md | ||
| CLAUDE.md | ||
| flake.lock | ||
| flake.nix | ||
| LICENSE | ||
| NETWORK.md | ||
| README.md | ||
| RECONFIGURE.md | ||
| REFLASH.md | ||
| RESTORE.md | ||
nixos-config
Personal NixOS flake for the homelab. Host names follow a Greek/Latin philosophy theme.
Hosts
| Host | Role | Platform |
|---|---|---|
| akrasia | Gaming + LLM + NAS + headless service hub | Tower, 2× GTX 1080 |
| logos | Programming laptop | Dell Latitude 5400 |
| enkrateia | Tang server, and nothing else | Raspberry Pi 3 |
| ataraxia | TV box: Kodi, Steam, Moonlight | ThinkPad T14 Gen 3 AMD |
ataraxia is arche's hardware (the former headless server). Arche's services moved to akrasia; install runbook in ATARAXIA.md.
Build a host
nix build .#nixosConfigurations.<Host>.config.system.build.toplevel
Deploy
nix run github:serokell/deploy-rs -- .#akrasia
Secrets
All secrets live under secrets/<host>/ and are encrypted with
sops-nix + age. Host age keys live at
/persist/secrets/sops_key.txt on each machine — its own btrfs subvolume,
which is why no @persist snapshot contains it.
Backup and disk encryption
See BACKUP.md. One plan, because they are one sequence: the disk conversion needs a rehearsed restore, which needs a backup that works.
The backup half is applied: the offsite copy is borg on a Hetzner Storage Box (phase 0), and the content libraries are snapshotted for it (phase 2). Every akrasia disk is LUKS2: the system disk mirrored onto the router's old SSD and unlocked by Tang (phase 3), the media pool encrypted in place (phase 4).
Restore
RESTORE.md is the recovery runbook — read the order first, the steps unlock each other.
RECONFIGURE.md is what comes after the data is back: the hand-entered application state no dump contains.