TurboPanel Docs
Development

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.

RequirementRecommendation
CPUIntel Core i7-4790K or equivalent
RAM16 GB minimum · 24 GB+ recommended · 32 GB ideal
SoftwareVagrant plus a provider (libvirt on Linux, UTM on macOS) — see Vagrant + provider
OSmacOS 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 OSProviderGuest
LinuxVagrant + QEMU/KVM + libvirt + vagrant-libvirtDebian 13 (debian/trixie64)
macOSVagrant + UTM + vagrant_utmDebian 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:

Terminal
brew install --cask utm
brew install hashicorp/tap/hashicorp-vagrant
vagrant plugin install vagrant_utm
ssh-add --apple-use-keychain ~/.ssh/id_ed25519

Sibling repositories

Check out all six repos under one parent directory (any path works):

PLAINTEXT
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:

ToolNotes
Node.js 24.xPinned under /opt/turbopanel/vendor/node/
pnpmVia Corepack, pinned by each repo’s packageManager
DenoPinned under /opt/turbopanel/vendor/deno/ (orchestration)
DockerPostgres, RabbitMQ, Mailpit, etc.
opensslTLS 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.

Edit on GitHub

Last updated on

On this page