Docs
Home
  • Overview
  • Web installer
  • Production deployment
  • aaPanel
  • aaPanel quick reference
  • Storefront & customers
  • Admin
  • eSIM providers
  • AI assistant
Home
  • Overview
  • Web installer
  • Production deployment
  • aaPanel
  • aaPanel quick reference
  • Storefront & customers
  • Admin
  • eSIM providers
  • AI assistant
  • Setup & deployment

    • Setup & deployment
    • Web installer
    • Production deployment overview
    • Deployment on aaPanel
    • aaPanel quick reference (esimScan)
  • Guides

    • Storefront & customers
    • Admin
    • eSIM provider configuration
    • AI assistant

aaPanel quick reference (esimScan)

Short cheat sheet for a typical install under /www/wwwroot/esimscan. Adjust paths and the PHP-FPM socket version to match your server.

Paths

Project root:     /www/wwwroot/esimscan
Web root:         /www/wwwroot/esimscan/public
Environment:      /www/wwwroot/esimscan/.env   (repository root — required)
Built assets:     /www/wwwroot/esimscan/public/build
Storage / logs:   /www/wwwroot/esimscan/storage/logs/laravel.log
Private uploads:  /www/wwwroot/esimscan/storage/app/private   (KYC documents)

First install

cd /www/wwwroot/esimscan
composer install --no-dev --optimize-autoloader
php artisan key:generate
npm ci && npm run build
php artisan migrate --force
php artisan i18n:seed-defaults
# php artisan db:seed          # demo data + default logins (optional)
php artisan config:cache && php artisan route:cache && php artisan view:cache
chown -R www:www storage bootstrap/cache && chmod -R 775 storage bootstrap/cache

Deploy an update

cd /www/wwwroot/esimscan
git pull origin main
composer install --no-dev --optimize-autoloader
npm ci && npm run build
php artisan migrate --force
php artisan optimize:clear
php artisan config:cache && php artisan route:cache && php artisan view:cache
php artisan queue:restart

Queue worker (required)

# Run via Supervisor / PM2 — keep it alive
php artisan queue:work --tries=3 --max-time=3600

# Supervisor
supervisorctl status
supervisorctl restart esimscan-worker:*

Scheduler (cron, every minute)

* * * * * cd /www/wwwroot/esimscan && php artisan schedule:run >> /dev/null 2>&1

Database

mysql -u esim_user -p esim
mysqldump -u esim_user -p esim > backup_$(date +%Y%m%d).sql

Nginx

nginx -t
systemctl reload nginx
tail -f /www/wwwlogs/yourdomain.com.error.log

Logs & cache

tail -f storage/logs/laravel.log
php artisan optimize:clear      # flush config/route/view/cache
php artisan queue:restart       # after deploy

Environment checklist (root .env)

  • APP_ENV=production, APP_DEBUG=false, APP_URL=https://yourdomain.com
  • APP_KEY — set once and never change (decrypts stored provider credentials)
  • DB_*
  • MAIL_* (or Admin → Email System) — needed for eSIM delivery emails
  • ESIM_PROVISIONING_DRIVER = manual | stub | live
  • APP_DEMO_MODE=false

Security

  • Strong APP_KEY, HTTPS only, firewall on 80/443, never commit .env, schedule DB backups.

See Deployment on aaPanel for the full guide.

Last Updated: 6/16/26, 12:28 PM
Prev
Deployment on aaPanel