Start

Getting started

Cove is a tiny command-line tool that runs WordPress sites, Laravel apps and plain PHP on your own computer, each at its own https://name.localhost address. No Docker, no virtual machine, and nothing to configure by hand.

Install#

Paste this into a terminal:

bash <(curl -fsSL https://cove.run/install-cove.sh)

The installer sets up everything Cove runs on, starts it, and trusts Cove's local certificate authority, so browsers accept every site's certificate without a warning. It takes a few minutes the first time.

  • macOS, Apple Silicon or Intel. Cove installs what it needs through Homebrew, and offers to install Homebrew first if you don't have it.
  • Linux: Ubuntu and Debian, Fedora and Rocky Linux or RHEL, and the distributions built on them. Install curl first. Each release is tested on Ubuntu 22.04 and 24.04, Debian 12 and 13, Fedora 43 and Rocky Linux 9.
  • Windows, through WSL2 with systemd turned on. See Troubleshooting if it isn't.

Already running Local, Studio, DevKinsta or MAMP on ports 80 and 443? The installer notices and offers to run Cove on 8090 and 8453 alongside them. You can switch later with cove ports.

Your first site#

Pick a name. It becomes the address.

cove add mysite                # WordPress at https://mysite.localhost
cove add myapp laravel         # a new Laravel app
cove add notes plain           # a plain PHP site, no database

A WordPress site comes with an admin user and a made-up password, both printed at the end, plus a link that logs you straight in. Need another link later?

cove login mysite

To see everything Cove is running:

cove list

The rest of the way is in the pages for WordPress, Laravel and plain PHP.

The dashboard#

Open https://cove.localhost. It lists your sites and holds their mail, databases, logs and files, each a click away. It answers only on your own computer. More about the dashboard.

Where things live#

Everything Cove keeps is in one folder in your home directory.

~/Cove/Sites/<name>.localhost/One folder per site. A WordPress or plain site serves its public/ folder; a Laravel site's folder is the project itself, and its public/ is what's served.
~/Cove/Backups/Zips from cove backup.
~/Cove/Snapshots/Snapshots from cove snapshot, one folder per site.
~/Cove/Logs/The shared PHP error log and the services' own logs.
~/Cove/configCove's settings, including the database credentials.

A site's own logs sit in its logs/ folder, and a WordPress site keeps database dumps in private/, beside public/ where the web can't reach them.

What's running#

Cove runs a few background services, which start with your computer and start again if one crashes:

  • FrankenPHP, which is Caddy, the web server, with PHP built in. It serves every site over HTTPS.
  • MariaDB, the database for WordPress sites, and for Laravel apps that ask for it.
  • Mailpit, which catches every email your sites send, so nothing reaches a real inbox.
  • A small watchdog that restarts the web server if it stops answering, and keeps Laravel apps' workers running.

PostgreSQL and Redis are set up only when a Laravel app needs them. cove status shows how each one is doing; cove disable stops them all and cove enable starts them again.

Getting help#

Every command explains itself:

cove help                      # every command, with a line about each
cove help add                  # one command in full
cove add --help                # the same

The command reference has the same list, grouped.

Something wrong or missing here? Open an issue ↗ Every command also explains itself: cove help <command>.