A personal fork of exeuntu tuned for my workflow. exeuntu is the default base image for exe.dev — a kitted-out developer image based on ubuntu 24.04 with systemd.
Available at ghcr.io/danruto/pbuntu.
- Tweaked package selection and tooling for my personal dev setup.
- Custom AGENTS.md and pi extension configuration.
- Otherwise tracks upstream closely.
make build # build base image
make run # build + run with systemd
make run-bash # build + run, drop into bashVariants: make build-golang, build-rust, build-web, build-editor.
All non-runtime variants include BB's host daemon. The runner and runner-ssh
variants stay minimal and do not include it.
To enroll a project VM automatically, provide /exe.dev/bb.env before first
boot with the private server's generated machine-join values:
BB_SERVER=https://bb.example.com
BB_JOIN_CODE=...
BB_HOST_ID=...
# Optional when using bb connect:
BB_MACHINE_CODE=...
# Optional:
# BB_HOST_DAEMON_PORT=38887The enabled bb-enroll.service consumes that file, joins the VM as a BB
execution machine, installs the matching host daemon, and removes the join file.
Credentials are runtime-provided and never baked into the image.
For a private self-hosted control machine, keep BB on loopback and publish it through Tailscale Serve:
npx bb-app@latest
tailscale serve --bg --https=443 http://127.0.0.1:38886Use the resulting private tailnet HTTPS URL as BB_SERVER, then generate the
machine join values from the control server's Settings → Machines. Do not use
Tailscale Funnel or expose BB on a public interface.
This is a fork of boldsoftware/exeuntu. See upstream for the original README, contributing guide, and full changelog.