Docs / Install the Website (Admin Panel)
๐Ÿ  Home

Install the Website (Admin Panel)

Deploy the Laravel backend (cargoproadmin/) and complete the five-step web installer โ€” no manual SQL import or Composer knowledge required on cPanel.

How installation works

The installer is a guarded web wizard living at /install. It checks the server, writes your .env, runs all migrations and seeders, creates your super-admin account, and finally drops a marker file at storage/app/installed. Once that marker exists, the installer locks itself โ€” every /install URL except the finish/failed result pages redirects to the site homepage.

Choose your install path

Upload the release ZIP

In cPanel, open Files โ†’ File Manager, navigate to public_html, click Upload, and select the release zip you downloaded from CodeCanyon.

cPanel home with the Files section and File Manager highlighted
The cPanel Files section โ€” open File Manager to upload the release ZIP into public_html.

Extract and place the files

Back in File Manager, right-click the ZIP โ†’ Extract. This creates a cargoproadmin/ folder. Its public/ subfolder must end up as your domain's document root, so pick one of these:

Option A (recommended): move everything from cargoproadmin/ up into public_html/, then point the domain's document root at public_html/public (cPanel โ†’ Domains โ†’ Manage Document Root).

Option B: leave the folder in place and set the document root to public_html/cargoproadmin/public.

Apache users: the shipped public/.htaccess handles pretty URLs โ€” nothing extra to write.

Create a MySQL database and user

In cPanel, open Databases โ†’ MySQLยฎ Databases. Create a database (for example cargopro_cargo), create a user with a strong password, then add the user to the database and tick ALL PRIVILEGES.

The installer can also create the database itself if the MySQL user has CREATE rights โ€” cPanel users should still pre-create it, since cPanel prefixes names with the account name.

cPanel home with the Databases section highlighted
The cPanel Databases section โ€” open MySQLยฎ Databases to create the database and its user.
cPanel MySQL Databases โ€” the Create New Database form
The Create New Database form on the MySQL Databases page โ€” also create the user and assign ALL PRIVILEGES here.

Set PHP 8.2+ and folder permissions

In cPanel, open Software โ†’ MultiPHP Manager (or Select PHP Version) and set the domain to PHP 8.2 or newer.

In File Manager (or via Terminal), make these writable by the web server:

chmod -R 775 storage bootstrap/cache

The wizard also checks that the project root is writable so it can create the .env file.

Run the installer

Browse to https://yourdomain.com/install and follow the wizard (all five steps are documented in the next section). Have the database name, user, and password from step 3 at hand.

Done โ€” save your credentials

The Finish page shows your admin username, email, and password (with Show/Copy buttons). The password is displayed only on that page โ€” save it, then click Go to admin login.

Unpack the release

unzip cargoproadmin.zip -d /var/www
cd /var/www/cargoproadmin

Install dependencies

composer install --no-dev --optimize-autoloader

PHP 8.2+ with the extensions listed below is required by both Composer and the installer.

Point the vhost at public/

Set /var/www/cargoproadmin/public as the document root in Nginx or Apache. The directory must contain the shipped .htaccess / is served by index.php.

chown -R www-data:www-data /var/www/cargoproadmin
chmod -R 775 storage bootstrap/cache

Run the installer

Visit https://your-domain.test/install and complete the wizard. The wizard itself writes .env, generates APP_KEY, migrates, and seeds โ€” you never touch those commands manually.

Local development On localhost you may pick the SQLite driver in step 4 โ€” the installer creates database/database.sqlite for you. Use MySQL for anything reachable by other people.

Step 0 โ€” Install the backend dependencies (Composer & Node)

The package ships without vendor/ and without compiled frontend assets (marketplace package-hygiene rules). Both are rebuilt with two commands โ€” you do this once, before opening the installer, in the project folder (cargoproadmin/ or wherever you extracted the release).

1. PHP dependencies with Composer

Composer is preinstalled on most cPanel hosts (search "Composer" in cPanel). On a VPS install it from getcomposer.org. Then, in the project root:

Terminal โ€” composer --version and composer install --no-dev
composer install --no-dev --optimize-autoloader creates the vendor/ folder from composer.lock โ€” the exact versions CargoPRO was tested with.

No composer on shared hosting and the browser route times out? Run the same command over SSH/Terminal (cPanel has a Terminal app) โ€” it takes one to two minutes.

2. Frontend assets with Node.js and npm

Install Node.js 22 LTS (minimum 20.19 โ€” the bundled Vite 7 will refuse older versions) from nodejs.org; on cPanel use Setup Node.js App โ†’ Node.js version or the Terminal. Then, still in the project root:

Terminal โ€” node -v, npm install and npm run build
npm install fetches the toolchain; npm run build compiles the admin CSS/JS into public/build/.

Already have public/build/ from the zip or a previous build? The npm step is then optional โ€” it is only needed to regenerate assets after you customize resources/css or resources/js.

Order matters Dependencies first, then the installation wizard โ€” the wizard is a Laravel page and needs vendor/ to run.

The wizard, step by step

Both install paths end at the same wizard. Its five steps โ€” Welcome โ†’ Requirements โ†’ Permissions โ†’ Setup โ†’ Finish โ€” are shown as a progress indicator at the top of every installer page.

Step 1 โ€” Welcome (/install)

A checklist telling you what to have ready: PHP 8.2+ with PDO MySQL, an empty MySQL database (or permission to create one), and writable storage/ plus .env. Click Get started.

CargoPRO installer โ€” step 1 welcome screen with pre-flight checklist
Step 1: welcome screen with the pre-flight checklist.

Step 2 โ€” Requirements (/install/requirements)

Checks the live PHP version and loaded extensions. Required rows must all pass before the Continue button unlocks:

PHP 8.2+ pdo pdo_mysql mbstring openssl tokenizer xml ctype json fileinfo curl gd (optional) bcmath (optional)

Missing gd or bcmath only warns โ€” image handling degrades slightly but the install proceeds.

CargoPRO installer โ€” step 2 server requirements list
Step 2: the requirements list with OK / Missing status per row.

Step 3 โ€” Permissions (/install/permissions)

Verifies that these paths exist and are writable by the web server (a Recheck button re-runs the test after you fix something):

storage/
storage/app
storage/framework
storage/logs
bootstrap/cache
.          (project root, so .env can be created)
.env       (writable once it exists)
CargoPRO installer โ€” step 3 folder permissions list
Step 3: writable / not-writable status for each path.

Step 4 โ€” Setup (/install/setup)

The single setup form. There are no SMTP fields here โ€” mail settings are configured later (see below). The validated fields are:

GroupFieldWhat to enter
ApplicationSite nameYour brand name (max 80 chars)
Site URLPre-filled from the current URL; must be a valid URL
LanguageEnglish, Espaรฑol or ุงู„ุนุฑุจูŠุฉ
DatabaseDriverMySQL / MariaDB (production) or SQLite (local only)
Host / PortDefaults 127.0.0.1 and 3306; on cPanel use localhost
Database nameLetters, numbers and underscores only; created if missing
Username / PasswordThe MySQL user you created (password may be empty)
Admin accountFull nameSplit into first/last name automatically
UsernameDefault admin; 3โ€“40 chars, letters/numbers/dashes/underscores
Email + PasswordPassword min 8 chars, entered twice (confirmed)
DemoImport demo dataCheckbox โ€” see below

Core catalog data (taxes, countries, warehouses, courier companies, packaging, shipping tariffs) is always installed. The checkbox additionally imports a full demo dataset: test customer customer@devtrixx.com and driver driver@devtrixx.com (both password 12345678) plus packages, shipments, pickups and prealerts in every status โ€” see Demo Data.

Clicking Install now may take a minute โ€” migrations and seeders run synchronously with a raised 300-second time limit.

CargoPRO installer โ€” step 4 setup form with site, database, admin account and demo checkbox
Step 4: the setup form โ€” application, database, admin account and the demo checkbox.

Step 5 โ€” Finish (/install/finish)

A success screen with your admin name, username, email and password (with Show/Copy buttons โ€” the password appears only here), any non-fatal seeder warnings, and two buttons: Go to admin login and View site. If anything failed you get the Failed page instead, with the exact error and a Try setup again button.

Behind the scenes the installer wrote storage/app/install-result.json (mode 0600) and created the storage/app/installed marker that locks the wizard. The admin password travels through your browser session only โ€” it is never written to disk and cannot be viewed again after leaving the finish page.

If the install fails The Failed page shows the underlying error message. Fix the cause (usually database credentials), click Try setup again, or contact support@devtrixx.com / support.devtrixx.com with that message.

After the installer

When the wizard finishes, your site is live. The public landing page greets visitors with the tracking lookup โ€” no login needed โ€” and staff sign in from /login to reach the operations console:

CargoPRO public landing page with the shipment tracking lookup
Public landing page โ€” customers track a shipment by number.
CargoPRO admin login screen
Staff sign-in at /login โ€” use the admin account you created in the wizard.
The .env gotcha The wizard copies .env.example to .env and writes APP_NAME, APP_URL, APP_LOCALE, APP_KEY and all DB_* values into it. Never re-upload or overwrite .env when updating files โ€” you would wipe your database credentials and encryption key. SMTP/mail and other advanced keys are edited in this same file (or in admin Tools) after installation.

Add the scheduler cron entry. Reminders, escalation jobs and cleanup tasks depend on Laravel's scheduler. In cPanel open Advanced โ†’ Cron Jobs, add a job that runs every minute (* in Minute, Hour, Day, Month, Weekday fields), with this command:

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

Optional: a queue worker. The installer sets QUEUE_CONNECTION=database. Notifications will queue as database jobs โ€” run a worker so they dispatch promptly:

php artisan queue:work --tries=3

On a small VPS, running this under Supervisor (or as a systemd service) keeps it alive; alternatively set QUEUE_CONNECTION=sync in .env to send notifications inline without a worker.

Public storage symlink. The installer already runs php artisan storage:link for you, creating public/storage. If uploaded images ever 404 after moving the project between servers, just run it again by hand โ€” it is idempotent.

Logo and language. The site name you typed is stored, but branding and default language are changed any time in the admin panel โ€” see Admin Tools and Branding & Customization.

Common cPanel pitfalls

The ZIP unpacked one folder too deep If you extracted inside public_html and left everything in public_html/cargoproadmin/ while the document root still points at public_html, the site is unreachable or serves raw files. Either move the contents up one level or repoint the document root to .../cargoproadmin/public.
Document root must be /public The domain must serve cargoproadmin/public โ€” never the project root. Serving the root exposes .env (database password, APP_KEY) to anyone who types its URL.
Wrong PHP version Shared accounts often default to an old PHP. Use Software โ†’ MultiPHP Manager or Select PHP Version to switch the domain to PHP 8.2+ before running the wizard, otherwise step 2 blocks with "Fix required items first".
Rewrite disabled = 404s If the homepage loads but every other route 404s, Apache's mod_rewrite is disabled or AllowOverride is off, so the shipped public/.htaccess is ignored. Ask your host to enable both (LiteSpeed, the common cPanel web server, is compatible).
Going to production? The Backend Deployment Guide is the dedicated production reference: web server configuration (nginx and Apache), folder permissions, supervisor/systemd/cron process management for the queue worker and scheduler, the update procedure, and the full hardening checklist.