Open source · Free

Run any Laravel project locally.
Zero configuration.

Point Laranest at a project and it gives it its own PHP, its workers and HTTPS athttps://<app>.localhost. No Docker, no admin rights, no config files. For Linux, WSL2, Windows and macOS.

$curl -fsSL https://github.com/nbullorini/laranest/releases/latest/download/install.sh | bash

Then open http://localhost:9150. Supported platforms

localhost:9150
The Laranest panel listing Laravel apps grouped by project, with their status, processes and PHP versions
FreeOpen source (AGPL v3)No DockerNo admin rightsLinux, WSL2, Windows & macOSx86_64 & ARM64

Features

Everything your app needs to run. Nothing more.

Laranest reads your project and runs it the way it runs in production, on your own machine.

Zero configuration

Laranest reads composer.json, .env and your schedule to detect the Laravel and PHP versions, queues, Horizon, the scheduler, Reverb and Vite. You review it and press start.

Lightweight by design

No virtual machines, no containers, no background services you didn’t ask for. A single binary runs your apps as native processes, so your machine’s resources go to your code.

Every process, supervised

A PHP-FPM pool per app, plus its queue worker or Horizon, scheduler, Reverb and Vite. Crashed processes restart on their own, and every one has live logs.

HTTPS out of the box

Every app gets https://<app>.localhost, signed by a local certificate authority that your browsers trust, including on Windows when the apps run inside WSL2.

The right PHP for each app

Each project runs on the PHP version its composer.json asks for, or the one you pin. Missing versions download on demand, and updates keep your php.ini.

No admin rights required

PHP, Composer and Node are installed for your user only. Nothing touches your system packages, and the installer never asks for sudo or an administrator account.

dump() and dd() in the panel

Turn on dump capture for an app and every dump() and dd() lands in the panel, with the file and line that made it and the request or command it came from. No paid tier.

The Laravel log, readable

storage/logs in the panel: entries by level, searchable, each exception with its stack trace. Your AI assistant can read it too, through the MCP server.

Xdebug, only where you need it

Switch Xdebug on for one app: it loads into that app’s web process only and starts on a trigger from your browser, so everything else keeps running at full speed.

Share with a link

Show your work to a client or test a webhook: one click gives the app a public HTTPS link through a free Cloudflare tunnel, and Laravel builds its URLs with it.

One setup for the whole team

Save an app’s PHP version, processes and custom commands to laranest.json and commit it. Everyone who adds the project gets the same setup, and a git pull keeps it in sync.

Everything included, free

Dumps, the log viewer, Xdebug, sharing and the MCP server are part of Laranest, not of a paid plan. It is open source under the AGPL v3, and free.

Diagnostics

Know what’s wrong before you open the logs

Laranest checks the most common configuration problems and every service your app depends on. When something fails, it tells you exactly what and where, so you don’t have to guess from a blank page or dig through a stack trace.

localhost:9150
An app's overview listing problems: pending migrations, Redis rejecting the authentication, an APP_URL mismatch and Meilisearch not responding

Your configuration

  • Missing .env file or values
  • Empty or invalid APP_KEY
  • APP_URL that doesn’t match the app’s URL
  • Stale configuration cache
  • Unwritable storage/ and bootstrap/cache/
  • Missing PHP extensions, and the packages that need them
  • Missing vendor/ or node_modules/, unbuilt Vite assets

The services around it

  • MySQL and PostgreSQL: unreachable, wrong credentials, missing database
  • Pending migrations
  • Redis: down, rejected authentication, invalid REDIS_DB
  • SMTP servers that are down, or ports that aren’t SMTP
  • Meilisearch and Typesense for Laravel Scout
  • Docker-only hostnames (DB_HOST=mysql) used outside Sail
  • HTTP 500s, with the exception from the log

Fixes you can review first

Many problems come with a one-click fix. Changes to .env are shown as a diff before anything is written, and commands such as php artisan migrate or npm install run from the panel with the project’s own PHP and Node.

localhost:9150
A dialog showing the .env change that will be applied: APP_URL from http://localhost to https://crm.localhost

The panel

Your whole local setup, in one place

Commands run in the project’s folder with its own PHP and Node, and every run is kept with its output.

localhost:9150
The Commands tab showing the output of php artisan migrate

How it works

From git clone to HTTPS in three steps

  1. 1

    Add your project

    Pick one of the Laravel projects Laranest finds in your home folder, or enter a path. Review the detected versions and processes.

  2. 2

    Start it

    If the project needs a PHP version you don’t have, Laranest downloads it. Then it starts the web server and every worker.

  3. 3

    Open it in your browser

    Your app is live at https://<app>.localhost. If something needs attention, the panel tells you what and how to fix it.

~/code/storefront
$ laranest php artisan migrate
   INFO  Running migrations.
  2025_10_01_120000_create_orders_table ... 38ms DONE

$ laranest npm run build
vite building for production...
✓ built in 1.84s

$ laranest shims enable
$ php -v   # the project’s PHP, in every folder

CLI

The right PHP in your terminal, too

Prefix any command with laranest and it runs with the project’s own PHP and Node:php, composer, npm, npx and node. Enable the shims and plain php and composer follow each project automatically.

Manage PHP versions with laranest php:install and php:update, trust the local certificate authority with laranest trust, and stay current with laranest update.

AI assistants · MCP

Let your AI assistant run your apps

Laranest includes an MCP server. Claude, Cursor, VS Code or any MCP client can add projects, change their settings, start and stop them, read their logs, fix their warnings and run artisan, composer or npm, with the same rules as the panel. Destructive actions ask you first.

  1. Install Laranest with the command above.
  2. Connect your AI client. In Claude Code:
    $claude mcp add -s user laranest -- laranest mcp
    Claude Desktop, Cursor, VS Code and others take this in their MCP settings:
    { "mcpServers": { "laranest": { "command": "laranest", "args": ["mcp"] } } }
    The panel’s MCP button shows it with the full path tolaranest, and the variant for AI apps on Windows reaching Laranest in WSL2.
  3. Ask. “Add ~/code/shop to Laranest and get it running”, “Why does the queue keep failing?”, “Run the migrations on billing”.
AI assistant
> Add ~/code/shop to Laranest and get it running

● laranest · inspect_project Laravel 12, PHP ^8.3, queue, Vite
● laranest · add_app shop
● laranest · get_app 2 warnings: APP_KEY is empty,
  the database has pending migrations
● laranest · fix_warning app_key  ✓ .env updated
● laranest · run_command php artisan migrate  ✓ exit 0
● laranest · start_app shop

shop is running at https://shop.localhost
with its queue worker and Vite.

Platforms

Runs where you work

Most Linux distributions, WSL2, Windows and macOS, on x86_64 and ARM64.

Linux

Any distribution with systemd 236+ and glibc 2.28+.

  • Ubuntu 20.04+
  • Debian 11+
  • Fedora
  • RHEL, Rocky & Alma 8+
  • CentOS Stream 9+
  • Arch & Manjaro
  • openSUSE
  • Linux Mint & Pop!_OS

WSL2

Any of those distributions with systemd enabled. Browse your apps from Windows, with trusted HTTPS.

  • Windows 10 & 11
  • systemd=true

Windows

Runs natively, without WSL or administrator rights.

  • Windows 10 & 11, 64-bit
  • ARM64 via x64 emulation

macOS

Runs natively as a background service of your user, without administrator rights.

  • macOS 13+
  • Apple silicon & Intel

Tested on every change on Ubuntu 22.04 and 24.04 (x86_64 and ARM64), Windows Server 2025 and macOS 15 (Intel), and on Windows 11.

Compare

Native speed, without the heavy setup

One binary of about 60 MB of memory, running your apps as native processes. No containers, no virtual machines, no admin rights, and native on Windows too. Free and open source.

FeatureLaranestLerdLaravel HerdValetSail
Platforms
Linux✓✓✕✕✓
WSL2✓✓✕✕✓
Windows 10/11, native✓✕✓✕✕
macOS✓✓✓✓✓
Footprint
What runs on your machineOne binaryPodman containersNative appNginx + dnsmasq + PHPDocker containers
Lightweight*Nothing heavy running in the background✓✕✕✓✕
No prerequisites✓✕✓✕✕
No sudo or admin needed✓✕✕✕✕
Setup complexityLowMediumLowMediumHigh
Day to day
Validates .env and its services✓Partial✕✕✕
Runs queue, scheduler, Reverb and Vite✓✓Partial✕Manual
Custom processes✓✓✕✕Via docker-compose.yml
Databases, Redis and mail✕✓✕✕✓
Project settings in the repolaranest.json.lerd.yamlherd.ymlPHP versiondocker-compose.yml
MCP server for AI assistants✓✓✓✕✕
Debugging
dump() and dd() captured✓✓✕✕✕
Laravel log viewer✓✓✕✕✕
Instant Xdebug per app✓✕✕✕✕
Public share link✓✓Via Expose✓✓
License
Open sourceAGPL v3MIT✕MITMIT
PriceFreeFreeFreeFreeFree

Based on each tool’s public documentation, comparing free versions. * Lightweight: no containers, virtual machines or desktop app running in the background. Tools that only run on Windows inside WSL2 count as not native. On macOS, containers run inside a Linux virtual machine. Something out of date? Let us know.

FAQ

Frequently asked questions

Can AI assistants manage my apps?

Yes. Laranest includes an MCP server (laranest mcp): connect Claude Code (claude mcp add -s user laranest -- laranest mcp), Claude Desktop, Cursor, VS Code or any MCP client and it can list, add and configure your apps (advanced settings included), start and stop them, read logs, fix warnings and run artisan, composer and npm commands. It goes through the same rules as the panel, and tools that change things are marked so your client asks you before running them.

Which Linux distributions are supported?

Any distribution with systemd 236 or newer (with a user session) and glibc 2.28 or newer: Ubuntu 20.04+, Debian 11+, Fedora, RHEL, Rocky and Alma 8+, CentOS Stream 9+, Arch, Manjaro, openSUSE, Linux Mint, Pop!_OS and more, on x86_64 and ARM64. Ubuntu is tested on every change; if something doesn’t work on your distribution, please open an issue.

Does Laranest run MySQL, Redis or a mail server for me?

No. Laranest connects to the services your .env points to, wherever they run (installed locally, in Docker or remote), and tells you clearly when one is down or misconfigured. This keeps it light and lets you choose how to run your services.

Will it modify my projects?

No. The only change it can make is to your .env file, and only after you review the exact diff and confirm it.

How does it work with WSL2?

Laranest runs inside your Linux distribution as a user service and you browse from Windows as usual. It can trust its certificates in Windows and keep WSL running after you close the last terminal.

Can I use Horizon on Windows?

Horizon depends on the pcntl extension, which only exists on Unix. On Windows, Laranest runs queue:work for your queues instead. For projects that rely on Unix tooling, run Laranest inside WSL2.

Is it really free?

Yes, and it will stay that way. Laranest is open source under the GNU AGPL v3. There is no account, license key or paid tier, and you can use it at work.

Does it run on macOS?

Yes: the same install command works on Apple silicon and Intel Macs. Laranest runs as a launchd agent of your user and downloads PHP builds for macOS. Apps are served on ports 8080/8443 for now, as macOS reserves 80 and 443 on localhost for administrators. It is tested on every change on macOS 15; if something doesn't work on your Mac, please open an issue.

How does my team get the same setup?

Open an app’s Settings and save them to laranest.json: its PHP version, HTTPS, processes and custom commands. Commit the file. Whoever adds the project to Laranest starts from it, and when it changes after a git pull, Laranest applies it again. Names, groups, dumps and Xdebug stay personal.

Can I show an app to someone outside my machine?

Yes: Share gives a running app a public https://…trycloudflare.com link through a free Cloudflare quick tunnel, no account needed. Laravel builds its URLs with that address. Anyone with the link can open the app until you stop sharing it.

How do I debug with Xdebug?

Turn Xdebug on in the app’s Settings. It loads only into that app’s web process and starts a session when your browser’s Xdebug helper extension sends the trigger, with your IDE listening on port 9003. On Linux it comes with Laranest’s PHP builds; on Windows it is downloaded from PECL. Not available on macOS yet.

How do I update or uninstall it?

Click “Update now” in the panel or run laranest update. Your apps, settings and PHP versions are kept. To remove it, laranest uninstall stops every app and removes the service.

Still have a question? Write to us at contact@laranest.dev.

Spend your time on code, not on setup

One command, no admin rights. Your Laravel apps on HTTPS in a couple of minutes.

$curl -fsSL https://github.com/nbullorini/laranest/releases/latest/download/install.sh | bash