Common Requirements
Before installing investra, make sure your system meets the following requirements.
These requirements apply to both local development and server environments (cPanel/VPS/Cloud).
🧾 General Requirements
- PHP Version: PHP 8.2 or higher for Laravel 12 (If you want to use other (v8.2+) php version you should delete composer.lock and run composer install.)
- Web Server: Apache, Nginx, or cPanel-based servers
- Database: MySQL 5.7+ or MariaDB
- RAM: 4 GB or more recommended
- Disk Space: 20 GB or more recommended
✅ Required PHP Extensions
Ensure these PHP extensions are enabled:
BCMathCtypeFileinfoJSONMbstringOpenSSLPDOTokenizerXMLDomXMLReaderXMLWritercURLZipgettextexifmysqliGDIntl(for localization support)
🔐 Permissions
Make sure the following folders are writable:
/storage
/bootstrap/cache
For Linux or macOS, you can run:
chmod -R 775 storage bootstrap/cache
chown -R www-data:www-data storage bootstrap/cache
For Windows, make sure these directories allow write access via file explorer or CMD.
📁 Environment Configuration
Make sure to copy .env.example to .env:
cp .env.example .env
Then generate the application key:
php artisan key:generate
🕓 Cron Job (For Scheduled Tasks)
To run automated tasks, setup the following cron job:
* * * * * /usr/bin/php /path-to-your-project/artisan schedule:run >> /dev/null 2>&1
Update /usr/bin/php and /path-to-your-project/ according to your environment.
What Runs on Cron
The Task Scheduler handles time-based automated operations:
| Task | Frequency | Description |
|---|---|---|
| ROI Distribution | Configured per project | Distributes returns to investor wallets |
| Report Generation | Daily/Hourly | Creates periodic reports |
| Currency Refresh | Hourly/Daily | Updates exchange rates |
| Project Status Updates | Daily | Updates project completion status |
| Deposit Expiry Check | Every 5 minutes | Marks pending deposits as expired |
| KYC Reminder | Daily | Sends pending KYC notifications |
What Runs on Queue
The Queue System handles asynchronous background jobs:
| Job | Trigger | Description |
|---|---|---|
| Email Notifications | User action | Sends transactional emails |
| SMS Notifications | User action | Sends SMS via configured provider |
| Push Notifications | User action | Firebase push notifications |
| Payment Webhooks | Gateway callback | Processes payment confirmations |
| Deposit Processing | Cron or webhook | Approves/rejects deposits |
| Withdrawal Processing | Admin approval | Processes withdrawal requests |
Queue Worker Setup
For production, you should run a queue worker process:
php artisan queue:work --queue=default
For production stability, use a process manager like Supervisor to keep the queue worker running:
[program:investra-worker]
command=php /path-to-your-project/artisan queue:work --queue=default --tries=3 --timeout=120
numprocs=2
autostart=true
autorestart=true
See the cPanel Installation Guide for cron job configuration examples.
🌐 Browser Support
investra supports all major modern browsers:
- Chrome (latest 3 versions)
- Firefox
- Safari
- Edge
If you face any issues with missing extensions or setup errors, please refer to the installation section or contact support.