Installation
The built-in installer lives at /install while the installer lock is open. It verifies the environment, writes configuration, runs migrations, seeds required data, creates the first admin, saves branding, and then locks itself.
Before Installing
- Upload the project to the server.
- Point the web root to
public/. - Create a database and database user.
- Make
.env,storage/, andbootstrap/cachewritable by the web server. - Install dependencies and build assets if the package was not prebuilt.
cPanel Two-Folder Install
For shared cPanel hosting, keep private Laravel files outside the web root and expose only the public runtime folder.
| ZIP | Extract location | Expected result |
|---|---|---|
supporthub-root.zip | /home/ovioefiz/ | /home/ovioefiz/supporthub contains app, config, database, resources, routes, storage skeleton, Composer vendor, artisan, and .env.example. |
supporthub-public.zip | /home/ovioefiz/public_html/ | /home/ovioefiz/public_html/supporthub contains index.php, .htaccess, public assets, public vendor assets, and live documentation. |
The cPanel public index.php is packaged to resolve the private app root at dirname(__DIR__, 2).'/supporthub'. Do not upload .env, local logs, screenshots, test files, Node packages, videos, or storage runtime uploads. The installer starts fresh and writes .env, APP_KEY, database credentials, APP_URL, CENTRAL_DOMAINS, and TENANT_DOMAIN_SUFFIX.
For a subfolder install, use the final app URL during setup:
https://YOUR-DOMAIN.com/supporthub
Installer Steps
| Step | Purpose | What to check |
|---|---|---|
| 1. Requirements | Checks PHP, extensions, writable paths, and environment readiness. | All hard checks must pass before continuing. |
| 2. App Settings | Saves app name, short name, description, URL, timezone, locale, date/time format, currency, and maintenance mode. | Use the final public URL if links will be sent by email. |
| 3. Database | Tests and stores database connection values. | The database must already exist and accept the supplied user. |
| 4. Migrations and Seeds | Runs migrate, required seeders, and optional demo seeders. | Do not refresh the page while setup is running. |
| 5. Channels | Configures SMTP/sendmail/log mailer and optional Twilio SMS/WhatsApp settings. | Use SMTP or log locally; production should use a real SMTP provider. |
| 6. Admin Account | Creates the first internal admin user. | The password follows the active security policy. |
| 7. Branding | Saves colors, sidebar theme, app mode, login branding, logos, favicon, and default avatar. | Uploads are optional; color hex values are required. |
| 8. Finish | Writes storage/app/installed and clears optimization caches. | Lock the installer before using production data. |
After Installing
- Login at
/loginwith the admin account. - Run
php artisan storage:linkif not already done. - Configure the scheduler and queue worker.
- Open
/operations-center/post-installand run the post-install verification checks. - Open
/operations-center/go-liveand confirm app URL, storage, mail, queue, scheduler, permissions, deploy smoke, release acceptance, and AI/provider readiness. - Visit Settings and confirm app URL, mail, security, sessions, branding, and Demo Mail Mode.
- Seed or create departments, ticket setup records, users, roles, organizations, contracts, and automation rules.
Reinstall and Installer Lock
The installer is blocked after storage/app/installed exists. Admin recovery tools can remove the installer lock through Platform Ops if you intentionally need to rerun setup. Treat this as a sensitive recovery action because reopening the installer on a production server is risky.
Installer Checkpoints

