Overview
AssetHub v3.0.0 focuses on localization and translations: a full Translation Editor, custom locales, CSV import/export, timezone and currency settings that apply app-wide, Hindi as the 11th built-in language, and consistent date formatting across the UI.
| Item | Action |
|---|---|
Application code (app/, routes/, public/build/, lang/, etc.) |
Replace with v3 files from CodeCanyon source/ |
.env |
Keep your existing file |
storage/ (uploads, logs, installed.lock) |
Keep your existing folder |
| MySQL database | Keep — run migrate for any pending migrations only |
DB translation overrides (translations table) |
Keep — preserved automatically |
source/ package already 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
Always 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-v2-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 the temporary PHP script pattern in the Hostinger section.
4. Download v3.0.0 from CodeCanyon
Go to your CodeCanyon Downloads page and download AssetHub v3.0.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. Use php artisan migrate --force instead.
What's new in v3.0.0
After upgrading, these features become available without affecting your existing v2 data:
- Translation Editor — Administration → Translations: add custom locales, edit strings inline, search/filter by group, CSV import/export
- Custom locales — stored in
custom_locales; DB overrides merge withlang/file baseline - Localization settings — timezone (incl.
Europe/Skopje), currency (incl.MKD), symbol position — applied app-wide after save - Hindi (hi) — 11th built-in UI language
- Date format — admin-configured format applied across main Vue pages via
useDate - New permission —
manage translations(Admin by default)
All v2 features (batch/lot assets, allocations, disposals, public QR page, operational reports) continue to work unchanged.
Upgrading on Localhost
For developers running AssetHub v2 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 application files
Option A — Git: Pull or merge the v3 release branch/tag into your working copy.
Option B — CodeCanyon ZIP: Extract v3
source/into your project folder, overwritingapp/,routes/,resources/,public/build/,lang/,config/, etc.Do not overwrite your local
.envorstorage/(uploads, logs). -
Install PHP dependencies
cd /path/to/asset-manager composer installUse
composer install --no-devonly if you want to mirror production; for local dev, keep dev dependencies. -
Rebuild frontend (local dev only)
If you edit Vue/JS locally, rebuild assets. The CodeCanyon package already ships
public/build/, but after pulling source code you typically need:npm install npm run buildRemove
public/hotif it exists (Vite dev marker) before testing production-style assets. -
Run database migrations
php artisan migrateMost v2 databases already have
custom_localesandtranslationstables from the original install. Laravel applies only pending migrations — you may see “Nothing to migrate”, which is normal. -
Add the new permission
Grant
manage translationsto Admin. See New permissions. -
Clear caches
php artisan optimize:clear php artisan optimize -
Verify locally
- Start the server:
php artisan serve(or use Laragon) - Log in as admin — confirm v2 data (assets, batches, disposals) is intact
- Sidebar shows Administration → Translations
- Settings → Localization — change timezone/currency, save, confirm dates update
- Language switcher includes Hindi
- Start the server:
Localhost checklist
- Back up local database (if not disposable)
- Replace/pull v3 code; keep
.envandstorage/ composer installnpm run build(if developing frontend)php artisan migrate- Assign
manage translationspermission php artisan optimize:clear- Test Translations page and Localization settings
- Do not visit
/install
Upgrading on Hostinger
For customers running AssetHub v2 on Hostinger (Single, Premium, Business, or VPS). Steps use hPanel terminology.
migrate 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
- Set PHP to 8.2 or 8.3
- Confirm extensions: OpenSSL, PDO, PDO_MySQL, Mbstring, GD, Tokenizer, XML, Ctype, JSON, Fileinfo
Step 3 — Upload v3 files (keep your data)
- On your computer, extract the v3 CodeCanyon package and zip the contents of the
source/folder. - In File Manager, open
public_html/where v2 already lives. - Upload the ZIP and Extract. Allow overwrite of
app/,public/,vendor/,lang/, 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 package on a live site — you will lose DB credentials, mail config, and APP_KEY.
Step 4 — Run migrations & optimize (no Terminal on Single)
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 migrate --force - Schedule: Every minute (
* * * * *) for 1–2 minutes only - After migrations, create two more one-time cron jobs (delete each after it runs):
/usr/bin/php /home/uXXXXXX/public_html/artisan optimize:clear /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-v3.phpwith the script below. Set a strong secret key. - Visit
https://yourdomain.com/upgrade-v3.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('migrate', ['--force' => true]);
echo Illuminate\Support\Facades\Artisan::output() . "\n";
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-v3.php now.\n";
Method C — SSH / Terminal (Premium, Business, VPS)
cd ~/public_html
php artisan migrate --force
php artisan optimize:clear
php artisan optimize
Step 5 — Add manage translations permission
Easiest on Hostinger without Terminal: log in as Admin and assign permissions via the UI if your installation exposes role editing, or run the seeder once via Cron/SSH:
/usr/bin/php /home/uXXXXXX/public_html/artisan db:seed --class=RolePermissionSeeder --force
See New permissions for seeder cautions if you customized roles.
Step 6 — Verify cron job (unchanged from v2)
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 7 — Test the upgrade
- Login — confirm v2 assets, batches, and disposals are intact
- Administration → Translations opens (Admin only)
- Settings → Localization — set timezone (e.g.
Europe/Skopje) and currency (e.g.MKD) - Uploaded images still display (
storage/app/public/via/files/)
Hostinger-specific notes
- Uploads: AssetHub uses
public/files/, not/storage/, because some Hostinger plans block/storage/*URLs. Do not deletestorage/app/public/during upgrade. - 500 after upload: Check PHP 8.2+, restore
.env, runoptimize:clear, setstorage/andbootstrap/cache/to755. - Document root
public_html/public/? Laravel code stays atpublic_html/; cron path is still.../public_html/artisan.
Hostinger checklist
- Export database via phpMyAdmin
- Download
.envandstorage/ - PHP 8.2 or 8.3
- Upload/extract v3
source/intopublic_html/ - Re-upload
.envandstorage/if overwritten - Run migrate + optimize (Cron, PHP script, or SSH)
- Assign
manage translationspermission - Verify Translations + Localization
- Do not visit
/install
Upgrading on cPanel
For customers running AssetHub v2 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 backup: Databases → phpMyAdmin → select your database → Export → Quick → Go. Save the
.sqlfile. - Alternatively: Backup → Download a MySQL Database Backup (if your host provides full cPanel backups).
- File backup: File Manager → open your web root (usually
public_html/orpublic_html/yourdomain/). - Enable Settings → Show Hidden Files (dotfiles) to see
.env. - Download
.envand compress/download thestorage/folder.
Step 2 — Check PHP version
- cPanel → Software → Select PHP Version (or MultiPHP Manager).
- Select PHP 8.2 or 8.3 for your domain/document root.
- In PHP Extensions, enable: openssl, pdo, pdo_mysql, mbstring, gd, tokenizer, xml, ctype, json, fileinfo.
Step 3 — Upload v3 files
- On your computer, zip the contents of the v3 CodeCanyon
source/folder. - File Manager → navigate to your Laravel root (where
artisanlives). - Upload the ZIP → select it → Extract.
- When prompted, overwrite application files (
app/,public/,vendor/, etc.). - Re-upload your backed-up
.envandstorage/if they were replaced. - Remove the ZIP from the server after extraction.
artisan and public/index.php (or your root index.php) live — not inside an empty subfolder by mistake.
Step 4 — Run migrations & optimize
Replace /home/USERNAME/public_html with your actual path (File Manager → right-click artisan → properties, or check Cron command examples from your host).
Method A — cPanel Terminal (if available)
- cPanel → Advanced → Terminal
- Run:
cd ~/public_html php artisan migrate --force php artisan optimize:clear php artisan optimize
Method B — SSH (if enabled by your host)
ssh USERNAME@yourdomain.com
cd ~/public_html
php artisan migrate --force
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) with:
/usr/local/bin/php /home/USERNAME/public_html/artisan migrate --force - Wait 1–2 minutes, then delete this cron job.
- Add one-time crons (or use Terminal) for:
php artisan optimize:clear php artisan optimize
Some hosts use /usr/bin/php instead of /usr/local/bin/php — check your host’s cron documentation or an existing cron entry.
Method D — One-time PHP script (same as Hostinger Method B)
Create upgrade-v3.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 — Add manage translations permission
Via Terminal/SSH/Cron (once):
php artisan db:seed --class=RolePermissionSeeder --force
Or assign manually if roles were customized — see New permissions.
Step 6 — Verify scheduled tasks cron
Confirm your existing v2 cron still runs every minute:
/usr/local/bin/php /home/USERNAME/public_html/artisan schedule:run
cPanel → Cron Jobs → verify Last Run or check email output if configured.
Step 7 — Test the upgrade
- Open your site and log in as Admin
- Confirm v2 data unchanged (assets, batches, disposals, reports)
- Open Administration → Translations
- Test Settings → Localization (timezone, currency, default language)
- Confirm SSL is active (required for QR camera scanner)
cPanel-specific notes
- APP_KEY missing / 500: See buyer documentation cPanel section — generate via Terminal,
genkey.php, or locally withphp artisan key:generate --show. - Permissions: Set
storage/andbootstrap/cache/to755(recursive) if uploads or cache fail. - mod_security: Some hosts block
/storage/*; AssetHub serves uploads via/files/. Keepstorage/app/public/intact.
cPanel checklist
- Export database (phpMyAdmin)
- Download
.envandstorage/ - PHP 8.2 or 8.3 + required extensions
- Upload/extract v3
source/ - Restore
.envandstorage/if needed - Run migrate + optimize (Terminal, SSH, or Cron)
- Seed or assign
manage translations - Verify cron
schedule:run - Test Translations + Localization
- Do not visit
/install
Database migrations
v3.0.0 is primarily an application-layer upgrade (UI, localization logic, Translation Editor). It does not add large new business tables like v2 did.
When you run php artisan migrate --force, Laravel applies only pending migrations. For most v2 installations, the translation infrastructure already exists from the initial AssetHub install:
| Migration (if not yet run) | What it does |
|---|---|
create_custom_locales_table |
Stores admin-defined locales (code, name, flag, direction, base locale). |
create_translations_table |
Stores DB translation overrides edited via the Translation Editor. |
add_locale_to_users_table |
Per-user language preference for UI and email notifications. |
Nothing to migrate. That is normal — v3 reuses existing tables and adds the admin UI on top.
New permissions
v3.0.0 adds one permission that is not created by migrate alone:
manage translations— access Administration → Translations, add locales, edit/import/export strings
Option A — Run the permission seeder (simplest)
If you have not customized role permissions:
php artisan db:seed --class=RolePermissionSeeder --force
This creates manage translations and assigns all permissions to the Admin role. Other default roles keep their v2 permission sets plus any new defaults from the seeder.
syncPermissions for each role, which resets that role to the default permission set defined in code. If you customized role permissions in production, use Option B.
Option B — Create permission manually (custom roles)
If you cannot run the seeder safely, insert the permission via phpMyAdmin or tinker, then assign it to Admin:
php artisan tinker
>>> Spatie\Permission\Models\Permission::firstOrCreate(['name' => 'manage translations', 'guard_name' => 'web']);
>>> Spatie\Permission\Models\Role::findByName('admin')->givePermissionTo('manage translations');
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 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.0.0 from CodeCanyon
- Upload v3
source/files; keep.envandstorage/ - Run
php artisan migrate --force - Run
php artisan optimize:clearandphp artisan optimize - Add
manage translationspermission (seeder or manual) - Log in — verify v2 data + new Translations / Localization features
- Do not visit
/install
Troubleshooting
“Nothing to migrate”
Normal for v2 → v3. Your database already has the translation tables. Proceed to cache clear and permission setup.
Translations menu missing or “403 Unauthorized”
Admin user needs manage translations. Run the seeder or assign manually — see New permissions.
Timezone / currency change has no effect
php artisan optimize:clear
php artisan config:cache
Confirm you saved Settings → Localization as an admin. v3 applies timezone from settings at runtime via AppServiceProvider.
UI shows raw translation keys (e.g. translations.title)
Ensure v3 lang/ files were uploaded (including lang/*/translations.php). Run php artisan optimize:clear.
Hindi or new language missing from switcher
Confirm v3 config/app.php and lang/hi/ were deployed. Clear config cache.
500 error after upload
php artisan optimize:clear
chmod -R 775 storage bootstrap/cache
Check storage/logs/laravel.log. Restore .env if overwritten.
Blank page / Vite dev URLs in HTML
Ensure public/hot does not exist on the server and public/build/ from v3 was uploaded.
Hostinger-specific issues
See Upgrading on Hostinger — cron path, /files/ uploads, no Terminal on Single.
cPanel-specific issues
See Upgrading on cPanel — PHP version, cron binary path, APP_KEY generation.
Need more help?
Open documentation/index.html in your v3 CodeCanyon package (buyer guide), or contact the author through the CodeCanyon item support tab.