WinRavel turns any Laravel application into a single, self-contained Windows .exe. FrankenPHP (PHP 8.5 + Caddy) runs inside the executable, the database is baked in, and the whole thing just runs — no PHP, no web server, and no installation required on the target machine.
What it does
- One .exe per app. Double-click it and a small dark control window opens — status indicator, "Open in browser", Stop, and a live server log — while it serves your Laravel app on
127.0.0.1. - Set up at build time.
composer install,key:generate,migrate, and optionaldb:seedall run during the build, so the shipped executable is ready to go. - Source protection. Optional obfuscation of your
app/directory (deflate + XOR + base64 into self-decoding stubs) while class and namespace names stay intact so Laravel keeps working. - No orphan processes. A Windows Job Object ties the PHP server (and bundled database) to the launcher, so closing the app cleans everything up.
The builder
Pick a source — a local folder or a GitHub repository (public or private with a token) — set the app name, port, and an optional .env, then choose your toggles and hit Build.

Building straight from a private GitHub repository — git is bundled, so nothing extra is needed on the build machine:

Everything is bundled
The installer ships with FrankenPHP, Composer, portable Git, and the launcher runtime. The build machine doesn't need PHP, Node, the .NET SDK, or anything else installed.
Database options
- SQLite (default) — fully self-contained, baked and migrated at build time.
- Bundle MariaDB — ships a real MySQL-compatible server inside the app, migrated at build and automatically started and stopped by the launcher.
- Force SQLite — rewrite a MySQL/PostgreSQL
.envto SQLite (handy, but may break MySQL-specific SQL). - External MySQL/PostgreSQL — drivers are bundled; connect to your own server.
How it works
WinRavel precompiles a launcher "stub" once, with the FrankenPHP runtime baked in. Each build simply appends your Laravel app (plus a small config) to a copy of that stub — a self-extracting executable. No recompilation per build, so builds are essentially instant. At runtime the executable extracts the runtime and your app to %APPDATA% and starts the server.
Tech stack
Built in C# / .NET (WinForms) for the builder and the launcher, on top of FrankenPHP and Caddy. The builder itself is a single self-contained executable.
Download
WinRavel is open source. Grab the installer and source from GitHub:
- Repository: github.com/fdciabdul/WinRavel
- Download: latest release (
WinRavel-Setup.exe)
Note: the shipped executables target Windows x64 and rely on the Visual C++ Redistributable, which is preinstalled on current Windows 10/11.
Comments