Appearance
Requirements
Verify these before installation. ExchangePro will not run correctly on unsupported versions.
Server requirements
Backend (Laravel)
| Requirement | Minimum | Recommended |
|---|---|---|
| PHP | 8.3 | 8.4+ |
| Extensions | openssl, pdo, mbstring, tokenizer, xml, ctype, json, bcmath, fileinfo | Same |
| Composer | 2.x | Latest |
| Database | MySQL 8+ / MariaDB 10.6+ | MySQL 8 |
| Web server | Nginx or Apache | Nginx + PHP-FPM |
| Memory | 512 MB PHP memory_limit | 1 GB+ for production |
Optional but useful:
- Redis — caching/sessions (default config uses database cache/session)
- Supervisor — queue workers if you use queued jobs heavily
- Cron — required for automatic currency rate sync
Frontend (Nuxt)
| Requirement | Minimum | Recommended |
|---|---|---|
| Node.js | 20.x | 22 LTS |
| npm / pnpm / yarn / bun | Any modern package manager | pnpm or npm |
| RAM (build) | 2 GB | 4 GB+ for nuxt build |
The frontend is deployed as a Node SSR app (node .output/server/index.mjs) or you may host a pre-built output on a Node-capable host.
Software versions (shipped stack)
| Component | Version in project |
|---|---|
| Laravel | 12.x |
| Nuxt | 4.3.x |
| Vue | 3.5.x |
Hosting models
Model A — Same domain (recommended for production)
https://yourdomain.com→ Nuxt frontendhttps://api.yourdomain.com→ Laravel backend
Configure CORS and Sanctum for the frontend origin.
Model B — Local development
- Frontend: port
4000 - Backend: port
8000(or4444if you customized.env)
Model C — Shared hosting (limited)
Possible but harder: PHP for API on subdomain, Node for frontend on another service (Vercel, VPS, etc.). Shared hosts without Node cannot run the Nuxt server build.
Browser support
- Chrome, Firefox, Safari, Edge (last two major versions)
- Mobile responsive layouts for public site, dashboard, and admin
External services (optional)
| Service | Used for |
|---|---|
| SMTP / mail API | Password reset, verification codes, subscriber broadcast, user credentials email |
| ExchangeRate-API | Automatic currency price sync |
| Google Cloud Console | Google OAuth |
| Meta for Developers | Facebook OAuth |
None of these are required for a basic install; exchanges can use manual rates only.
File permissions (Linux)
Backend writable paths:
text
backend/storage/ → 775 (www-data)
backend/bootstrap/cache/ → 775
backend/public/ → 755 (uploads create subdirs)Directories created at runtime:
public/transaction-proofs/public/images/avatars/public/images/currencies/public/images/settings/public/images/legal-pages/
Pre-install checklist
- [ ] PHP 8.3+ and Composer installed
- [ ] Node 20+ installed
- [ ] MySQL database and user created
- [ ] Domain or local hosts planned (
APP_URL,FRONTEND_URL,API_URL) - [ ] SSL certificate for production (required for secure cookies)
- [ ] Mail SMTP credentials ready (for password reset)
Next: Installation overview