Installation
WhatsMine can be installed two ways — both take only a few minutes:
- 🪄 Web installer — a browser-based setup wizard at
/install. Recommended for most users; no terminal needed for the setup itself. - ⌨️ CLI installer — the
php artisan saas:installcommand, for terminal or automated/scripted deployments.
Either way you first prepare the files, database and .env, then run one of the two installers.
Overview
- Upload / extract the files and install dependencies
- Create the database
- Configure the
.envfile (and generate the app key) - Build the frontend assets
- Run the installer — Web or CLI
- Log in
Step 1 — Get the files and install dependencies
Extract the package onto your server, then from the project root run:
# Install PHP dependencies
composer install
# Install Node dependencies (needed to build the UI)
npm install
Shared hosting?
If your host doesn't give you SSH access to run Composer/Node, you can run these on your local machine, then upload the resulting vendor/ folder and the built public/build/ assets. Most VPS and managed hosts support SSH.
Step 2 — Create the database
Create an empty MySQL database and a user with full privileges on it. Note the database name, username and password — you'll enter them in the installer.
CREATE DATABASE whatsmine CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'whatsmine'@'localhost' IDENTIFIED BY 'a-strong-password';
GRANT ALL PRIVILEGES ON whatsmine.* TO 'whatsmine'@'localhost';
FLUSH PRIVILEGES;
The database must already exist
The installer creates all the tables, but it does not create the database itself. Create the empty database first (as above).
Step 3 — Configure your environment
Copy the example environment file and generate the application key:
cp .env.example .env
php artisan key:generate
Open .env and set at least your URL:
APP_NAME="WhatsMine"
APP_ENV=production
APP_DEBUG=false
APP_URL=https://your-domain.com
# Leave APP_INSTALLED=false so the setup wizard runs.
APP_INSTALLED=false
You can enter your database credentials in the web installer (Step 5A) — or set DB_* here now if you prefer the CLI:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=whatsmine
DB_USERNAME=whatsmine
DB_PASSWORD=a-strong-password
Mail, billing and integrations can be configured now or later from the admin panel. The full list of variables is in the Configuration reference.
APP_KEY is required before the web installer
The setup wizard needs a valid APP_KEY for sessions to work, so run php artisan key:generate before opening /install. (The CLI installer generates it for you.)
Step 4 — Build the frontend
Compile the React UI (the web installer is part of it, so build before opening the wizard):
npm run build
Step 5 (Option A): Web installer
With APP_INSTALLED=false, every page redirects to the setup wizard. Open your site in a browser — you'll land on:
https://your-domain.com/install
📸 Screenshot: The WhatsMine setup wizard — branded sidebar with the step list on the left, the active step on the right.
The wizard walks you through five steps:
| Step | What you do |
|---|---|
| 1. Requirements | An automatic pre-flight check of your PHP version, required extensions and writable paths. All rows must be green to continue. |
| 2. Application | Confirm the app name, public URL and environment (production/local). |
| 3. Database | Enter your database host, port, name, user and password, then click Test connection to verify before continuing. |
| 4. Admin | Create the platform super-admin (name, email, password) you'll sign in with. |
| 5. Confirm & install | Choose Production (core data only) or Demo (core data plus sample contacts, conversations, an AI chatbot and demo billing), then click Install now. |
When you click Install now, WhatsMine writes your settings to .env, runs all migrations, seeds the data, creates your admin account, then locks the installer (APP_INSTALLED=true) and sends you to the sign-in page.
The installer locks itself
Once installation succeeds, APP_INSTALLED is set to true, the /install route redirects away, and the wizard can't be run again. If a step fails partway through, nothing is locked — fix the issue and retry; the seeders are safe to re-run.
Step 5 (Option B): CLI installer
Prefer the terminal (or scripting your deploy)? With your DB_* values set in .env, run:
php artisan saas:install
The command will:
- Generate the application key (if missing) and run all database migrations.
- Seed internationalisation defaults and the core data (roles, plans, currencies, email templates, pages).
- Prompt you to create the super-admin — name, email and password.
- Clear caches.
CLI installer options
| Command | What it does |
|---|---|
php artisan saas:install | Standard install (migrate + seed core + create admin). |
php artisan saas:install --seed | Also seeds demo data (sample contacts, conversations, etc.) — great for evaluating. |
php artisan saas:install --fresh | Drops all existing tables and re-creates them. Use only on a clean/wiped database. |
php artisan saas:install --fresh --seed | Fresh database with demo data. |
Warning
--fresh permanently deletes all data. Never run it on a live database.
The web and CLI installers share the same underlying logic, so the result is identical. The CLI does not automatically set
APP_INSTALLED=true— for a CLI install, setAPP_INSTALLED=truein.envyourself when you're done so the setup wizard stays disabled.
Step 6 — Log in
- Sign in:
https://your-domain.com/login— the single sign-in page for both the super-admin account you just created and your business customers. WhatsMine detects an admin account and sends it to the admin panel; everyone else lands in the customer app. (/admin/loginstill works and simply forwards here.) - Marketing site:
https://your-domain.com/— the public landing page.
📸 Screenshot: The sign-in screen at
/login.
Recommended next steps
After logging in, before you launch:
- Set up your queue worker and cron — see Deployment. Without these, campaigns, inbound messages and emails won't process.
- Brand the platform — Branding & Settings.
- Configure email (SMTP) — Email System.
- Connect a payment gateway — Payment Gateways.
- Add your integrations — Integrations.
- Run the Going Live Checklist.
Quick command reference
composer install # PHP dependencies
npm install # Node dependencies
cp .env.example .env # create env file
php artisan key:generate # generate APP_KEY (required for the web installer)
npm run build # compile the UI
# then either:
# open https://your-domain.com/install (web installer)
# or:
php artisan saas:install # CLI installer