^8.5; CI runs on 8.2 — see note below), Composer 2predis is pure-PHP so no ext-redis needed)Version note: composer.jsondeclares"php": "^8.5"while CI installs PHP 8.2 and the Docker backend image isphp:8.5-fpm-alpine. For local dev, match your environment to whichever target you deploy to.
http://127.0.0.1:8000/apihttp://127.0.0.1:8000/docs/apihttp://localhost:8080/index.htmlhttp://localhost:8080/admin/index.htmljs/common.js: window.TP_CONFIG.apiBase overrides, otherwise it defaults to http://127.0.0.1:8000/api. If you serve the API on another port, set TP_CONFIG before common.js loads.| Role | Password | |
|---|---|---|
| Admin | admin@threedos.com | password |
User5Seeder; roles are provisioned by RoleAndPermissionSeeder (super_admin, admin, user, agency).| Variable group | Keys | Purpose |
|---|---|---|
| Auth | JWT_SECRET | tymon/jwt-auth token signing |
| Payments | PAYMOB_PUBLIC_KEY, PAYMOB_SECRET_KEY, PAYMOB_HMAC, PAYMOB_INTEGRATION_IDS | Hosted checkout + webhook HMAC verification |
| AI | GROQ_API_KEY, GROQ_MODEL (default llama-3.1-8b-instant) | Groq LLM calls (config/services.php#L59-L62) |
| Social login | Google/Facebook client IDs + secrets | Socialite redirect flow |
| Mail / queue / cache | standard Laravel keys | Notifications, report jobs, Redis cache |
composer setup — install, copy env, generate keys, storage link, sqlite touch, npm build (composer.json scripts)composer dev — concurrent artisan serve + queue:listen + Pail logs + Vite dev serverphp artisan seed:fresh / sync:fixtures / sync:cities — custom console commands for reseeding and fixture sync (Console/Commands)JWT_SECRET; log in again.PAYMOB_HMAC mismatch or route not excluded from CSRF (paymob/webhook).throttle:weather limiter; responses are Redis-cached, check CACHE_DRIVER=redis.queue:listen) since generation is a queued job.