Installation

Vantage ships with a web installer: upload the files, open your site in a browser, and answer four screens. If you would rather do it from a terminal, the manual route is at the bottom of this page.

In a hurry? Quick start is the same process condensed to eight numbered steps, written for someone who has never installed a Laravel application.

Server requirements

RequirementVersionNotes
PHP8.3 or newerWith curl, dom, fileinfo, json, mbstring, openssl and pdo
DatabaseMySQL 8+, MariaDB 10.6+, PostgreSQL 13+ or SQLite 3.35+SQLite is fine for a single store
Composer2.xOnly if you install from source rather than uploading vendor/
Node.js20+Only if you want to rebuild the CSS. The compiled assets are included.
Cron—Required. Vantage collects and reports on a schedule.
The sodium extension is optional. It makes license signature checks faster. Vantage bundles a pure-PHP fallback, so a host without it works exactly the same. The installer tells you which one you have.
You need cron. Collecting reviews is deliberately slow — Vantage waits between requests to be polite to the sites it reads. That work cannot happen inside a web request. If your hosting does not allow scheduled tasks, Vantage is not a good fit.

Installing with the web installer

  1. Upload the files Point your domain's document root at the public/ directory — not at the project root. On shared hosting that usually means putting the contents of public/ into public_html/ and the rest of the application in a sibling folder, then editing the two require paths at the bottom of public_html/index.php to point at it.

    Expected: visiting your domain redirects to /install.

    Database details. The connection is tested before anything is written to .env.
    Database details. The connection is tested before anything is written to .env.
    The first installer screen checks the server and prints the exact fix beside anything missing. Nothing has been changed at this point.
    The first installer screen checks the server and prints the exact fix beside anything missing. Nothing has been changed at this point.
  2. Install dependencies If your host has Composer:
    composer install --no-dev --optimize-autoloader
    If it does not, run that command on your own machine and upload the resulting vendor/ folder.

    Expected: a vendor/ directory exists beside artisan.

  3. Open your site The installer checks your PHP version, extensions and folder permissions, and prints the exact command to fix anything that is not right.

    Expected: every row has a green check.

  4. Database and site address Create an empty database in your control panel first, then enter its details. The connection is tested before anything is written.

    Expected: your settings are saved to .env, the tables are created, and you move to the next screen. On failure nothing is changed and you see the exact database error.

  5. Your workspace and account

    Expected: you can sign in with these details once installation finishes.

  6. Your license Enter your purchase code, or skip and enter it later from Settings → License.

    Expected: the code is accepted. See Your license if it is not.

  7. Add the cron entry The final screen prints the exact line, with your real path filled in. Add it in your control panel, set to run every minute.

    Expected: within an hour of connecting a store, its row shows a recent collection run.

The installer locks itself. Once setup completes, every installer URL redirects to the admin panel and cannot be used again. That lock is a file at storage/app/installed.lock; deleting it re-opens the installer, which is worth knowing and worth not doing on a live site.

Installing from the command line

If you prefer a terminal, skip the installer entirely:

composer install --no-dev --optimize-autoloader
cp .env.example .env
php artisan key:generate

# edit .env: APP_URL, DB_*, and VANTAGE_USER_AGENT

php artisan migrate --force
php artisan storage:link
php artisan config:cache

# create the lock file so the web installer stays closed
touch storage/app/installed.lock

Then create your first workspace and owner. The quickest way is the demo seeder, which also gives you sample data to look at:

DEMO_PASSWORD=choose-a-strong-one php artisan db:seed --force

Expected: the command prints the accounts it created and their password.

Setting your bot identity

This is not optional. Vantage identifies itself honestly to every site it reads, and the default value points at an example domain.

VANTAGE_USER_AGENT="YourCompanyBot/1.0 (+https://yoursite.com/bot; review analytics for the store owner)"

Put a real page at that URL saying who you are and how to be contacted. See Troubleshooting for what happens when a site blocks you.

The cron entry

* * * * * cd /path/to/vantage && php artisan schedule:run >> /dev/null 2>&1

That single entry drives everything on a schedule:

TaskWhen
Collect reviews for stores whose interval has elapsedHourly
Generate weekly reportsDaily, at your configured hour
Check for sentiment drops and collection failuresEvery six hours
Re-check the licenseWeekly
Prune old runs and usage logsWeekly

Verifying the install

php artisan vantage:mail-test [email protected]   # outbound email
php artisan vantage:license --check             # license status
php artisan vantage:chat-test                   # live chat, if enabled
php artisan schedule:list                       # scheduled tasks

Optional: rebuilding the CSS

The compiled assets ship with the download, so this is only needed if you change the theme.

npm install
npm run build