Overview
EnvKit is a desktop app that runs your entire local web-development stack — nginx or Apache, multiple PHP versions, MySQL/MariaDB, PostgreSQL, Redis, MongoDB, Mailpit, Node.js, Python and phpMyAdmin — from one modern tray / menu-bar app, with trusted .test HTTPS and PATH sync. It is a free Laragon / XAMPP / Herd alternative.
- Build Laravel, WordPress, PHP and Node/React/Next.js sites locally with one-click services.
- Trusted local SSL for every site via an auto-installed certificate authority.
- Drive the whole stack from an AI assistant through a built-in MCP server.
- Free to use (proprietary), with silent auto-update.
Install & first run
Download the latest installer for Windows or macOS from GitHub Releases, run it, then launch EnvKit from the Start menu, tray, or menu bar. There is no account, licence key, or payment step between download and local services.
On first launch a short onboarding wizard asks your source — Load from Laragon (a guided detect → import flow, including databases) or Start fresh (pick your stack and install the runtimes it needs).
First launch
├─ Load from Laragon detect → import sites + databases
└─ Start fresh pick your stack, install runtimes
Auto-update checks GitHub, installs silently
Upgrade data, certs & settings migratedxattr -dr com.apple.quarantine /Applications/EnvKit.appStart services
Start the web server, PHP runtime, databases, Redis, MongoDB, Mailpit and other tools you need for the current project. The app keeps the state visible so you can see which service owns each port before you debug framework code.
nginx running :443
php-fpm running :9000
mysql running :3306
redis running :6379
mailpit running :8025Add your first site
Register an existing project folder and EnvKit provisions the local host, web server routing, and HTTPS certificate. Laravel, PHP, React, and Next.js projects can live side by side, each with its own local host. You can also create a fresh Laravel or Node app, or clone from Git.
Project folder
E:\Sites\acme-app
Local host
https://acme-app.test
Dev server
http://localhost:5173Trusted HTTPS
EnvKit creates a local certificate authority and issues certificates for your *.test hosts. Your browser gets real HTTPS locally, so secure cookies, OAuth callbacks, and WebSocket hot reload behave like they do in production.
Web server — nginx or Apache
EnvKit ships both nginx and Apache and lets you switch the active web server in Settings. PHP is served via FastCGI on either one, so your sites behave the same regardless of which server is in front.
- Pick nginx or Apache globally — both are bundled, no extra download.
- Every site is reverse-proxied behind trusted .test HTTPS.
- Node / React / Next.js dev servers are proxied with hot-reload intact.
PHP versions & Xdebug
Install multiple PHP versions (7.4 through the latest, NTS x64) and assign a default per site, so a legacy app and a modern Laravel app can run at the same time. Xdebug is available on-demand per version.
Installed PHP
7.4 8.1 8.2 8.3 8.5 (NTS x64)
Per-site default
acme-app.test → PHP 8.3
legacy-shop.test → PHP 7.4
Xdebug on-demand, per versionDatabases
MySQL or MariaDB cover common PHP apps; PostgreSQL, Redis and MongoDB are available when your stack needs them. phpMyAdmin ships for MySQL/MariaDB, and EnvKit includes web admin UIs for PostgreSQL (pgAdmin) and MongoDB (mongo-express) too.
Relational
mysql / mariadb :3306
postgres :5432
Key-value & documents
redis :6379
mongodb :27017
Web admin
phpMyAdmin (MySQL/MariaDB), Postgres & Mongo UIsPrefer a desktop client to the web UIs? On the Databases page each running engine has an Open in… button that launches HeidiSQL or TablePlus already connected to your local server — no host/port/password to type. EnvKit can install HeidiSQL for you (it's open source); TablePlus opens its official download, then EnvKit detects it.
Mail (Mailpit)
Use Mailpit for local password resets, notifications and test sends. It runs an SMTP server plus a web inbox, so mail your app sends is caught locally and never leaves your machine.
Node dev sites
React, Next.js and other Node dev servers can be linked as local sites too. EnvKit keeps the project URL stable while the framework dev server handles hot reload behind it.
Next.js project
E:\Sites\acme-dashboard
EnvKit route
https://acme-dashboard.test
Dev server target
http://localhost:5173Laravel Reverb
EnvKit is designed for Laravel apps that need more than PHP-FPM. Run Reverb beside Redis, queue workers, your database, and the trusted local web server so realtime features can be tested without exposing a public tunnel. One-click install, supervise, and proxy per site.
Laravel app
https://acme-app.test
Realtime server
php artisan reverb:start
ws://127.0.0.1:8080
Companion services
php-fpm :9000
redis :6379
queue workerBundled services
EnvKit mirrors the service binaries it installs, so setups don't depend on flaky upstreams. These are the versions shipped today (the machine-readable index lives in lib/services.json on the releases repo).
Beyond the web/PHP/database stack you can also install Meilisearch (a fast search engine with an HTTP API + dashboard) and MinIO (S3-compatible object storage with a web console) straight from the Services page — handy for Laravel Scout or any app that talks to S3 locally.
| Service | Bundled version |
|---|---|
| nginx | 1.26.2 |
| Apache | 2.4.68 |
| PHP | 8.5.6 (+ 7.4 – latest) |
| MariaDB | 10.11.10 |
| MySQL | 8.0.40 · 8.4.3 LTS |
| PostgreSQL | 17.2 |
| MongoDB | 7.0.14 |
| Redis | 5.0.14.1 |
| Node.js | 26.2.0 |
| Mailpit | 1.21.8 |
| phpMyAdmin | 5.2.3 |
Import from Laragon
If your current workflow lives in Laragon, start by importing existing projects instead of rebuilding every host by hand. EnvKit detects project folders, provisions hosts, carries over enabled PHP extension context, and can transfer databases (including MySQL → MariaDB).
Laragon source
C:\laragon\www
Imported into EnvKit
sites detected
hosts provisioned
databases MySQL → MariaDB transfer
php extensions matchedPATH sync
Sync EnvKit's php, mysql and nginx to your user or system (Machine) PATH. Stale entries are pruned, and competing stacks (Laragon / XAMPP / WAMP / MAMP / Herd) are auto-removed so nothing shadows EnvKit's binaries.
Sync target
( ) User PATH
(•) System (Machine) PATH
Pruned
stale EnvKit entries
competing stacks (Laragon / XAMPP / WAMP / MAMP / Herd)
Result
php / mysql / nginx → EnvKit, nothing shadowingDiagnose & self-heal
When a service won't start, run Diagnose. EnvKit finds port conflicts, stale PIDs and bad configs, then offers to repair them — so you fix the one service that needs attention instead of restarting the whole stack.
AI control (MCP)
EnvKit ships an MCP server so AI assistants — Claude Code / Desktop, Cursor, Windsurf, VS Code, Zed, OpenCode, Gemini CLI, and PhpStorm / JetBrains IDEs (via Junie) — can operate your local stack: add/remove sites, manage MySQL databases, and start, stop, or diagnose services.
Settings → AI
1. Enable MCP server
2. Set up AI clients registers globally + installs skill
3. Restart your AI client
Endpoint
http://127.0.0.1:<port>/mcp (bearer token, local-only)Ask your assistant
"start redis"
"diagnose why mysql will not start, then repair it"
"list my Laravel sites"
"add this project as a .test site"
"create a MySQL database for acme-app"Tools & installers
Beyond the runtimes, EnvKit bundles one-click installers for the developer tools you reach for most, and Composer/Laravel scaffolding so you can spin up a new project without leaving the app.
One-click installers
Composer Git gh (GitHub CLI)
nvm ngrok Cmder
Scaffolding
composer create-project ...
laravel new acme-appLanguages & translations
EnvKit ships in English, Arabic, German, Persian (Farsi), and Spanish, and switches instantly from the language picker in the title bar or Settings → Language. Right-to-left languages (Arabic, Farsi) flip the whole layout automatically.
You can add or fix a language without waiting for a release. On first run EnvKit publishes a locales folder in its data directory with a README and a _template.json containing the complete, current key list. Copy it to <code>.json (e.g. fr.json), set the language name and direction, translate the values, and restart — your language appears in the picker. A file with a built-in code (e.g. de.json) overrides that translation, so you can correct wording too.
%ProgramData%\envkit\locales\
_README.md how-to
_template.json full English key list
fr.json <- drop your language here
fr.json
{
"_meta": { "label": "Français", "dir": "ltr" },
"translation": {
"nav": { "dashboard": "Tableau de bord", ... }
}
}Troubleshooting
When something does not respond, start with the service state and port ownership. Most local stack issues are either a stopped service, a busy port, or a browser holding old certificate state.
Port check
nginx :443 running
mysql :3306 running
mailpit :8025 running
If a port is busy:
1. Stop the conflicting app (or run Diagnose)
2. Restart the EnvKit service
3. Re-open the .test hostSupport
Found a bug or have a feature request? Open an issue on GitHub and include your OS version, EnvKit version, and steps to reproduce.
- Issues: Env-Kit/envkit-releases
- Releases & changelog: latest release