Installation Guide

Local Mode

Local Mode is designed for WordPress development on your machine. No authentication, no restrictions, persistent data.

Prerequisites

  • Docker Desktop (Windows/macOS) or Docker Engine (Linux)
  • Git
  • 4GB+ RAM recommended

Install

git clone https://github.com/msrbuilds/wp-launcher.git
cd wp-launcher
bash install-local.sh

What the installer does

  1. Generates a .env file with default local settings
  2. Builds the WordPress Docker image for PHP 8.3 (the VPS installer can also build 8.2, 8.1 and 7.4; any other version can be built later from Settings → Images)
  3. Installs the wpl CLI globally (symlinks bin/wpl)
  4. Starts all Docker Compose services
  5. Opens the dashboard at http://localhost
Persistent Data: All site data is stored in Docker volumes under the data/ directory. Your sites survive restarts and updates.

Mailpit catches all outgoing WordPress emails at http://localhost:8025. No authentication or restrictions are applied in local mode.

Agency Mode (VPS)

Agency Mode deploys WP Launcher on a public VPS with authentication, wildcard SSL, auto-expiring demo sites, and role-based admin.

Prerequisites

  • Ubuntu 22.04+ VPS with 2GB+ RAM
  • A domain with DNS pointed to the VPS IP (A record for yourdomain.com and *.yourdomain.com)
  • Ports 80 and 443 open

Install

curl -sSL https://wplauncher.msrbuilds.com/install.sh | bash

What the installer does

  1. Installs Docker and Docker Compose if not present
  2. Clones the repository to /opt/wp-launcher
  3. Prompts for: base domain, admin email, admin password, SMTP configuration
  4. Generates secure secrets (JWT_SECRET, API_KEY)
  5. Configures Traefik for wildcard SSL via Let's Encrypt
  6. Offers SSL method choice: Cloudflare DNS (single wildcard cert) or HTTP challenge (per-subdomain certs)
  7. Builds WordPress Docker images for all PHP versions
  8. Starts all services via docker compose up -d
SSL Method Choice: Cloudflare DNS challenge creates one wildcard certificate and works with Cloudflare proxy (orange cloud). HTTP challenge creates separate certs per subdomain and is incompatible with Cloudflare proxy — use DNS-only (grey cloud).

Manual Setup

For custom deployments or when the automated installer doesn't fit your needs.

Steps

# 1. Clone the repo
git clone https://github.com/msrbuilds/wp-launcher.git
cd wp-launcher

# 2. Copy and configure environment
cp .env.example .env
# Edit .env — set BASE_DOMAIN, ADMIN_EMAIL, JWT_SECRET, etc.

# 3. Build WordPress base images
bash scripts/build-wp-image.sh

# 4. Create a product config (optional)
bash scripts/create-product.sh

# 5. Build product image (if you created a product)
bash scripts/build-wp-image.sh --product your-product

# 6. Start all services
docker compose up -d