Help
Troubleshooting & FAQ
Website & server
.env file — the package ships only .env.example; run cp .env.example .env. (2) .env exists but isn't writable — the app writes its own APP_KEY on the first request, which silently fails on a read-only file; chmod 664 .env or run php artisan key:generate yourself. (3) storage/ + bootstrap/cache/ permissions. Temporarily set APP_DEBUG=true to read the exact error (turn it back off after).APP_DEBUG is false, so the browser shows a bare error page and never names the cause. Read the log first — do not guess:
tail -50 storage/logs/laravel.log
Match what you find there:
•
Vite manifest not found — the frontend was never built. The wizard does not need it, which is why this only appears once the wizard hands you over to the real site. Run npm ci && npm run build (Node 20.19+), or build on your own computer and upload public/build/.
•
Failed to open stream: vendor/autoload.php — Composer never ran.
•
Undefined variable or any other PHP error — a different fault entirely; find its own entry on this page rather than rebuilding assets.vendor/. Run composer install --no-dev --optimize-autoloader in the app folder, or run it locally and upload the resulting vendor/ directory.composer install --no-dev, cp .env.example .env, npm ci && npm run build — then upload the whole folder including vendor/, public/build/ and .env. The result is identical to building on the server.php artisan storage:link and confirm APP_URL is your real domain. See Media Storage.php artisan config:clear && php artisan cache:clear, then re-cache.APP_URL, HTTPS and that the system clock is correct.DB_* values in .env against the database you gave the install wizard.php means over SSH.
php -v # what the shell uses right now
ls /usr/bin/php8* /opt/alt/php8*/usr/bin/php 2>/dev/null # what is installed
Then put a supported binary first on your PATH for the rest of the session:
# CloudLinux / Hostinger layout — adjust to match your ls output
export PATH=/opt/alt/php84/usr/bin:$PATH
php -v # confirm it changed
composer install --no-dev --optimize-autoloader
Any PHP from 8.3 upwards works — the requirement ^8.3 means "8.3 or newer, below 9.0", so 8.4 is equally supported. If the 8.3 binary on your host also fails, just use the highest 8.x available; that is a normal, supported setup, not a workaround.
Prefer the PATH export over prefixing a single command:
npm run build shells out to php artisan internally, so a prefix-only fix clears this error and then breaks at the frontend build instead. The export lasts for the current SSH session only — re-run it whenever you reconnect, and spell the full binary path out in your cron entry, because cron does not read your shell profile./opt/alt/php84/usr/bin/php -m # modules this binary has
/opt/alt/php84/usr/bin/php -v
The installer needs pdo_mysql, mbstring, openssl, tokenizer, xml, ctype, json, curl, fileinfo and bcmath. If one is missing, either enable it for that version in your hosting panel's PHP extensions screen, or switch to a version that already has it. Composer prints exactly which requirement failed — read past the first line of the error, as it often lists a missing ext-… rather than the version itself.which node npm
ls /opt/alt/alt-nodejs*/root/usr/bin/npm 2>/dev/null # CloudLinux / Hostinger layout
ls /usr/bin/node* /usr/local/bin/node* 2>/dev/null
If a recent version turns up (you need Node 20.19+), put it on your PATH alongside PHP and carry on:
export PATH=/opt/alt/alt-nodejs20/root/usr/bin:$PATH
node -v && npm -v
npm ci && npm run build
Some hosting panels also expose a "Node.js" or "Setup Node.js App" screen that enables it for your account — worth a look before giving up.composer install --no-dev --optimize-autoloader
cp .env.example .env
npm ci
npm run build # creates public/build/
Then upload the generated public/build/ folder (and vendor/, if Composer would not run on the server either) into the same place on the host. Nothing else needs Node — it is only used to compile the assets.
The build needs PHP available locally, because it shells out to
php artisan to generate route helpers. If your own machine has no PHP, use the host to run Composer and only build the assets elsewhere.
You only need to repeat this if you edit the frontend source. A plain upgrade of the app means uploading a fresh
public/build/ along with the new code.composer update resolves a brand-new dependency set that was never tested against this release, and can leave you with a subtly broken install. The lock file is correct; the problem is which PHP binary is running. Fix the binary and re-run composer install.mod_rewrite is enabled and that public/.htaccess survived the upload — some FTP clients skip dot-files. On Nginx, the try_files $uri $uri/ /index.php?$query_string; line is missing.public/. Run npm ci && npm run build, then confirm the domain serves …/public.APP_URL still starts with http:// while the site is served over HTTPS. Fix APP_URL, then php artisan config:clear.php artisan config:clear (and route:clear, view:clear). Remember to re-run config:cache afterwards in production.php. Cron does not read your shell profile, so it gets the system default — often an older PHP than your site needs — and with >> /dev/null 2>&1 the failure is discarded, so it looks like cron never fired at all. Spell out the full binary path (/opt/alt/php84/usr/bin/php, /usr/local/bin/php, …) and log somewhere real while you verify:
* * * * * cd /path/to/app && /opt/alt/php84/usr/bin/php artisan schedule:run >> storage/logs/cron.log 2>&1
Then run that exact command by hand — you should get a list of tasks or "No scheduled commands are ready to run". See Cron & Queue Workers.storage/ not writable, or the file exceeds PHP's limits. Raise upload_max_filesize and post_max_size (and client_max_body_size on Nginx).composer run setup. Drop and recreate the empty database, delete storage/app/.sys if present, and reopen /install.storage/app/.sys, then open /install again.Apps — build
package_name inside android/app/google-services.json does not equal your applicationId. Register the exact id in Firebase and download a fresh file — editing the id by hand inside the JSON also works but must match character for character.ClassNotFoundException: MainActivityandroid/app/src/main/kotlin/…/MainActivity.kt must sit in folders mirroring the new id, and its first line must be package your.new.id. See any app's Rebranding page.flutter config --jdk-dir=/path/to/jdk-17.android/local.properties is missing or has the wrong path. Open the android/ folder once in Android Studio and it writes the file, or create it with sdk.dir=/path/to/Android/sdk.flutter clean then flutter pub get before building again.android/key.properties — see each app's "Build Android" page. A debug-signed AAB is always rejected.versionCode in android/version.properties (not local.properties, which Flutter regenerates) and rebuild.ios/ folder run pod repo update then pod install. If it still fails, delete Podfile.lock and Pods/ and run pod install again.ios/Runner.xcworkspace in Xcode, select the Runner target → Signing & Capabilities, and choose your Apple Developer team.Runner.xcodeprojflutter create --platforms=ios --org com.yourcompany . then re-run the icon generator.Apps — runtime
10.0.2.2 is emulator-only). Check lib/config/env.dart.https://site.com//api/v2/seller/login. Remove the trailing slash.storage/logs/laravel.log.Payments & orders
storage/logs/laravel.log for rejected callbacks. A local or password-protected site cannot receive webhooks.FAQ
Can I sell with only the website (no apps)?
Yes — the storefront is fully functional on the web. Build and publish the apps whenever you're ready.
Where are my payment / SMS / API keys stored?
In your database, entered via the admin panel — not in source code. See Configuration Model.
Can I change currency, modules or branding later?
Yes, anytime from the admin panel. The apps pick up the changes at next launch — no rebuild needed.
Do I need my own Firebase / Maps accounts?
Yes. The product ships with placeholders; you must use your own keys (this protects your billing and is required by Google/Apple).
How do I update after editing code?
Backend: re-deploy, run composer install, npm run build, php artisan migrate --force (if applicable) and php artisan queue:restart. Apps: raise versionCode/versionName in android/version.properties and rebuild.
Where do I get support?
Through your CodeCanyon item's support channel / the author's support address listed on the item page.
🏠
Back to the documentation home.