Installation — shared hosting (cPanel)

Self-hosted buyers only: This page explains how to install the purchased Calbok package on your own server. Hosted Calbok customers do not need these steps. Visit the hosted Calbok site instead.

Step 1 — Upload

  1. Extract the release ZIP locally.
  2. Upload the entire application folder to your account home (for example ~/calbok/), not directly into public_html. Your .env and storage/ must stay outside the web root.
  3. In cPanel → Domains → Document Root, point the domain at calbok/public (so only the public/ folder is web-accessible).

Why not public_html alone? Uploading only public/ into public_html while leaving .env one level up is easy to misconfigure. A dedicated app folder plus a document root of …/calbok/public keeps secrets out of the HTTP path.

Step 2 — Create the database

In cPanel → MySQL Databases (or PostgreSQL):

  1. Create a new database (e.g. youruser_calbok).
  2. Create a database user and grant it ALL privileges on that database.

Step 3 — Run the web installer

You do not need to hand-edit dozens of .env keys — the installer writes database settings, APP_URL, cache/queue drivers, and optional SMTP for you.

Navigate to https://your-domain.com/install. The installer has four steps:

Step What it does
1 Check PHP/extensions and writable folders.
2 Database & site Database credentials, site URL, optional advanced settings — tests the DB, saves .env, runs migrations automatically.
3 Your account Creates your Operator login; optional demo data and purchase code.
4 Done Shows any capability warnings, then locks the installer and displays the cron line using your server's real PHP path.

Fix any FAIL (red) items before you finish. WARN (yellow) items do not block installation.

After Finish, /install returns 403. You do not need to delete any installer files.

Step 4 — Cron

Copy the cron line from the installer's Done screen (it uses the real PHP binary path on your server). On RunCloud the path often looks like /RunCloud/Packages/php83rc/bin/php — use whatever your panel shows, not a generic php from PATH.

Example shape (paths vary by host):

* * * * * /RunCloud/Packages/php83rc/bin/php /home/USER/calbok/artisan schedule:run >> /dev/null 2>&1

See Cron and queue for details.

The installer runs php artisan storage:link automatically (best-effort). If branding or business logos 404 after install, run once from SSH or cron:

php artisan storage:link