Free & open source · Windows 10 / 11

Your local web,
at home.

PHP, MariaDB, PostgreSQL, Redis, Node and HTTPS .test sites, from one small program. Drop a folder in ~\Sites and it’s a website. Nothing to configure.

Latest release · MIT licence · no admin rights needed

laman /ˈla.man/ is Malay for courtyard. And laman web means website. The mark is a Malay roof with crossed gable ends (silang gunting) sheltering a command prompt.

The dashboard

Every service, every site, one glance.

A dashboard at 127.0.0.1:7171 and a tray icon. Switch PHP per site, start dev servers, share a link, read the logs. Or do all of it from the command line.

The laman dashboard: Web, PHP, Node, MariaDB, PostgreSQL, Redis and Mailpit running, and a list of .test sites with their PHP versions and Node dev servers

What’s in the courtyard

Everything a PHP project needs, already running.

Sites

Folders become .test sites, with real HTTPS

Every folder in ~\Sites is served at https://<folder>.test. ./public is used when present. laman runs its own local certificate authority, limited to your local names, so the padlock is green and nothing else is trusted.

  • Add more project folders, e.g. C:\laragon\www
  • Grouped projects: acme\api → acme-api.test
  • Built on the Caddy web server, embedded
PHP

Per-site PHP

Install several versions side by side and pin one per project with laman isolate. Xdebug, APCu, Redis, Imagick and more, one command each.

Databases

MariaDB, PostgreSQL, Redis

Switch versions in two seconds. laman upgrade copies your data to the newer line and keeps the old one for rollback.

Node

Dev servers behind .test

Vite, Nuxt, Next, Astro and friends run behind their own HTTPS name with live reload. .nvmrc and engines.node are honoured.

Mail

Mailpit catches every email

SMTP on :1025, inbox on :8025. PHP’s mail() goes there too, so nothing leaks to real people.

Share

Share a site in one command

laman share blog opens a public link through a Cloudflare tunnel: for a client, a phone or a webhook. Or bring your own domain.

Queues

See your Laravel queues

Waiting, delayed and failed jobs across every site, in Redis or the database. Retry or delete failures from the page.

Apps

Database tools, one click

Adminer, phpMyAdmin, phpRedisAdmin and DBZuper install as apps at their own .test address.

Yours

No admin rights, no services

Everything lives in %USERPROFILE%\.laman. Downloads are checksum-verified where publishers allow. Updates in one click.

WebCaddy
PHP8.x
NodeLTS + current
MariaDB11 · 12
PostgreSQL17 · 18
Redis8
MailpitSMTP + inbox

Quick start

From a folder to https:// in four lines.

The setup program downloads PHP, MariaDB, Composer and Node for you. After that, a project is just a folder.

  1. Make a folder. Any folder in ~\Sites becomes a site.
  2. Start laman. Or let it start when you sign in to Windows.
  3. Add the name. One UAC prompt writes blog.test to hosts.
  4. Trust once. laman’s local CA makes HTTPS warning-free.
PowerShell
# any folder becomes a site
mkdir ~\Sites\blog
laman start
# adds blog.test to the hosts file
laman hosts
# no certificate warnings on https://blog.test
laman trust

And when you need more:

laman isolate 8.3 laman use mariadb 12.3 laman xdebug on laman share blog laman app install adminer laman composer laman psql laman mail

Bring your projects home.

Download the setup program and run it. On the last page, leave Download and set up PHP, MariaDB, Composer and Node ticked.

SmartScreen? The setup program isn’t code-signed yet, so Windows may say it “protected your PC”. Choose More info → Run anyway. Every release lists the SHA-256 of each file in checksums.txt.

Uninstall from Settings → Apps → laman. It asks before touching your databases.