Required Software
Nix Package Manager
You must have Nix installed with Flakes support enabled.Install Nix
Follow the official installation guide at nixos.org or use the Determinate Systems installer:
Development Tools
The repository includes a development shell with all necessary tools. You can access it in two ways:nil- Nix language serveralejandra- Nix code formattervulnix- Security vulnerability scannerage&agenix- Secrets managementsops- Secrets operationsssh-to-age- SSH key conversion for agedisko- Disk partitioning (Linux only)nixos-facter- Hardware detection (Linux only)
System Requirements
For NixOS Deployments
- Target system must be running NixOS or have NixOS installer available
- SSH access to remote systems (if deploying remotely)
- Sufficient disk space for Nix store (recommended: 20GB minimum)
For Home Manager Deployments
- Any Linux system with Nix installed
- Write permissions to user home directory
- Shell access (bash or zsh recommended)
For Nix-on-Droid Deployments
- Android device (ARM64 architecture)
- Termux or similar terminal emulator
- Storage permissions granted
- Stable internet connection for initial setup
Repository Structure
Familiarize yourself with the repository layout:| Directory | Purpose |
|---|---|
systems/ | NixOS host configurations |
homes/ | Home Manager user configurations |
droids/ | Nix-on-Droid Android configurations |
modules/ | Reusable modules (nixos/, home/, droid/) |
pkgs/ | Custom packages and overrides |
lib/ | Utility functions |
Network Requirements
- Access to cache.nixos.org (or configured substituters)
- GitHub access for flake inputs (if not using offline mode)
- SSH access for remote deployments
Secrets Management
If your configuration uses encrypted secrets:- Ensure you have the appropriate age keys or SSH keys
- Secrets are managed using
agenix - Keys must be available before deployment on target systems
Next Steps
Once prerequisites are met, proceed to:- Validating Changes - Always validate before deploying
- Deploying NixOS Systems
- Deploying Home Manager
- Deploying to Android