π Modern, modular NixOS configuration with automated CI/CD and intelligent bot assistance
- ποΈ Modular Architecture - Clean system/user separation
- π€ Automated CI/CD - Testing, formatting, security checks
- π Auto-Updates - Weekly dependency updates via PRs
- π‘οΈ Security First - Secret scanning & vulnerability checks
- π¦ Bot Commands - Interactive PR management (
/bot help) - π― Multi-Desktop - GNOME, KDE, XFCE support
| Component | Status |
|---|---|
| π§ͺ Flake Check | |
| ποΈ Build Test | |
| π Security | |
| π Dependencies |
| Command | Action |
|---|---|
/bot format |
Auto-format Nix files |
/bot check |
Run flake validation |
/bot build |
Test configuration build |
βββ flake.nix # Main flake configuration
βββ hosts/default/ # Host-specific configs
βββ modules/
βββ nixos/ # System modules
βββ home-manager/ # User modules
-
Setup hardware config:
sudo nixos-generate-config sudo cp /etc/nixos/hardware-configuration.nix hosts/default/
-
Update personal info in
flake.nixandmodules/home-manager/git.nix -
Deploy:
sudo nixos-rebuild switch --flake .#nixos
# System rebuild
sudo nixos-rebuild switch --flake .#nixos
# Update dependencies
nix flake update
# Validate configuration
nix flake check
# Development environment
nix develop
# Run tests
./test.sh
# Cleanup
sudo nix-collect-garbage -d- System packages: Edit
modules/nixos/system.nix - User packages: Edit
modules/home-manager/packages.nix - Desktop environment: Change
desktopoption inconfiguration.nix
Build fails: Run nix flake check --show-trace
CI issues: Test locally with ./test-ci.sh or act -j check-flake
Rollback: sudo nixos-rebuild switch --rollback
Disk space in CI: Large packages (TeXLive) auto-excluded via NIXOS_CI_BUILD=true
Kernel module errors: CI environment automatically excludes hardware-dependent packages
Package Collision: If you get "collision between packages", check for duplicates:
- Don't install packages via both
packages.nixandprograms.*configuration - Example: Remove
neovimfrom packages if usingprograms.neovim.enable = true
Hardware Config: Update hosts/default/hardware-configuration.nix with real values:
sudo nixos-generate-config --root /mnt
# Copy generated hardware-configuration.nix to hosts/default/Path not in Nix store: Usually caused by placeholder UUIDs in hardware config
Contributions are welcome! Please read our Contributing Guidelines and Code of Conduct before submitting pull requests.
Happy NixOS-ing! π