Downloads · 0.1 · amd64

Server edition, available now

Download Furcate OS.

The Server edition, built from the open tree and published with its digest. Nothing here phones home, and every artifact can be checked against the checksum beside it before it is ever booted.

Version
0.1
Edition
Server · headless
Architecture
amd64
Base
Ubuntu 26.04.1 LTS
Licence
Apache-2.0
Published
2026-09-06

01

An installer that needs nothing but the medium.

Server. The installer image.

No answer server and no network fetch during the install.

The image installs Ubuntu, then installs Furcate from packages carried on the same medium and enables the node. There is no answer server and no network fetch during the install, because an installer that reaches for the internet to become itself is an installer that fails in the places this is meant to work. The dependencies it needs (the TPM tools, the overlay, the management-controller and disk utilities) are on the medium too, and the install was tested on a machine with no network interface at all.

Two questions are asked and not assumed: which disk to use, and who the first account belongs to. A disk is destroyed and an identity is created; answering those silently is how an installer loses trust.

File
furcate-server-0.1-amd64.iso
Size
2.8 GB
SHA-256
2392c0443579a6d1bb030ef29aa7533be877afef275c542813b64fe74df46b6d
Contains
furcate-node, furcate-cli

What is not in it

This is the open distribution, so it carries the open system and nothing else. The network is installed but not joined: joining is an action, and an image that performed it on first boot would perform it without being asked. furcate setup turns it on.

02

A system extension, for a machine you are not reinstalling.

Extension. For a machine already running.

Added and removed atomically. The base system is not modified.

A sysext is a filesystem image that merges into /usr at runtime. The base system is not modified, the extension is added and removed atomically, and on a host with a read-only root it is the only way to add software at all.

Size
101 MB
SHA-256
a62734525557c93b4a7f4ecc24b9376457444fd06e5499d19f434b5cee2015ad
Matches
ubuntu, sysext level 1
Includes
node 24.19.0 · uv 0.12.5 · llama.cpp b10590
Size
285 MB
SHA-256
7c6c10c1d6ca2a4ee45a06bb6f797fea65bb8ae89a304666fa69b5c3cc8c2a04
Root hash
23d24f35e422ee6cfa0e4777f0b19106758b552fa86f2f62378f23aa7411450e
Merging the extension
$ sudo cp furcate.raw /var/lib/extensions/ $ sudo systemd-sysext refresh Merged extensions into '/usr'. # and to remove it: delete the file and refresh again. the base system # was never modified, so there is nothing else to undo.

03

Check the bytes you got are the bytes that were published.

Verify. Before you boot it.

Let the tool compare the digests, not your eyes.

Every artifact is published with its digest, and the list of digests is itself signed. Check the signature first, then the checksums it vouches for, and let sha256sum do the comparison rather than reading two hex strings and deciding they look alike.

SHA256SUMS covers every artifact on this page.

Verifying the image
$ curl -fLO https://downloads.furcate.org/furcate-server-0.1-amd64.iso $ curl -fLO https://downloads.furcate.org/SHA256SUMS $ curl -fLO https://downloads.furcate.org/SHA256SUMS.sig $ curl -fLO https://downloads.furcate.org/furcate-sign.crt $ openssl smime -verify -inform DER -in SHA256SUMS.sig \ -CAfile furcate-sign.crt -purpose any -noverify \ -content SHA256SUMS -out /dev/null Verification successful $ sha256sum -c SHA256SUMS furcate-server-0.1-amd64.iso: OK furcate.raw: OK

04

A key that cannot be copied off the machine that holds it.

Signature. Who signed it, and how to trust that.

Change one byte of the image and the signature stops matching.

The signed extension is a dm-verity image: the filesystem has a hash tree, and the root of that tree is signed. Changing one byte of the image changes the root hash, and the signature stops matching. The signing key is held in a TPM and is not exportable, so it cannot be taken from the machine that holds it, including by anyone who reaches that machine.

A machine merges a signed extension only if it already trusts the certificate. Installs from 0.1 onward carry this certificate and seed it into /etc/verity.d on first boot, so a fresh machine trusts it without being told. A machine that already trusts a certificate of its own keeps it; the release key is added alongside, never in place of it. To trust it on a machine installed earlier, do it by hand.

Certificate
furcate-sign.crt
Subject
CN=Furcate sysext signing, O=Furcate
Key
RSA 2048, held in a TPM
Valid
2026-08-21 → 2036-08-18
Fingerprint
c01d83cd1ad42aa9eaff8ebf8551fef036f5b41ad0b26d3fb7644f6323f77aa2
Trusting the certificate, then merging a signed image
$ curl -fLO https://downloads.furcate.org/furcate-sign.crt $ openssl x509 -in furcate-sign.crt -noout -fingerprint -sha256 sha256 Fingerprint=C0:1D:83:CD:1A:D4:2A:A9:...:23:F7:7A:A2 # compare that against the fingerprint printed above before trusting it. $ sudo install -D -m644 furcate-sign.crt /etc/verity.d/furcate-sign.crt $ sudo cp furcate-1.0.58-bdfdf5b-signed.raw /var/lib/extensions/furcate.raw $ sudo systemd-sysext refresh Merged extensions into '/usr'.

Read this before you trust it

Installing a certificate into /etc/verity.d means that machine will merge any extension this key signs. That is the point of it, and it is also the risk: it is a standing decision, not a one-off. A machine that already trusts a different signing certificate will refuse this image, which is the system working correctly rather than a fault.

05

From image to a node that says what it is.

Install. Write it, boot it, set it up.

  1. 01

    Write the image

    Write the ISO to a USB drive, or attach it as virtual media through the machine's management controller.

  2. 02

    Boot and answer two questions

    The installer answers itself from the medium, and stops only for the disk and the first account.

  3. 03

    Run setup

    sudo furcate setup configures identity, site and keys, and asks whether to join a network. Everything derivable is looked up rather than typed.

What is signed, and what is not

The system extension is published in a signed form: a dm-verity image whose root hash is signed by a key held in a TPM, so the key cannot be copied off the machine that holds it. The ISO is covered by the same key at one remove: SHA256SUMS carries its digest and SHA256SUMS.sig is a detached signature over that file, so a checksum that has been altered no longer verifies.