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.
| 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 | Keep — no 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 |
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_KEYstorage/— asset photos, avatars, company logo, logsstorage/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.
/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 checklist — Settings → 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
LocaleRegistryservice — 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).
E:\...\Asset Manager\ or a clone of the project. Your local URL is usually http://localhost:8000 or a Laragon virtual host.
-
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, overwritingapp/,routes/,resources/,public/build/,lang/,config/, etc.Do not overwrite your local
.envorstorage/(uploads, logs). -
Install PHP dependencies (if vendor changed)
cd /path/to/asset-manager composer installv3.1 does not add new Composer packages. Run this only if
composer.lockchanged orvendor/was not copied from the package. -
Rebuild frontend (local dev only)
If you edit Vue/JS locally, rebuild assets. The CodeCanyon package already ships
public/build/:npm install npm run buildRemove
public/hotif it exists (Vite dev marker) before testing production-style assets. -
Clear caches (required)
php artisan optimize:clear php artisan optimizeNo
migratestep is needed for v3.0 → v3.1. You may runphp artisan migrateanyway — it will report “Nothing to migrate”, which is normal. -
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
- Start the server:
Localhost checklist
- Back up local database (if not disposable)
- Replace/pull v3.1 code; keep
.envandstorage/ composer install(if needed)npm run build(if developing frontend)php artisan optimize:clearandphp 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.
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
- Login to Hostinger hPanel → Hosting → Manage for your domain.
- Database: Databases → phpMyAdmin → select your AssetHub database → Export → Quick → Go. Save the
.sqlfile. - Files: Files → File Manager →
public_html/(or your Laravel root). - Enable Settings → Show hidden files to see
.env. - Download
.envand compress/download the entirestorage/folder.
Step 2 — Check PHP version
- Advanced → PHP Configuration
- PHP 8.2 or 8.3 (same as v3.0)
Step 3 — Upload v3.1 files (keep your data)
- On your computer, extract the v3.1 CodeCanyon package and zip the contents of the
source/folder. - In File Manager, open
public_html/where v3.0 already lives. - Upload the ZIP and Extract. Allow overwrite of
app/,public/,vendor/,lang/,resources/, etc. - Restore if overwritten: re-upload your saved
.envandstorage/. - Delete the upload ZIP after extraction.
- Confirm
artisan,.htaccess, andstorage/installed.lockstill exist.
.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 artisan → Properties.
Method A — Temporary Cron Job (recommended for Single)
- Advanced → Cron Jobs → Create Cron Job
- Type: Custom
- Command (run once, then delete the cron job):
/usr/bin/php /home/uXXXXXX/public_html/artisan optimize:clear - Schedule: Every minute (
* * * * *) for 1–2 minutes only - Create a second one-time cron (delete after it runs):
/usr/bin/php /home/uXXXXXX/public_html/artisan optimize - Check
storage/logs/laravel.logor log in to confirm the site loads.
Method B — One-time PHP script (alternative)
- Create
public_html/upgrade-v31.phpwith the script below. Set a strong secret key. - Visit
https://yourdomain.com/upgrade-v31.php?key=YOUR-SECRET-KEYonce. - 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
.envandstorage/ - Upload/extract v3.1
source/intopublic_html/ - Re-upload
.envandstorage/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).
Step 1 — Back up via cPanel
- Login to cPanel for your account.
- Database: Databases → phpMyAdmin → Export → Quick → Go. Save the
.sqlfile. - Files: File Manager → download
.envandstorage/.
Step 2 — Check PHP version
cPanel → Software → Select PHP Version — PHP 8.2 or 8.3.
Step 3 — Upload v3.1 files
- Zip the contents of the v3.1 CodeCanyon
source/folder. - File Manager → navigate to your Laravel root (where
artisanlives). - Upload the ZIP → Extract → overwrite application files.
- Re-upload your backed-up
.envandstorage/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)
- cPanel → Advanced → Cron Jobs
- Add a Once Per Minute cron (temporarily):
/usr/local/bin/php /home/USERNAME/public_html/artisan optimize:clear - Wait 1–2 minutes, delete the cron, then run
optimizethe 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
.envandstorage/ - Upload/extract v3.1
source/ - Restore
.envandstorage/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.
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.
-
Open Localization settings
Log in as Admin → Settings → Localization tab.
-
Enable language switching
Ensure Allow users to switch language is checked.
-
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.
-
Save
Click Save Localization. The navbar language picker updates immediately for all users.
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. |
migrate:fresh, restore from your database backup immediately.
Quick checklist
Universal steps — combine with your environment section above:
- Back up MySQL database
- Back up
.envandstorage/ - Download AssetHub v3.1.0 from CodeCanyon
- Upload v3.1
source/files; keep.envandstorage/ - Run
php artisan optimize:clearandphp 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 CodeCanyonsource/package). Runphp 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.