Open Source · MIT License · v2.0.0

Distributed build farm that goes anywhere

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.

● WireGuard ready Cloud compatible Zero external deps Rust
smech-farm-worker — cloud setup
root@gcp-vm $ smech-farm-worker wg-setup --orchestrator 203.0.113.10:7734 --name worker-gcp-1

Everything you need in one binary

Three components — orchestrator, worker, client — each a single Rust binary with no runtime dependencies.

Distributed compilation

Submit jobs via CLI, SSH shell, or REST API. Workers pull tasks from the shared queue, compile with icecc or make, and report back.

Optional WireGuard tunneling

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.

Live web dashboard

Built-in dashboard shows workers, job queue, and WireGuard peers. Fully brandable — set your name, logo, and accent color in the config.

Full REST API

Every action has an endpoint. Submit jobs, query workers, trigger syncs, and manage WireGuard peers programmatically from any language.

SSH interactive shell

Access a restricted shell over SSH for ops tasks — push packages, inspect queues, register workers, and drop to the host OS when needed.

Zero dependencies

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.

WireGuard is off by default

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.

LAN users: if you never touch the WireGuard section the farm works exactly as it always did — no tunnel, no overhead, no changes required.
# 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"

Workers run anywhere

Any Linux host reachable over the internet can join the farm via WireGuard.

Google Cloud
Compute Engine
AWS
EC2
Azure
Virtual Machines
Hetzner
Cloud Servers
Contabo
VPS
🖥
Bare metal
LAN / no WireGuard

Up in under 2 minutes

Build from source with Cargo or grab a pre-built release from GitHub.

1 Build
git clone github.com/Smech-Labs/smech-farm
cd smech-farm
bash build.sh
2 Deploy orchestrator
# Extract and install
tar xf smech-farm-orchestrator-2.0.0.tar.gz
sudo bash install.sh
3 Add workers (LAN)
tar xf smech-farm-worker-2.0.0.tar.gz
sudo bash install.sh <orchestrator>:7734
4 Add workers (Cloud)
# On the cloud VM, as root
smech-farm-worker wg-setup \
  --orchestrator <ip>:7734 \
  --name worker-cloud-1