Prerequisites
This page lists what you need on your host before you follow Local development. Product installation for running TurboPanel in production is covered under Installation.
System requirements
Contributor development runs a Vagrant guest plus host editor tooling. We recommend at least an Intel Core i7-4790K (or equivalent) with 16 GB of RAM. Some workloads need more memory, so 24 GB+ is recommended, and 32 GB is ideal.
| Requirement | Recommendation |
|---|---|
| CPU | Intel Core i7-4790K or equivalent |
| RAM | 16 GB minimum · 24 GB+ recommended · 32 GB ideal |
| Software | Vagrant plus a provider (libvirt on Linux, UTM on macOS) — see Vagrant + provider |
| OS | macOS or Linux (see Supported environments) |
The guest is allocated 8 GB; remaining RAM is for the host OS, IDE, and tooling. A host with less than 16 GB of RAM will struggle to run the VM and local tooling at the same time.
Supported environments
macOS and Linux are the environments TurboPanel development is written for and routinely tested on. The stack runs inside a Vagrant guest — you do not need Node, Deno, or Docker on the host.
Windows (including WSL) is not officially supported. Some contributors use WSL successfully, but your mileage may vary; if something fails on Windows, fixups are welcome but the team may not be able to reproduce native Windows issues.
Required on the host
Git + SSH
Clone (or fork) the six sibling repos over SSH. Load a GitHub SSH key on the host; Vagrant forwards the agent into the guest.
- Verify:
ssh -T git@github.com
Vagrant + provider
| Host OS | Provider | Guest |
|---|---|---|
| Linux | Vagrant + QEMU/KVM + libvirt + vagrant-libvirt | Debian 13 (debian/trixie64) |
| macOS | Vagrant + UTM + vagrant_utm | Debian 12 (utm/bookworm) until a Trixie UTM box exists |
The table above is the currently documented pair — not a closed list. macOS and Linux will likely take several more providers over time. Pull requests that add a working provider are welcome: open a PR against TurboPanel/dev (Vagrantfile + docs) and we will review it.
Linux: install VirtioFS support, add your user to the libvirt group, and ensure libvirt’s default network and storage pool are active.
macOS example:
brew install --cask utm
brew install hashicorp/tap/hashicorp-vagrant
vagrant plugin install vagrant_utm
ssh-add --apple-use-keychain ~/.ssh/id_ed25519Sibling repositories
Check out all six repos under one parent directory (any path works):
turbopanel/{dev,turbopaneld,turbopanel,ui,website,.github}The dev checkout owns the Vagrantfile. Keep forks/remotes per repo so you can open PRs independently.
Installed inside the guest (not on the host)
After vagrant ssh and dev/console / converge, the guest provides:
| Tool | Notes |
|---|---|
| Node.js 24.x | Pinned under /opt/turbopanel/vendor/node/ |
| pnpm | Via Corepack, pinned by each repo’s packageManager |
| Deno | Pinned under /opt/turbopanel/vendor/deno/ (orchestration) |
| Docker | Postgres, RabbitMQ, Mailpit, etc. |
| openssl | TLS certificate generation |
You do not install these on the host for the co-located Vagrant workflow.
Optional (Workers instance runtime)
Local guest defaults to the Deno path (turbopanel-instance.service on a Unix socket). To run the Cloudflare Workers path instead, switch to Workers mode in the Services area of ./console and run pnpm dev in the instance checkout inside the guest.
Next steps
When the above is in place, continue with Local development for Vagrant boot, ports, and day-to-day tasks.
Last updated on