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.comAPP_KEY— set once and never change (decrypts stored provider credentials)DB_*MAIL_*(or Admin → Email System) — needed for eSIM delivery emailsESIM_PROVISIONING_DRIVER=manual|stub|liveAPP_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.