Menu

Download

SatL 0.1.0-beta for FreeBSD

A self-contained pkg(8) package. It needs no repository of its own, installs four files, and declares ocijail as a dependency.

FreeBSD 15.1 and CURRENT, amd64ZFS requiredIPv4 onlyBSD-2-Clause

satl-0.1.0.pkg

14.5 MB · 15,250,851 bytes · published 2026-08-19 · 60 MB installed

version 0.1.0 · FreeBSD:15:amd64 · depends on ocijail

Also served as satl-freebsd.pkg, which is the name the documentation’s fetch command uses.

SHA-512
8ffb39c3f37b2bd3440723334800fe1ae6da3b4840ac69b2d0b98679d0e463507cdbf7c6d3ec1d71ecd14b01619dbbfb4d0e25caeb86bff2eba6e82162dd5397
SHA-256
ea0b6801986460dcb09d2c7804af0bf290393a3d6a3da32cf8ea5442b9caf20f

Both computed from the file this page was built with, not transcribed. Verify on the host with sha512 satl-freebsd.pkg — FreeBSD ships sha256 and sha512 in the base system. The published CHECKSUM.SHA512 agrees with it.

Install

Fetch it, then add it

Two steps rather than one, so you can see the file land before anything installs — and so you can check it, keep it, or copy it to the other nodes of a cluster instead of downloading it three times.

    
      fetch https://satl.cc/download/satl-freebsd.pkgpkg add ./satl-freebsd.pkg
    
  

The pkg add step pulls ocijail if a package repository is configured. The post-install message recalls the host prerequisites.

From source instead

This is also how you get an unreleased fix, and it is the only path that needs a Rust toolchain — Rust 1.96, edition 2024. make install needs root, and builds into target/install deliberately, so a build under sudo cannot leave root-owned artifacts in the tree your unprivileged builds use.

    
      git clone https://github.com/fredericalix/satl satlcd satlmake install
    
  

What it installs

The four files the package installs
/usr/local/bin/satlthe CLI
/usr/local/sbin/satldthe daemon
/usr/local/etc/rc.d/satldthe rc.d service
/usr/local/etc/satl/satld.toml.samplea commented sample config — not a config

Read that last line carefully. The package installs satld.toml.sample; it does not create satld.toml. A missing config is legal and the daemon runs on defaults — and the default pf_mode is check, which generates the pf rules, syntax-checks them, and never loads one. Your published port is then allocated, recorded and displayed by satl ps exactly as if it worked, with no redirect behind it and nothing logged as an error.

One package, every node

A cluster wants the same build everywhere

Fetch once, copy the file around, add it on each machine. Mixing versions across nodes is not a configuration SatL is tested in — and there is no supported upgrade path between pre-1.0 versions, so treat a version bump as a rebuild.