Skip to content

wire Tutorial Overview

wire is a tool to deploy NixOS systems. Its usage is inspired by colmena. In many places it's configuration attempts to remain a superset[1] of colmena, however it is not a fork.

WARNING

wire is alpha software, please use at your own risk.


In this tutorial we will create and deploy a wire Hive. Along the way we will encounter npins, simple NixOS configurations, virtual machines, and deployment keys.

You'll need at least 10~ GB of free disk space to complete this tutorial.

Ready? Skip to Nix Setup.

Why wire?

Features

FeatureswireColmena
Node Tagging
Secret Management
Parallel Deployment
Remote Builds
Key Services
Pipeline Support[2]
Non-Root Deployments[3]
--path accepts flakerefs
REPL & Eval expressions
Adhoc remote command execution[4]

Speed

wire is about >2x faster than colmena deploying identical large hives.

CommandMean [s]Min [s]Max [s]Relative
wire@HEAD185.075185.075185.0751.00
colmena@pinned343.075343.075343.0751.85

  1. A lot of your colmena module options will continue to work with wire, but wire has additional ergonomic changes you can take advantage of. ↩︎

  2. You need to write custom nix code to use Colmena hive metadata inside environments like CI pipelines, bash scripting, etc., which requires a knowledge of its internals. Recently it agained the eval feature which has improved the situation since wire was first started. ↩︎

  3. See https://github.com/zhaofengli/colmena/issues/120 ↩︎

  4. wire lacks an equivalent to colmena exec. ↩︎