Local development · Windows 10 & 11
Every project gets its own server.
Devbox runs each project in an isolated stack - Nginx or Apache, PHP workers, MariaDB, HTTPS and a mail catcher - shaped like the server it will deploy to. One shared install per version, one set of processes per project, no hosts file.
A demo of the Devbox dashboard. Each row is a project; each light is a service; the number under it is its port.
How a request reaches your code
The same path as production.
php -S serves one request at a time and ignores your server config.
Devbox puts a real web server in front of real PHP workers, so rewrites, upload limits, HTTPS and
concurrent requests behave locally the way they will on your VPS.
Each Nginx, Apache and PHP version is downloaded once and shared. Every project runs its own processes from
them - Nginx 1.30 with PHP 8.3 next to Apache 2.4 with PHP 8.1, at the same time. Apache runs with working
.htaccess files.
- 1 Browser https://shop-api.localhost:8443
- 2 Devbox proxy - routes by domain :8443
- 3 Nginx 1.30 - TLS, static files, rewrites :8000
- 4 PHP 8.3 - 4 FastCGI workers :9000–9003
- 5 MariaDB 11.4 - its own data folder :3307
What's in the box
Everything a project needs, nothing installed system‑wide.
- Packages
- Any version, side by side. Node, PHP, Python, MariaDB, PostgreSQL, Redis, MongoDB, Caddy, Nginx and Apache as portable downloads. Pick from official releases, paste a download link, or point at a folder you already have.
- Blueprints
- WordPress, Laravel or Drupal in one click. Pick Nginx or Apache; Devbox downloads the app, creates the database, writes the config, installs it and gives you an admin login. Every project is laid out the same way: your code lives in public/, Devbox's config in .devbox/.
- Isolation
- One project can't break another. Each gets its own folder, ports, environment variables, database files and name.localhost address. Stop one, the rest keep running.
- HTTPS
- A padlock, no warnings. Devbox creates a local certificate authority that can only sign *.localhost names, so a leaked key can't impersonate a real site. Nginx and Apache serve TLS themselves, so PHP sees HTTPS=on.
- Databases
- phpMyAdmin for every project. One shared install lists each project's MariaDB in its server menu and logs you in. Open it from a project with one click.
- Every email lands in a local inbox. Mailpit catches mail from PHP's mail(), Laravel and anything that speaks SMTP. Your apps are pointed at it automatically; nothing reaches a real inbox.
- Terminal
- A shell that already knows your project. A docked terminal opens in the project folder with that project's PHP, Node, Composer and WP-CLI on the path. It uses Git Bash when you have it, or PowerShell. Open the project in VS Code with one click.
- Processes
- See what is actually running. Click a service for its processes, memory, CPU, listening ports, exact command line and recent output. Restart it, kill one worker, or force-stop a stuck service. Crashed PHP workers restart on their own.
- Logs
- Every service, one pane. Live output from the web server, PHP workers and databases, filterable by service.
- Updates
- Told when there is a new version. Devbox checks in the background and shows Update available in the title bar, with the release notes, size and checksum before you download.
Config that ships with the code
Commit your server config.
Your project's Nginx or Apache rules and PHP settings live in .devbox/, next to your code. No ports, no machine paths - the same file drops into your server's vhost.
Edit them in the app: every PHP setting shows the value your project actually gets and where it comes from. Changes are checked with the real nginx -t, httpd -t and PHP before they're saved.
# Server block body. Devbox adds listen, TLS and upstreams.
root public;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass php; # PHP workers here, PHP-FPM on your server
include fastcgi_params;
}
Why per-project
One shared stack, or one per project.
| Shared local stack | Devbox | |
|---|---|---|
| PHP versions | One at a time | Different per project, running together |
| Web server config | One file for every site | Per project, committed with the code |
| A broken config | Stops every site | Stops that project; nginx -t / httpd -t catch it first |
| Local domains | Hosts file edits, admin rights | name.localhost, nothing to edit |
| Databases | One server, shared data | A server per project, its own data folder |
Early access
Power on.
Install Devbox, add a project, press the switch. Runs per user - no administrator rights needed.
The installer is not code-signed yet, so Windows SmartScreen may say "unknown publisher". Choose More info, then Run anyway.