AssetHub Upgrade Guide

Upgrade from AssetHub v3.0.0 to v3.1.0

This guide walks you through updating an existing v3.0 installation while keeping your database, uploaded files, translations, and configuration intact. v3.1 is a small, non-breaking patch — no new database migrations are required.

Applies to: v3.0.0 → v3.1.0 Estimated time: 5–15 minutes Main commands: php artisan optimize:clear, php artisan optimize

Overview

AssetHub v3.1.0 adds a visible languages checklist in Settings → Localization. Administrators can choose which languages appear in the navbar language dropdown (built-in locales and custom locales from the Translation Editor). All v3.0 features — Translation Editor, custom locales, timezone/currency settings — continue to work unchanged.

Choose your path: Follow exactly one upgrade section below based on where your v3 site runs — Localhost, Hostinger, or cPanel. Backup rules and “do not” warnings apply to all environments.
Item Action
Application code (app/, routes/, public/build/, lang/, etc.) Replace with v3.1 files from CodeCanyon source/
.env Keep your existing file
storage/ (uploads, logs, installed.lock) Keep your existing folder
MySQL database Keepno migration required for v3.1
Settings (visible_locales) Optional — created when you save Localization; until then all languages stay visible
Custom locales & translation overrides Keep — preserved automatically
Pre-built assets: The CodeCanyon source/ package includes compiled frontend assets in public/build/. On production (Hostinger, cPanel), you do not need Node.js or npm run build on the server.

Before you start

Even for a patch release, back up before upgrading any installation — including localhost if it contains real data.

1. Back up your database

Export your MySQL database via phpMyAdmin, Adminer, or the command line:

mysqldump -u USERNAME -p DATABASE_NAME > assethub-v3-backup.sql

2. Back up your files

  • .env — database credentials, mail settings, APP_KEY
  • storage/ — asset photos, avatars, company logo, logs
  • storage/app/public/ — all uploaded media

3. Put the site in maintenance mode (recommended for production)

php artisan down
# ... perform upgrade ...
php artisan up

On Hostinger Single without Terminal, skip this or use a temporary PHP script pattern in the Hostinger section.

4. Download v3.1.0 from CodeCanyon

Go to your CodeCanyon Downloads page and download AssetHub v3.1.0. Use the contents of the source/ folder (application files). Open documentation/index.html in the package root for the full buyer install guide.

Do not visit /install after upgrading. The web installer runs migrate:fresh and will wipe your database.

What's new in v3.1.0

After upgrading, these features become available without affecting your existing v3.0 data:

  • Visible languages checklistSettings → Localization, below “Allow users to switch language”: choose which languages appear in the navbar picker (built-in + custom locales)
  • Default language always visible — the default locale cannot be unchecked; it always appears in the picker
  • Smart language switcher — navbar dropdown auto-hides when only one language is visible
  • Locale validation — users cannot switch to a hidden locale; cookie/profile locales that are no longer visible fall back to the default language
  • LocaleRegistry service — centralizes locale lists and switchable-language filtering (new file: app/Services/LocaleRegistry.php)
  • Login page branding — footer copyright and right-panel badge on the login screen follow Settings → Branding → App Name automatically (no code edit). The subtitle line still uses the translation key auth.login_subtitle — edit it per language in Administration → Translations if needed (see Customize Login Branding)

All v3.0 features (Translation Editor, custom locales, CSV import/export, timezone/currency, Hindi, date formatting) continue to work unchanged. If you never configure visible_locales, behaviour is identical to v3.0 — all languages remain in the navbar dropdown.

Upgrading on Localhost

For developers running AssetHub v3.0 locally (Laragon, XAMPP, WAMP, Valet, Sail, or php artisan serve).

Typical path: E:\...\Asset Manager\ or a clone of the project. Your local URL is usually http://localhost:8000 or a Laragon virtual host.
  1. Get v3.1 application files

    Option A — Git: Pull or merge the v3.1 release branch/tag into your working copy.

    Option B — CodeCanyon package: Extract v3.1 source/ into your project folder, overwriting app/, routes/, resources/, public/build/, lang/, config/, etc.

    Do not overwrite your local .env or storage/ (uploads, logs).

  2. Install PHP dependencies (if vendor changed)

    cd /path/to/asset-manager
    composer install

    v3.1 does not add new Composer packages. Run this only if composer.lock changed or vendor/ was not copied from the package.

  3. Rebuild frontend (local dev only)

    If you edit Vue/JS locally, rebuild assets. The CodeCanyon package already ships public/build/:

    npm install
    npm run build

    Remove public/hot if it exists (Vite dev marker) before testing production-style assets.

  4. Clear caches (required)

    php artisan optimize:clear
    php artisan optimize

    No migrate step is needed for v3.0 → v3.1. You may run php artisan migrate anyway — it will report “Nothing to migrate”, which is normal.

  5. Verify locally

    • Start the server: php artisan serve (or use Laragon)
    • Log in as admin — confirm v3 data (assets, translations, settings) is intact
    • Settings → Localization — enable “Allow users to switch language” and confirm the new Languages shown in picker checklist appears
    • Uncheck a few languages, save, and confirm the navbar dropdown only shows selected languages
    • Open /login (or log out) — confirm footer copyright and right-panel badge match Settings → Branding → App Name

Localhost checklist

  • Back up local database (if not disposable)
  • Replace/pull v3.1 code; keep .env and storage/
  • composer install (if needed)
  • npm run build (if developing frontend)
  • php artisan optimize:clear and php artisan optimize
  • Test visible languages checklist + navbar picker
  • Do not visit /install

Upgrading on Hostinger

For customers running AssetHub v3.0 on Hostinger (Single, Premium, Business, or VPS). Steps use hPanel terminology.

Hostinger Single has no SSH/Terminal. v3.1 does not require migrate. Use a temporary Cron Job or one-time PHP script (Methods A/B below) only for optimize:clear and optimize. Premium/Business/VPS may use SSH (Method C).

Step 1 — Back up via hPanel

  1. Login to Hostinger hPanelHosting → Manage for your domain.
  2. Database: Databases → phpMyAdmin → select your AssetHub database → ExportQuickGo. Save the .sql file.
  3. Files: Files → File Managerpublic_html/ (or your Laravel root).
  4. Enable Settings → Show hidden files to see .env.
  5. Download .env and compress/download the entire storage/ folder.

Step 2 — Check PHP version

  1. Advanced → PHP Configuration
  2. PHP 8.2 or 8.3 (same as v3.0)

Step 3 — Upload v3.1 files (keep your data)

  1. On your computer, extract the v3.1 CodeCanyon package and zip the contents of the source/ folder.
  2. In File Manager, open public_html/ where v3.0 already lives.
  3. Upload the ZIP and Extract. Allow overwrite of app/, public/, vendor/, lang/, resources/, etc.
  4. Restore if overwritten: re-upload your saved .env and storage/.
  5. Delete the upload ZIP after extraction.
  6. Confirm artisan, .htaccess, and storage/installed.lock still exist.
Never replace .env with the default from the v3.1 package on a live site — you will lose DB credentials, mail config, and APP_KEY.

Step 4 — Clear caches (no migrate needed)

Replace uXXXXXX with your Hostinger username. Find the full path: File Manager → right-click artisanProperties.

Method A — Temporary Cron Job (recommended for Single)

  1. Advanced → Cron Jobs → Create Cron Job
  2. Type: Custom
  3. Command (run once, then delete the cron job):
    /usr/bin/php /home/uXXXXXX/public_html/artisan optimize:clear
  4. Schedule: Every minute (* * * * *) for 1–2 minutes only
  5. Create a second one-time cron (delete after it runs):
    /usr/bin/php /home/uXXXXXX/public_html/artisan optimize
  6. Check storage/logs/laravel.log or log in to confirm the site loads.

Method B — One-time PHP script (alternative)

  1. Create public_html/upgrade-v31.php with the script below. Set a strong secret key.
  2. Visit https://yourdomain.com/upgrade-v31.php?key=YOUR-SECRET-KEY once.
  3. Delete the file immediately after success.
<?php
// DELETE THIS FILE IMMEDIATELY AFTER USE
$secret = 'YOUR-SECRET-KEY-HERE';
if (($_GET['key'] ?? '') !== $secret) { http_response_code(403); exit('Forbidden'); }

define('LARAVEL_START', microtime(true));
require __DIR__.'/vendor/autoload.php';
$app = require_once __DIR__.'/bootstrap/app.php';
$app->make(Illuminate\Contracts\Console\Kernel::class)->bootstrap();

Illuminate\Support\Facades\Artisan::call('optimize:clear');
echo Illuminate\Support\Facades\Artisan::output() . "\n";

Illuminate\Support\Facades\Artisan::call('optimize');
echo Illuminate\Support\Facades\Artisan::output() . "\n";

echo "Done. DELETE upgrade-v31.php now.\n";

Method C — SSH / Terminal (Premium, Business, VPS)

cd ~/public_html
php artisan optimize:clear
php artisan optimize

Step 5 — Verify cron job (unchanged from v3)

Your existing schedule:run cron should still work:

/usr/bin/php /home/uXXXXXX/public_html/artisan schedule:run

Schedule: every minute. Do not remove it when deleting temporary upgrade cron jobs.

Step 6 — Test the upgrade

  • Login — confirm v3 data (assets, translations, localization settings) is intact
  • Settings → Localization — confirm the visible languages checklist appears when “Allow users to switch language” is enabled
  • Select a subset of languages, save, and verify the navbar picker
  • Uploaded images still display (storage/app/public/ via /files/)
  • Log out and open /login — footer and right-panel badge should match Settings → Branding → App Name

Hostinger checklist

  • Export database via phpMyAdmin
  • Download .env and storage/
  • Upload/extract v3.1 source/ into public_html/
  • Re-upload .env and storage/ if overwritten
  • Run optimize:clear + optimize (Cron, PHP script, or SSH)
  • Test visible languages checklist
  • Do not visit /install

Upgrading on cPanel

For customers running AssetHub v3.0 on any hosting that uses cPanel (shared hosting, reseller, or managed VPS with cPanel).

Many cPanel hosts include Terminal (Advanced → Terminal) or SSH. If available, use Method A for the fastest upgrade. If not, use temporary Cron Jobs like Hostinger Single.

Step 1 — Back up via cPanel

  1. Login to cPanel for your account.
  2. Database: Databases → phpMyAdmin → Export → Quick → Go. Save the .sql file.
  3. Files: File Manager → download .env and storage/.

Step 2 — Check PHP version

cPanel → Software → Select PHP Version — PHP 8.2 or 8.3.

Step 3 — Upload v3.1 files

  1. Zip the contents of the v3.1 CodeCanyon source/ folder.
  2. File Manager → navigate to your Laravel root (where artisan lives).
  3. Upload the ZIP → Extract → overwrite application files.
  4. Re-upload your backed-up .env and storage/ if they were replaced.

Step 4 — Clear caches (no migrate needed)

Method A — cPanel Terminal (if available)

cd ~/public_html
php artisan optimize:clear
php artisan optimize

Method B — SSH (if enabled)

ssh USERNAME@yourdomain.com
cd ~/public_html
php artisan optimize:clear
php artisan optimize

Method C — Temporary Cron Job (no Terminal)

  1. cPanel → Advanced → Cron Jobs
  2. Add a Once Per Minute cron (temporarily):
    /usr/local/bin/php /home/USERNAME/public_html/artisan optimize:clear
  3. Wait 1–2 minutes, delete the cron, then run optimize the same way.

Method D — One-time PHP script

Create upgrade-v31.php in your web root, visit it once with a secret key, then delete it. Use the script from the Hostinger section (Step 4, Method B).

Step 5 — Verify scheduled tasks cron

/usr/local/bin/php /home/USERNAME/public_html/artisan schedule:run

Step 6 — Test the upgrade

  • Log in as Admin
  • Settings → Localization — test the visible languages checklist
  • Confirm v3 translations and custom locales still work
  • Log out and open /login — footer and badge should match Settings → Branding → App Name

cPanel checklist

  • Export database (phpMyAdmin)
  • Download .env and storage/
  • Upload/extract v3.1 source/
  • Restore .env and storage/ if needed
  • Run optimize:clear + optimize
  • Test visible languages checklist
  • Do not visit /install

Database migrations

v3.1.0 does not ship any new migrations. The visible_locales setting is stored in the existing settings table (same as timezone, default language, etc.) and is created automatically when an admin saves the Localization tab.

Expected output if you run migrate anyway:
php artisan migrate --force
# Nothing to migrate.

This is normal and safe. You do not need to run migrate for v3.0 → v3.1.

Backward compatibility

Installations that upgrade without configuring visible_locales behave exactly like v3.0 — all languages (built-in + active custom locales) remain visible in the navbar language picker.

After upgrade — configure visible languages (optional)

The new feature is optional. Configure it only if you want to limit which languages users can pick in the navbar.

  1. Open Localization settings

    Log in as Admin → SettingsLocalization tab.

  2. Enable language switching

    Ensure Allow users to switch language is checked.

  3. Select visible languages

    Below that option, use the Languages shown in picker checklist. Check the languages you want in the navbar dropdown. The default language is always included and cannot be unchecked.

  4. Save

    Click Save Localization. The navbar language picker updates immediately for all users.

Users on a hidden language: If a user had previously selected a language you now hide, they are automatically switched to the default language on their next page load.

Do NOT do this

The following actions will erase or corrupt your data:

Action Why it's dangerous
Visit /install again Runs migrate:fresh — drops all tables and wipes your database.
Delete storage/installed.lock and reinstall Same as above — triggers a fresh install.
php artisan migrate:fresh Drops every table and re-runs all migrations from scratch.
php artisan migrate --seed on production May insert demo data into your live database.
Replace .env with the default v3.1 copy You'll lose DB credentials, mail config, and APP_KEY.
Delete storage/app/public/ Removes all uploaded asset photos, avatars, and documents.
Data loss warning: If you accidentally ran the installer or migrate:fresh, restore from your database backup immediately.

Quick checklist

Universal steps — combine with your environment section above:

  • Back up MySQL database
  • Back up .env and storage/
  • Download AssetHub v3.1.0 from CodeCanyon
  • Upload v3.1 source/ files; keep .env and storage/
  • Run php artisan optimize:clear and php artisan optimize
  • (Optional) Configure visible languages in Settings → Localization
  • Log in — verify v3 data + new language picker filtering
  • Do not visit /install

Troubleshooting

Visible languages checklist not showing

Enable Allow users to switch language first — the checklist only appears when that option is on. Confirm v3.1 public/build/ was uploaded and run php artisan optimize:clear.

Navbar still shows all languages after saving

Hard-refresh the browser (Ctrl+F5). Confirm you clicked Save Localization and that at least the default language remains checked. Clear application cache:

php artisan optimize:clear
php artisan optimize

Language switcher disappeared entirely

Expected when only one language is visible, or when “Allow users to switch language” is disabled. Add more languages to the checklist or re-enable switching.

User stuck on wrong language after hiding their locale

They should fall back to the default language automatically. Ask them to log out and back in, or clear the assethub_locale cookie. Admin can also change their profile language under Users.

Login page still shows “AssetHub”

  • Footer or badge still says AssetHub: Confirm v3.1 public/build/ was uploaded (pre-built assets from the CodeCanyon source/ package). Run php artisan optimize:clear, hard-refresh the browser (Ctrl+F5), then check Settings → Branding → App Name.
  • Subtitle under the heading still says AssetHub: That line uses the translation key auth.login_subtitle, not App Name. Edit it for each language in Administration → Translations. See Customize Login Branding.

“Nothing to migrate”

Normal for v3.0 → v3.1. No migrations are required. Proceed with cache clear and testing.

500 error after upload

php artisan optimize:clear
chmod -R 775 storage bootstrap/cache

Check storage/logs/laravel.log. Restore .env if overwritten. Confirm app/Services/LocaleRegistry.php exists in the uploaded files.

Blank page / Vite dev URLs in HTML

Ensure public/hot does not exist on the server and public/build/ from v3.1 was uploaded.

Upgrading from v2.x or v1.x?

Use the dedicated guides: upgrade-guide-v2-to-v3.html (v2 → v3) or upgrade-guide-v1-to-v2.html (v1 → v2). Upgrade to v3.0 first, then apply this v3.1 guide. For v3.1 → v4.0, see upgrade-guide-v3.1-to-v4.0.html.

Need more help?

Open documentation/index.html in your v3.1 CodeCanyon package (buyer guide), see Customize Login Branding for rebrand details, or contact the author through the CodeCanyon item support tab.