Build Workers
A build worker is the machine that actually runs your builds. By default your builds run on Venelx shared workers, with nothing to set up. You can also add your own Mac, Windows or Linux machine and have builds run there, while the dashboard stays on app.venelx.com.
Your machine only needs outbound HTTPS. No static IP, no open inbound ports.
Platform support
| OS | iOS builds | Android builds |
|---|---|---|
| macOS | Yes (Xcode required) | Yes |
| Linux | No | Yes (Debian / Ubuntu, x86_64 only) |
| Windows | No | Yes, via WSL2: run the Linux command inside your WSL2 Ubuntu |
Worker slots
Every account can run a number of your own machines (slots). The Account → Self-hosted workers page (app.venelx.com/account/workers) shows how many you have used and whether they are included free. If all slots are in use, remove a machine to add another.
Setup
-
Install the worker on the machine that will build. Either use the command line:
bashcurl -fsSL https://get.venelx.com | shpowershellirm https://get.venelx.com/win | iexor download the installer (macOS
.pkg, Windows.exe, Linux.deb) from Account → Self-hosted workers. -
Open Venelx Worker and click Connect. The app shows a pairing code (and may open the dashboard with the code filled in).
-
Approve it in the dashboard. On Account → Self-hosted workers click Guided setup, enter the code, click Look up, then Approve machine. If the app opened the dashboard for you (app.venelx.com/account/workers/connect), just approve it there.
-
The machine appears under Machines and turns online within a few seconds.
Linux: only Debian and Ubuntu on x86_64 are supported today; the installer stops on ARM.
Changed IP address or rebooted? No re-pairing is needed. The worker reconnects on its own.
Advanced: headless setup with a pairing token
For a machine with no screen, click Create a worker manually on the workers page, choose a name and
what it builds, and copy the pairing token (shown once). Put it in the worker config file:
~/.venelx/worker.env on macOS and Linux, %USERPROFILE%\.venelx\worker.env on Windows:
WORKER_NAME=mac-studio-1
WORKER_PAIRING_TOKEN=<paste from dashboard>
API_URL=https://api.venelx.com
WORKER_PLATFORMS=ios,android-preview,android-production
Lost the token? Use Options → New pairing token on the machine.
Build routing
Open Project → Settings → General to control where a project's builds run:
| Setting | What it does |
|---|---|
| Worker routing: Hybrid (default) | Your online workers run the build first. If none is online, Venelx shared workers run it instead. |
| Worker routing: Strict | Builds run only on your workers. If none is online, the build waits. |
| Worker pool | Run this project only on one team's workers (see Team worker pools). Default uses your own workers and any team pools that include the project. With Hybrid routing, Venelx shared workers still back it up. |
| Required worker labels | Asks for workers carrying all the labels you list (press Enter or comma to add a label; up to 20). |
Without your own workers, projects use Venelx shared workers. Platform matching is automatic: iOS jobs go to macOS workers, Android jobs to Android-capable workers.
Labels
Labels are tags on a machine (for example gpu or mac-m2) shown next to it in the Machines list.
Required worker labels on a project asks for machines that carry all the listed labels. Only add labels
you can see on a machine; a label no machine has leaves the project with nothing to match.
Team worker pools
Share a machine with a team: open Options on the machine and choose a Team. Builds for that
team's projects can then run on it. On a project, set Worker pool to a team to run its builds
only on that team's workers. Change or clear the assignment any time. From an AI assistant, use
assign_worker_team in the MCP server.
Metrics and usage
On Account → Self-hosted workers:
- Options on a machine shows CPU, Memory and Disk free history for the last 1 hour, 24 hours or 7 days, and any health checks that need attention on that computer.
- Usage shows build minutes and build counts per machine, month by month.
Both are also available as the MCP tools worker_metrics and worker_usage.
Managing a machine
Click Options next to a machine to:
- Pause or resume builds on it
- Restart the worker
- Create a New pairing token
- Remove the machine (you can add it again later)
Installing without security warnings
The installers are not code-signed yet, so macOS Gatekeeper and Windows SmartScreen may warn when you open a file downloaded in a browser. The warning is expected; you can continue past it. To avoid it, install from the command line (see Setup). The script verifies the installer's SHA-256 against the digest published for the release.
Pin a version with curl -fsSL https://get.venelx.com | sh -s -- --version 0.1.101.
Installed from a browser instead?
- macOS: right-click the
.pkg, choose Open, then Open, or System Settings → Privacy & Security → Open Anyway. - Windows: on the SmartScreen prompt click More info → Run anyway.
Updates are downloaded by the worker itself, and their SHA-256 is checked.
Uninstalling
- Windows: Control Panel → Programs → Uninstall "Venelx Worker". Your config in
%USERPROFILE%\.venelxis kept. - macOS: run
/Applications/Venelx Worker.app/Contents/Resources/uninstall.sh(add--purgeto also delete~/.venelx). There is no Finder-based uninstaller for.pkginstalls. - Linux:
sudo apt-get remove venelx-worker(usepurgeinstead ofremoveto also delete the config).
After uninstalling, remove the machine in the dashboard with Options → Remove machine.
Troubleshooting
| Symptom | Fix |
|---|---|
| Invalid or expired pairing code | Click Connect in Venelx Worker again to get a fresh code |
| All slots in use / no slots | Remove an unused machine on the workers page |
| Machine online but no builds | Check the project's Worker routing, Worker pool and Required worker labels in Project → Settings → General |
| Machine shows offline after quitting | The worker reports offline when you quit it; allow a moment |
| Worker stuck at "starting service" | Install the latest version of the worker |
| Heartbeat failed (headless setup) | Check API_URL and WORKER_PAIRING_TOKEN in worker.env |
| Options shows "Needs attention" | Follow the hint under each failing health check |