Self-hosted compile cluster with a web dashboard, REST API, and SSH shell. Workers run on bare metal, LAN, or any cloud — joined via optional WireGuard tunnels.
Three components — orchestrator, worker, client — each a single Rust binary with no runtime dependencies.
Submit jobs via CLI, SSH shell, or REST API. Workers pull tasks from the shared queue, compile with icecc or make, and report back.
Enable one flag and cloud workers self-register: they generate a key pair, call the API, get a tunnel IP, and come online in one command.
Built-in dashboard shows workers, job queue, and WireGuard peers. Fully brandable — set your name, logo, and accent color in the config.
Every action has an endpoint. Submit jobs, query workers, trigger syncs, and manage WireGuard peers programmatically from any language.
Access a restricted shell over SSH for ops tasks — push packages, inspect queues, register workers, and drop to the host OS when needed.
Single Rust binary per component. No runtime, no Python, no npm. Ships as tarballs and a Docker image. Install script gets you running in under 2 minutes.
Drop a smech-farm.toml next to the binary or at
/etc/smech-farm/smech-farm.toml. Every field has a sane default —
the config file is optional for LAN-only setups.
Set wireguard.enabled = true and point server_endpoint
at your public IP to unlock cloud mode. The orchestrator auto-generates its
WireGuard key pair on first start.
# smech-farm.toml [farm] name = "My Build Farm" tagline = "Distributed Build Farm" accent_color = "#ff5a4e" logo_url = "" # URL or base64 data URI # ── WireGuard (optional) ───────────────────── [wireguard] enabled = false # set true for cloud workers server_endpoint = "" # "1.2.3.4:51820" listen_port = 51820 server_wg_ip = "10.99.0.1/24" worker_ip_pool = "10.99.0.0/24"
Any Linux host reachable over the internet can join the farm via WireGuard.
Build from source with Cargo or grab a pre-built release from GitHub.
git clone github.com/Smech-Labs/smech-farm cd smech-farm bash build.sh
# Extract and install tar xf smech-farm-orchestrator-2.0.0.tar.gz sudo bash install.sh
tar xf smech-farm-worker-2.0.0.tar.gz sudo bash install.sh <orchestrator>:7734
# On the cloud VM, as root smech-farm-worker wg-setup \ --orchestrator <ip>:7734 \ --name worker-cloud-1