ALPHA: wire is a tool to deploy nixos systems wire.althaea.zone/

comment: false title: wire Tutorial Overview description: In this tutorial we will create and deploy a wire Hive.#

{{ $frontmatter.title }}#

wire is a tool to deploy NixOS systems. Its usage is inspired by colmena. In many places it's configuration attempts to remain a superset1 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#

Features wire Colmena
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 execution4

Speed#

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

Command Mean [s] Min [s] Max [s] Relative
wire@HEAD 185.075 185.075 185.075 1.00
colmena@pinned 343.075 343.075 343.075 1.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↩︎