# NixOS Repository Quick Reference ## Quick Commands - **Test build**: `nixos-rebuild build --flake .#` - **List systems**: `nix flake show` - **Commit**: `git add files && git commit -m "msg"` ## Systems - **warp**: Server + nginx + forgejo - **skip**: Server + nginx only - **framework/aurora/labrizor**: Desktop systems ## Key Files - `flake.nix`: System definitions - `systems/.nix`: Hardware/boot configs - `servers/.nix`: Service configs - `users/.nix`: User configs ## Testing Workflow 1. Always `git status` first - affects flake evaluation 2. Stage changes (`git add`) before building - prevents Nix store issues 3. Test with `nixos-rebuild build --flake .#` 4. Check success message: `"Done. The new configuration is /nix/store/..."` ## Important - Server configs may contain hardcoded credentials - use agenix or systemd credentials for production - Both warp and skip build successfully - Repository root: `/home/jsutter/src/nixos` ## Remote System Management ### Access Systems SSH to machines using hostnames (resolve via local `/etc/hosts` or DNS): ```bash ssh # Replace with actual system name ``` ### Make Configuration Changes 1. **Check current systems:** View `flake.nix` for available system configurations 2. **Edit local config:** `cd ~/src/nixos && vim [relevant_file]` 3. **Test build:** `nixos-rebuild build --flake .#` 4. **Commit and push changes:** ```bash git add . && git commit -m "description" git push origin master ``` 5. **Update target systems:** ```bash ssh 'cd ~/src/nixos && git pull && sudo nixos-rebuild switch --flake .#' ``` ### Bulk Updates ```bash # Update multiple systems for host in host1 host2 host3; do ssh $host 'cd ~/src/nixos && git pull && sudo nixos-rebuild switch --flake .#' & done wait # Wait for all updates to complete ``` ### Quick Management ```bash # Check service status ssh 'systemctl status ' # View logs ssh 'journalctl -u -f' # Rebuild if build fails ssh 'cd ~/src/nixos && git pull && sudo nixos-rebuild switch --flake .#' ``` ### Repository - **Central:** https://git.symbiotrip.com/jsutter/nixos - **Config reference:** Check `flake.nix` for system names and module structure - **Update workflow:** Local edit → Push → Remote pull → Rebuild