- NixOS on the target machine(s)
- SSH access from the deployer to each node
- Nix flakes enabled (
experimental-features = nix-command flakesinnix.conf)
git clone https://github.com/Sensorica/nixos-holochain
cd nixos-holochain
# Edit the host config for your machine
nano hosts/edgenode-01/configuration.nix
sudo nixos-rebuild switch --flake .#edgenode-01Before running colmena apply, each host config must have:
- A real
hardware-configuration.nix— generated on the target machine:sudo nixos-generate-config --show-hardware-config > hosts/edgenode-XX/hardware-configuration.nix - The facilitator SSH public key committed to
secrets/sensorica.pub:cp ~/.ssh/id_ed25519.pub secrets/sensorica.pub
Host configs already reference ../../secrets/sensorica.pub via authorizedKeys.keyFiles.
# Deploy to all nodes in parallel
colmena apply --on @all
# Deploy to a single node
colmena apply --on edgenode-01
# Dry-run (shows what would change)
colmena apply --dry-run# Build the ISO
nix build .#nixosConfigurations.workshop-iso.config.system.build.isoImage
# Flash to USB (replace /dev/sdX with your USB device)
sudo dd if=result/iso/*.iso of=/dev/sdX bs=4M status=progress
sync- NixOS boots
holochain-conductor.servicestarts (waits for network)holochain-happ-installer.serviceruns once, installs configured hApps- Conductor is reachable on
adminPort(default: 4444) andappPort(default: 8888)
# Conductor status
systemctl status holochain-conductor
# Follow conductor logs
journalctl -u holochain-conductor -f
# Check hApp installer ran
systemctl status holochain-happ-installer
journalctl -u holochain-happ-installer# Roll back to the previous NixOS generation
sudo nixos-rebuild --rollback
# List all generations
sudo nix-env --list-generations --profile /nix/var/nix/profiles/system