This repo contains the general config for all machines I have with NixOS
Reassign multiple service frontends from 81xx to 80xx ports (Forgejo, ntopng, AdGuard, Scrutiny, Paperless, Whats Up Docker, etc.) and update homepage links. Configure ACME (webroot) and add certs for kempinger.at, webadmin.kempinger.at, and bilder.kempinger.at; update nginx virtual hosts to use ACME hosts and serve the ACME challenge path. Add users stalwart-mail and nginx to the acme group and open SMTP-related firewall ports (25, 587) plus mail UI ports (8090, 8091). Add and configure the Stalwart mail service (SMTP, submissions, IMAP, JMAP) and adjust related service ports/settings (ntopng, scrutiny, influxdb, WUD). |
||
|---|---|---|
| dad | ||
| heimserver | ||
| kemptop | ||
| mum | ||
| wohnzimmer | ||
| flake.lock | ||
| flake.nix | ||
| readme.md | ||
NixOS Configurations
This repo contains NixOS system configurations for multiple machines, managed via flakes.
Systems:
heimserver— Home server for self‑hosting, home automation, and network monitoringkemptop— Personal laptop/desktop focused on development and a modern desktop experience
heimserver (home server)
Home server used for:
- Self‑hosting services
- Home automation
- Network monitoring and DNS filtering
- Media/photos
Role & characteristics
- Runs as a headless, always‑on server
- Uses static IP and acts as a central entry point into the home network
- Uses ZFS for backup storage
- Optimized for running containers and services, not desktop use
Notable services
-
Reverse proxy / TLS termination
- nginx as the front‑door for HTTP(S)
- ACME integration for automatic TLS certificates
- Hosts multiple domains/subdomains (e.g. main website, git, images)
-
Git hosting
- Forgejo instance (self‑hosted Git service)
- Supports Git LFS
- Automatic periodic dumps/backups into local backup storage
-
Photo management
- Immich instance for photo backup & management
- Data location backed up with Borg to ZFS storage
-
Home automation stack (via Podman containers)
- Home Assistant
- Matter server
- Mosquitto MQTT broker
- Frigate for camera/NVR functionality, with GPU acceleration
-
DNS & ad‑blocking
- AdGuardHome as network‑wide DNS resolver and ad blocker
-
Network monitoring
- NetFlow collector pipeline (netflow2ng) feeding into ntopng
- ntopng for traffic analysis and network visibility
- InfluxDB for time‑series storage
- GeoIP update service to keep MaxMind databases current
-
Security
- fail2ban for basic SSH/HTTP abuse prevention
- SSH with key‑only authentication for root
System / Nix specifics
- NVIDIA support configured, including container toolkit for GPU access from containers
- Nix flakes and modern Nix features enabled
- Automatic garbage collection with short retention to keep disk usage in check
system.configurationRevisionwired to the flake revision when available- State pinned to NixOS
25.05for backwards compatibility
kemptop (workstation / laptop)
Personal workstation configuration optimized for:
- Software development
- Graphical desktop applications
- Virtualization and container workloads
- Secure boot
Role & characteristics
- Daily‑driver laptop/desktop
- Secure boot using
lanzaboote+sbctl - Can build and run software for other architectures (e.g.
aarch64-linux) - Better desktop/user‑experience focus than the server
Desktop environment
- COSMIC desktop as the main environment
- Graphical login managed by the COSMIC greeter
- Auto‑login configured for the main user (
kemp) because of LUKS encryption - Audio via PipeWire
- Flatpak enabled for additional apps
- Printing with support for HP printers
- mDNS/Avahi for local network service discovery
- Fingerprint authentication integrated into login
Development & tooling
- Full Rust toolchain and build system tooling
- Large LaTeX/TeXLive setup for document preparation
- Multiple IDEs/editors installed:
- JetBrains IDEA
- Android Studio
- Zed
- Container & virtualization tools:
- Podman (with Docker‑compat)
- libvirt + virt‑manager
- Nix‑related tools:
- Language servers for Nix
nix-ldconfigured to ease running foreign binaries- Extended Nix experimental features (flakes, ca‑derivations, etc.)
Desktop applications
- Multiple web browsers (Firefox with PipeWire support, Chrome, Tor browser)
- Media and productivity apps (Spotify, VLC, LibreOffice, TeXStudio, etc.)
- File management and system inspection tools (Nautilus, QDirStat, Mission Center, network scanners)
- Theming and UX tools (e.g.
adw-gtk3)
Shell & UX
- Fish shell as primary interactive shell, auto‑started from bash
- Fish enhanced with plugins (fzf integration, git helpers, colorization, etc.)
- System PATH and environment tuned via
systemd.user.extraConfig
Power & firmware
- Firmware updates enabled (
fwupd) - Powertop integration for power tuning
System / Nix specifics
- Uses the latest Linux kernel packages
- Nix configured for multiple experimental features and flakes
- State pinned to NixOS
25.05