Connect your own OpenFOAM worker
On the Bring-your-own plan, real CFD solves run on your hardware. OpenFOAM is free, open-source software — there is no OpenFOAM account or license to buy. You run our packaged worker once, paste its address into Ventorah, and every solve you launch in the browser executes on your machine at no per-solve cost.
1 Check what you need
- A computer with at least 4 CPU cores and 8 GB RAM (more cores = faster solves). A desktop, a lab server, or a cloud VM all work.
- Docker — Docker Desktop on Windows/macOS, or the Docker engine on Linux. Free for personal use.
2 Build the worker image (one time)
Sign in, then download the worker bundle (Dockerfile + server, ~17 KB):
Download ventorah-foam-worker.zip
Unzip it, then from inside the unzipped folder:
docker build -t ventorah-foam .
The build pulls OpenFOAM (~2 GB, once) and packages the meshing + solving pipeline behind a small HTTP API. The zip's README repeats these steps.
3 Start the worker
docker run -d --name ventorah-foam -p 8080:8080 -e WORKER_PROCS=4 ventorah-foam
WORKER_PROCS— how many CPU cores each solve uses. Set it to your physical core count for fastest results.- Verify it's alive: open
http://localhost:8080/infoin your browser — you should see a small JSON response listing the core count.
4 Connect it to Ventorah
- Go to Dashboard → Account → Your OpenFOAM worker URL.
- Paste
http://localhost:8080and save. - The worker must run on the same machine as your browser (or be reachable over HTTPS): browsers block a plain
http://<lan-ip>address from an https page as mixed content — onlylocalhostis exempt. To use a separate machine, put the worker behind a TLS proxy or tunnel and paste its https URL.
5 Run a test solve
- Open New simulation, upload an STL (built-in samples run on the instant engine), and press Run simulation.
- You'll see "Solving on your connected worker" and live residuals streaming while OpenFOAM meshes and converges — a few minutes on a coarse mesh.
- The results page then shows the SOLVED badge: real coefficients and sampled pressure/velocity fields instead of estimates.
Troubleshooting
- "Worker unreachable" — is Docker running? Does
http://localhost:8080/infoload? If the worker is on another machine, check its firewall allows port 8080. - Port already in use — run with
-p 8081:8080and connecthttp://localhost:8081instead. - Solves are slow — raise
WORKER_PROCS, choose a coarser mesh resolution in the wind-tunnel setup, and give Docker Desktop more CPUs (Settings → Resources). - Remote worker over the internet — browsers block plain-http requests from an https site (localhost is exempt). Put the worker behind an https reverse proxy, or keep it on localhost / a VPN.
The worker executes meshing/solve jobs for anyone who can reach its port. Keep it on localhost or a private network — don't expose it to the open internet without a reverse proxy that adds authentication.