Skip to main content
Homebrew · macOS · MIT

Serve any folder at
https://name.test

A tiny, brew-based alternative to heavyweight local-server apps for macOS. Trusted HTTPS, the runtime you pick — PHP, Node, or a zero-runtime static server — and optional MySQL, from a handful of shell scripts. Run fs serve and you're live.

1cmd
Zero-config fs serve — default PHP, served, browser opens.
🔒real
Browser-trusted certs per site via mkcert. No red padlocks.
3ways
PHP, Node, or a zero-runtime static server — one setting per project.
$0
MIT-licensed, all Homebrew. No subscriptions, no bulky app.

Featherweight — it barely touches your RAM

No Electron, no bundled Chromium, no always-on menu-bar app — just Caddy and a handful of shell scripts that run only while a site is up. It stays out of the way, so it runs smoothly even on modest, low-memory Macs where heavier local-server apps would crawl.

Features

Everything a local dev host should be

Pretty domains, trusted HTTPS, and per-project runtimes — without the bloat of a menu-bar app.

Pretty local domains

Every folder gets its own https://<name>.test, wired up with dnsmasq + Caddy.

Trusted HTTPS

Real, browser-trusted certificates per site with mkcert — no warnings, green padlock every time.

Pick your runtime

One setting per folder: any brew-installed PHP (8.38.5+), a Node dev server, or a plain static server with no runtime at all.

Node dev servers

Proxy a live dev server (Vite, Astro, Next…) with hot reload, or serve its production build — auto-detects the real port.

MySQL on demand

Opt in per project with db=on — the database and user are auto-provisioned on fs up.

Test on your phone

Flip lan=on to also serve over the LAN at https://<mac>.local with a trusted cert.

.htaccess-style routing

Front-controller rewrites for WordPress, Laravel, Symfony — set rewrite=index.php and go.

Live dashboard

Start, stop, edit config, tail logs and unbind — every site, all from fs dash.

Clean lifecycle

Guided install, setup, fix, and uninstall scripts that never surprise you.

fs dash

Your whole dev fleet, one keystroke away

A live terminal dashboard lists every site with its status, port, and runtime. Move with j/k and act on the row under the cursor — no context switching.

The fs dash terminal dashboard listing sites shop.test and blog.test as running, with their ports and runtimes, plus keyboard shortcut hints.
Works with

Bring the stack you already use

PHP any brew version Node Vite · Astro · Next Static no runtime MySQL auto-provisioned WordPress Laravel
Quick start

Up and running in three steps

macOS with Homebrew — that's it for static sites. For PHP or Node projects, install the runtime you need (e.g. brew install php).

STEP 01

Clone & install

# clone the repo git clone …/folder-server.git cd folder-server ./install.sh
STEP 02

One-time setup

# installs deps + DNS + cert fs setup # run the sudo lines it prints
STEP 03

Serve a folder

cd ~/Sites/my-project fs serve ✓ https://my-project.test

Prefer explicit control? fs init walks you through PHP or Node, routing, and MySQL, then fs up serves it. Full command reference lives in the README.

MIT · Homebrew

Retire the heavyweight server app

Free, open-source, and built on Homebrew. Clone it, run fs setup, and serve your first folder in a couple of minutes.

Get it on GitHub Read the quick start
$ git clone https://github.com/drewaltukhov/folder-server.git