Skip to content

Barn 0.9.0 · Release candidate · Go + QEMU

One inventory. One deployment.

Barn boots a Pigsty-compatible inventory into fixed-IP QEMU virtual machines on macOS and Linux. Use the same inventory to provision your VMs with Barn and deploy services with Pigsty.

Ubuntu 24.04 by default. Repeat barn up to continue interrupted setup and retry limited guest features without restarting healthy VMs.

Native validation and limits

The current model

Less machinery, clearer behavior

Barn targets one trusted local Pigsty lab, not a general-purpose cloud control plane.

2commands after installationup + sshDetails
1inventorybarn.yml or pigsty.ymlDetails
1deployment per userstate under ~/.barnDetails
9image familiesUbuntu, Debian, Rocky, CentOSDetails

Two top-level sections

Documentation and blog

Documentation stays compact and current; the blog adds design reasoning, technical articles, and release history.

Start and connect

Start

Quick Start, daily operations, automation, storage, troubleshooting, images, and cleanup.

Open

Exact contracts

Reference

Inventory variables, commands, flags, output, and exit codes.

Open

Design and evidence

About

The simplified model, native test matrix, limits, and release gates.

Open

One node to four

Quick Start

Boot with up, connect with ssh, then scale from the same inventory.

Open

vm_* fields

Configuration

Defaults, disks, shares, naming, addressing, and drift.

Open

Design and history

Blog

Accepted design records, project articles, development snapshots, and release notes.

Open

Normal path

Start the lab, then connect

Prepare the Barn 0.9.0 candidate from source as described in the Quick Start, then run these commands in an empty directory on a terminal for your first deployment. Interactive up prepares missing host dependencies and creates the default inventory when no deployment exists.

barn up
barn ssh

Add host lines and run up again; new nodes are created, stopped selected nodes start, and running peers keep their processes while unfinished setup is retried. Removing a line never destroys a VM.

Product boundaries

Deliberate constraints

01

One fact

The Pigsty inventory is the VM specification and deployment inventory.

02

Incremental

Add nodes with up; apply definition changes with recreate and remove nodes with destroy.

03

Owned

Process identity, ownership, paths, and network manifests are verified before mutation.

04

Explicit runtime

Native HVF/KVM by default; catalogued or requested TCG is always visible.

Short answers

Before you begin

Is the working directory still a Barn project?

No. State is one deployment under ~/.barn. An explicit or discovered Inventory supplies desired state; without one, lifecycle commands can fall back to the applied spec.

Can I use pigsty.yml directly?

Yes. Barn consumes the documented VM fields plus a small naming, control-node, and node-admin whitelist; other Pigsty settings stay opaque.

Does the first up modify the host?

It can install missing dependencies and fixed-IP networking, requesting sudo when needed. Use setup –dry-run to inspect the host plan first. The optional hosts helper is installed only by hosts install.

Does up install PostgreSQL or Pigsty?

It prepares the virtual machines and guest access. Deploy PostgreSQL and other services separately with Pigsty; the built-in templates describe VM topology.

Is Barn ready for production?

No. It is a pre-1.0 local development runtime; read the status page for the exact verified matrix and open release gates.

Start with two commands.Build the 0.9.0 candidate from source; after release, install Barn, start with up, and connect with ssh.