![]()
Some checks are pending
🏠 Home Lab CI/CD Pipeline / 🔍 Validate Configuration (push) Waiting to run
🏠 Home Lab CI/CD Pipeline / 🔨 Build Configurations (push) Blocked by required conditions
🏠 Home Lab CI/CD Pipeline / 🔒 Security Audit (push) Blocked by required conditions
🏠 Home Lab CI/CD Pipeline / 📚 Documentation & Modules (push) Blocked by required conditions
🏠 Home Lab CI/CD Pipeline / 🔄 Update Dependencies (push) Waiting to run
🏠 Home Lab CI/CD Pipeline / 🚀 Deploy Configuration (push) Blocked by required conditions
🏠 Home Lab CI/CD Pipeline / 📢 Notify Results (push) Blocked by required conditions
✅ Major deployment milestone achieved:
**sleeper-service Configuration:**
- Successfully deployed flake-based NixOS on Intel Xeon file server
- Resolved ZFS mounting conflicts causing boot failures
- Implemented ZFS native mounting (/mnt/storage, /mnt/storage/media)
- Added Pi-hole DNS integration (10.0.0.14) for package resolution
- Configured systemd-networkd with static IP (10.0.0.8)
- System boots cleanly in ~1 minute with ZFS auto-mounting
**Infrastructure Updates:**
- SSH key management deployed and operational
- Network configuration with multi-tier DNS (Pi-hole, router, Google)
- NFS server configuration for network storage
- Data preservation verified: 903GB ZFS pool intact
**Technical Solutions:**
- Added nomodeset kernel parameter for graphics compatibility
- Disabled NVIDIA drivers for headless server operation
- Removed conflicting ZFS entries from hardware-configuration.nix
- Established remote deployment workflow via rsync + SSH
**Documentation:**
- Updated plan.md with deployment status and lessons learned
- Added deployment commands and troubleshooting notes
- Documented ZFS native mounting migration process
**Data Verified:**
- Films: 184GB, Series: 612GB, Audiobooks: 94GB, Music: 9.1GB, Books: 3.5GB
- Storage pool: 903GB used, 896GB available
- All media accessible via proper ZFS auto-mounting
This represents the first successful multi-machine flake deployment in the home lab infrastructure migration.
|
||
---|---|---|
.. | ||
common | ||
desktop | ||
development | ||
hardware | ||
network | ||
security | ||
services | ||
system | ||
users | ||
virtualization | ||
README.md |
NixOS Modules Directory Structure
This directory contains reusable NixOS modules organized by functional domain for the Home-lab infrastructure.
Directory Organization
common/
Core modules shared across all machines in the home lab:
base.nix
- Modern CLI tools, aliases, and essential packagestty.nix
- Console configuration and themingnix.nix
- Nix/flakes configuration and optimization settingsssh.nix
- SSH server and security configurationsnetworking.nix
- Basic networking and firewall settings
desktop/
Desktop environment configurations for workstation machines:
gnome.nix
- GNOME desktop environment setupcosmic.nix
- System76 COSMIC desktop configurationsway.nix
- Sway window manager and Wayland setupfonts.nix
- Font packages and configurationsaudio.nix
- PipeWire/audio system setup
development/
Development tools and environments:
editors.nix
- Text editors (Emacs, Neovim, VSCode)languages.nix
- Programming languages and runtimestools.nix
- Development utilities and CLI toolscontainers.nix
- Development container toolsgit.nix
- Git configuration and tools
virtualization/
Virtualization and containerization:
podman.nix
- Podman container runtimelibvirt.nix
- KVM/QEMU virtualizationincus.nix
- System container managementdocker.nix
- Docker runtime (if needed)
services/
Network services primarily for SleeperService file server:
nfs.nix
- Network File System serversamba.nix
- SMB/CIFS file sharingbackup.nix
- Automated backup servicesmonitoring.nix
- System monitoring and alertingstorage.nix
- ZFS and storage managementmedia.nix
- Media server services (Jellyfin/Plex)
users/
User management and shared user configurations:
common.nix
- Shared user settings across machinesgroups.nix
- System groups and permissionssecurity.nix
- User security policies
Usage
Modules are imported in machine configurations like:
imports = [
../../modules/common/base.nix
../../modules/desktop/gnome.nix
../../modules/virtualization/podman.nix
];
Design Philosophy
- Modular: Each module has a single, clear responsibility
- Reusable: Modules work across different machine types
- Composable: Mix and match modules for different machine roles
- Documented: Each module includes usage examples and options
- Testable: Modules can be tested independently
Machine Profiles
CongenitalOptimist (Workstation)
- All desktop modules
- Development tools
- Virtualization stack
- User-focused configurations
sleeper-service (File Server)
- Common base only
- Service modules (NFS, Samba, backup)
- No desktop environment
- Server-focused configurations