d07661561be3559a6dfe411f8a64efd56518a368
- Move defaultNameServers from network/dns.nix to hosts/servers/default.nix and hosts/workstations/default.nix - Move SMTP configuration from network/smtp.nix to hosts/servers/default.nix and hosts/workstations/default.nix - Move proxy configuration from network/proxy.nix to hosts/servers/default.nix and hosts/workstations/default.nix - Move NTP servers from network/time.nix to hosts/default.nix - Remove network/proxy.nix and network/smtp.nix (host-specific settings don't belong in network/) - Update network/default.nix to only import dns.nix and time.nix This refactoring separates environment-specific network parameters (domain, timezone) from host-specific settings (DNS servers, SMTP, proxy, NTP servers), making the configuration more logical and maintainable.
NixOS Infrastructure Framework
Reusable, environment-agnostic components for building and managing NixOS-based infrastructure.
Contents
| Directory | Purpose |
|---|---|
modules/ |
NixOS modules (machine types, services, users) |
lib/ |
Nix utility functions |
pkgs/ |
Custom packages not in Nixpkgs |
overlays/ |
Nixpkgs overlays |
scripts/ |
Operational scripts (deploy, create LXC, etc.) |
environments/ |
Example environments to get started |
Getting Started
- Clone this repository.
- Create your own environment directory (see
environments/sample/). - Reference framework modules via relative paths or
fetchGit. - Add your host configurations, network layout, and secrets.
Creating Your Own Environment
environments/your-env/
├── configuration.nix # Environment entry point
├── hosts/
│ ├── servers/
│ │ └── myhost/
│ │ └── configuration.nix
│ └── workstations/
├── network/ # Subnets, VLANs, host assignments
├── secrets/ # agenix-encrypted secrets
└── users/ # User configurations
License
See LICENSE.
Description
Languages
Nix
56.6%
Shell
43.4%