Initial framework: reusable modules, lib, pkgs, overlays, scripts, sample environment
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
# 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
|
||||
|
||||
1. Clone this repository.
|
||||
2. Create your own environment directory (see `environments/sample/`).
|
||||
3. Reference framework modules via relative paths or `fetchGit`.
|
||||
4. 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](LICENSE).
|
||||
Reference in New Issue
Block a user