The Ur Project

Documenting the craft of stacking things so they remain stacked. For a very long time.

User Guides

Task-shaped documentation: installing, updating, building a package, publishing it, putting together a composition.

Some of the guides below are written, the rest are scaffolded and still being worked on.

Installation

There are several ways to install The Ur Project onto your hardware or a Virtual Machine, and they all follow the same basic steps. Note that the current installer requires a fully empty drive - it does not accept empty space on a partitioned drive as a valid installation target.

Basic system maintenance

Basic updates, installing and removing packages, listing installed packages, working with sets and subpackages, and performing a roll back and rolling forward again.

Verifying the Sandcastle signatures

Don't take my word for it - here's how you check, yourself, that the packages and repository metadata you're installing came from us and not from somebody sitting in between. The published root fingerprints, the pkg commands that check them, and what to do when one of them doesn't match.

Verifying reproducible builds

How to check, on your own machine, that a package you have installed is bit for bit what you get when you build it yourself from the same sources.

Building local packages

Building a package on your own machine, from recipe to installed bundle, without setting up a full build system. All you need is the pkg tool that is already on your system. The guide writes a recipe, creates a build key, builds the recipe into a signed local repository, rolls that into an offline bundle, installs it, and then verifies the result.

Creating images

Building the Sandcastle live USB image yourself, from the published composition, with pkg compose. No build system needed, and no root. Then looking at what came out, and booting it in a VM.

Deploying the build system

Deploying a dispatcher setup of your own, using federated repositories from the official repositories to build packages with. The guide sets up your own repository called Dev with a provisionary key, takes you through making access tokens, and then builds a package and puts it in a container image to demonstrate that it works.

Air-gapped system upgrades

Upgrading a system that has no route to a repository server. Export what it runs, carry that to a connected machine, build a bundle for exactly that system, and carry it back. Three commands, two walks, one bundle, verified on arrival.