No description
  • Nix 65.9%
  • HTML 20.3%
  • CSS 4.2%
  • Lua 3.8%
  • Handlebars 2.9%
  • Other 2.9%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
DerGrumpf a9f734f849
All checks were successful
ci/woodpecker/push/pipeline Pipeline was successful
Finalised: Jellyfin
2026-11-06 17:45:06 +01:00
.woodpecker Got rid of the deploy step 2026-08-22 13:54:32 +02:00
assets Changed Avatars to Miku 2026-06-30 21:30:02 +02:00
darwin secrets: split secrets.yaml into system.yaml and home.yaml 2026-10-29 12:07:11 +01:00
home secrets: split secrets.yaml into system.yaml and home.yaml 2026-10-29 12:07:11 +01:00
hosts Added: first jellyfin 2026-11-02 19:02:38 +01:00
nixos Restructured: nixos/roles -> services 2026-10-29 13:19:49 +01:00
overlays Removed: netradiant-custom since its unused and takes too long to compile 2026-10-24 13:43:25 +02:00
secrets Finalised: Jellyfin 2026-11-06 17:45:06 +01:00
services Finalised: Jellyfin 2026-11-06 17:45:06 +01:00
.gitattributes Init 2026-04-03 23:32:54 +02:00
.gitignore secrets: split secrets.yaml into system.yaml and home.yaml 2026-10-29 12:07:11 +01:00
flake.lock Added: first jellyfin 2026-11-02 19:02:38 +01:00
flake.nix Added: first jellyfin 2026-11-02 19:02:38 +01:00
README.md secrets: split secrets.yaml into system.yaml and home.yaml 2026-10-29 12:07:11 +01:00
spec.json Fix declarative spec: use numeric type + flake field 2026-08-04 19:51:12 +02:00

DerGrumpfs Nix Configuration

A unified Nix flake managing NixOS desktops and a home server cluster — all sharing a common Home Manager configuration.

Author: Phil Keier


Machines

Hostname Platform Architecture Type
cyper-desktop NixOS x86_64-linux Desktop workstation
cyper-controller NixOS x86_64-linux Home server (runs all services)
cyper-node-1 NixOS x86_64-linux Server node
cyper-node-2 NixOS x86_64-linux Server node

Prerequisites

NixOS

Nix is available out of the box. Enable flakes in your configuration.


Quick Start

Clone

git clone https://github.com/DerGrumpf/nix ~/.config/nix
cd ~/.config/nix

Customize

Replace placeholders in home/git.nix:

  • DerGrumpf → your Git username
  • phil.keier@hotmail.com → your Git email

Update secrets/keys.txt.age and .sops.yaml with your age public key.

Apply

# NixOS
sudo nixos-rebuild switch --flake .#cyper-desktop

# Or use the shell alias (auto-detects hostname)
nix-switch

Check (without building)

nix-check
# expands to: nix flake check --no-build

Project Structure

graph TD
    flake[flake.nix] --> desktop[nixosConfigurations<br/>cyper-desktop]
    flake --> servers[nixosConfigurations<br/>cyper-controller / node-1 / node-2]

    desktop --> nixos[nixos/<br/>NixOS system modules]
    desktop --> hd[hosts/cyper-desktop/<br/>hardware + config]
    desktop --> home[home/<br/>shared Home Manager]

    servers --> nixos
    servers --> roles[nixos/roles/<br/>Gitea · Matrix · Vaultwarden<br/>AdGuard · Searxng · Unifi<br/>Monitoring · Filebrowser]
    servers --> hc[hosts/cyper-*/]

    home --> shared[shared<br/>packages · git · shell · python<br/>nixvim · nixcord · spicetify<br/>floorp · obsidian · ssh]
    home --> deskmod[desktop/]
    deskmod --> dlinux[Linux only<br/>hyprland · niri · waybar<br/>rofi · gtk · qt · xdg · waypaper]

Note: this repo previously supported macOS via nix-darwin. That support has been removed; darwin-only modules are preserved (unreferenced) under darwin/ for backup purposes only.


Secrets

Secrets are managed with sops-nix and age encryption.

The age key must exist at ~/.config/sops/age/keys.txt on every host. To edit secrets:

sops secrets/system.yaml
sops secrets/home.yaml

Never edit .age files directly.


Shell Aliases (Fish)

Alias Expands to
nix-switch sudo nixos-rebuild switch --flake ~/.config/nix#(hostname -s)
nix-check nix flake check --no-build
ls eza --icons=always
la eza -la --icons=always
tree eza --icons=always -T
f nvim $(fzf)
grep rg
cp rsync -ah --progress
l LLM prompt via Groq → rendered with glow