Add README and update kemptop configuration

This commit is contained in:
Stefan Kempinger 2026-01-27 12:19:27 +01:00
parent 1ffb260e88
commit ea76f8a6f2
3 changed files with 163 additions and 18 deletions

36
flake.lock generated
View file

@ -2,11 +2,11 @@
"nodes": { "nodes": {
"crane": { "crane": {
"locked": { "locked": {
"lastModified": 1767744144, "lastModified": 1769287525,
"narHash": "sha256-9/9ntI0D+HbN4G0TrK3KmHbTvwgswz7p8IEJsWyef8Q=", "narHash": "sha256-gABuYA6BzoRMLuPaeO5p7SLrpd4qExgkwEmYaYQY4bM=",
"owner": "ipetkov", "owner": "ipetkov",
"repo": "crane", "repo": "crane",
"rev": "2fb033290bf6b23f226d4c8b32f7f7a16b043d7e", "rev": "0314e365877a85c9e5758f9ea77a9972afbb4c21",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -65,11 +65,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1768307256, "lastModified": 1769417433,
"narHash": "sha256-3yDvlAqWa0Vk3B9hFRJJrSs1xc+FwVQFLtu//VrTR4c=", "narHash": "sha256-0WZ7I/N9InaBHL96/qdiJxg8mqFW3vRla8Z062JmQFE=",
"owner": "nix-community", "owner": "nix-community",
"repo": "lanzaboote", "repo": "lanzaboote",
"rev": "7e031eb535a494582f4fc58735b5aecba7b57058", "rev": "1902463415745b992dbaf301b2a35a1277be1584",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -80,11 +80,11 @@
}, },
"nixos-hardware": { "nixos-hardware": {
"locked": { "locked": {
"lastModified": 1768736227, "lastModified": 1769302137,
"narHash": "sha256-qgGq7CfrYKc3IBYQ7qp0Z/ZXndQVC5Bj0N8HW9mS2rM=", "narHash": "sha256-QEDtctEkOsbx8nlFh4yqPEOtr4tif6KTqWwJ37IM2ds=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixos-hardware", "repo": "nixos-hardware",
"rev": "d447553bcbc6a178618d37e61648b19e744370df", "rev": "a351494b0e35fd7c0b7a1aae82f0afddf4907aa8",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -95,11 +95,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1768564909, "lastModified": 1769170682,
"narHash": "sha256-Kell/SpJYVkHWMvnhqJz/8DqQg2b6PguxVWOuadbHCc=", "narHash": "sha256-oMmN1lVQU0F0W2k6OI3bgdzp2YOHWYUAw79qzDSjenU=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "e4bae1bd10c9c57b2cf517953ab70060a828ee6f", "rev": "c5296fdd05cfa2c187990dd909864da9658df755",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -119,11 +119,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1767281941, "lastModified": 1769069492,
"narHash": "sha256-6MkqajPICgugsuZ92OMoQcgSHnD6sJHwk8AxvMcIgTE=", "narHash": "sha256-Efs3VUPelRduf3PpfPP2ovEB4CXT7vHf8W+xc49RL/U=",
"owner": "cachix", "owner": "cachix",
"repo": "pre-commit-hooks.nix", "repo": "pre-commit-hooks.nix",
"rev": "f0927703b7b1c8d97511c4116eb9b4ec6645a0fa", "rev": "a1ef738813b15cf8ec759bdff5761b027e3e1d23",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -147,11 +147,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1768704795, "lastModified": 1769482338,
"narHash": "sha256-Y33TAp2BHEcuspYvcmBXXD0qdvjftv73PwyKTDOjoSY=", "narHash": "sha256-SVwjMqR981PEdEdRvYj5Mefnd61GLinWmIr7GMu7LW8=",
"owner": "oxalica", "owner": "oxalica",
"repo": "rust-overlay", "repo": "rust-overlay",
"rev": "4b7472a78857ac789fb26616040f55cfcbd36c6e", "rev": "dc9c76a75a6d382613cdcb1a3f95640e9cedcdea",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -24,6 +24,8 @@
# Use the systemd-boot EFI boot loader. # Use the systemd-boot EFI boot loader.
boot = { boot = {
binfmt.emulatedSystems = [ "aarch64-linux" ]; binfmt.emulatedSystems = [ "aarch64-linux" ];
binfmt.preferStaticEmulators = true;
plymouth = { plymouth = {
enable = true; enable = true;
theme = "abstract_ring_alt"; theme = "abstract_ring_alt";
@ -132,6 +134,9 @@
gnumake gnumake
xz xz
android-tools android-tools
ffmpeg-full
ghex
wireguard-tools
# GUI programs # GUI programs

140
readme.md Normal file
View file

@ -0,0 +1,140 @@
# NixOS Configurations
This repo contains NixOS system configurations for multiple machines, managed via flakes.
Systems:
- `heimserver` — Home server for selfhosting, home automation, and network monitoring
- `kemptop` — Personal laptop/desktop focused on development and a modern desktop experience
---
## heimserver (home server)
Home server used for:
- Selfhosting services
- Home automation
- Network monitoring and DNS filtering
- Media/photos
### Role & characteristics
- Runs as a headless, alwayson 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 frontdoor for HTTP(S)
- ACME integration for automatic TLS certificates
- Hosts multiple domains/subdomains (e.g. main website, git, images)
- **Git hosting**
- Forgejo instance (selfhosted 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 & adblocking**
- AdGuardHome as networkwide DNS resolver and ad blocker
- **Network monitoring**
- NetFlow collector pipeline (netflow2ng) feeding into ntopng
- ntopng for traffic analysis and network visibility
- InfluxDB for timeseries storage
- GeoIP update service to keep MaxMind databases current
- **Security**
- fail2ban for basic SSH/HTTP abuse prevention
- SSH with keyonly 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.configurationRevision` wired to the flake revision when available
- State pinned to NixOS `25.05` for backwards compatibility
---
## kemptop (workstation / laptop)
Personal workstation configuration optimized for:
- Software development
- Graphical desktop applications
- Virtualization and container workloads
- Secure boot
### Role & characteristics
- Dailydriver laptop/desktop
- Secure boot using `lanzaboote` + `sbctl`
- Can build and run software for other architectures (e.g. `aarch64-linux`)
- Better desktop/userexperience focus than the server
### Desktop environment
- COSMIC desktop as the main environment
- Graphical login managed by the COSMIC greeter
- Autologin 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 Dockercompat)
- libvirt + virtmanager
- Nixrelated tools:
- Language servers for Nix
- `nix-ld` configured to ease running foreign binaries
- Extended Nix experimental features (flakes, caderivations, 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, autostarted 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`