Required Software
Nix Package Manager
You must have Nix installed with Flakes support enabled.1
Install Nix
Follow the official installation guide at nixos.org or use the Determinate Systems installer:
2
Verify Flakes are enabled
Check that flakes are enabled in your Nix configuration:If flakes are not enabled, add the following to
~/.config/nix/nix.conf: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: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