Installation Guide
This guide will help you install and set up the Netasampark platform for development or production.
Prerequisites
System Requirements
Server Requirements
- Operating System: Linux (Ubuntu 20.04+ recommended) or Windows Server
- PHP: 8.2 or higher
- MySQL/MariaDB: 10.3 or higher
- Redis: 6.0 or higher (for caching and queues)
- Node.js: 18.0 or higher (for frontend builds)
- Composer: Latest version
- NPM/Yarn: Latest version
PHP Extensions
php -m | grep -E "pdo|pdo_mysql|mbstring|xml|curl|zip|gd|redis|intl"
Required extensions:
pdopdo_mysqlmbstringxmlcurlzipgdorimagickredisintlbcmathfileinfo
Server Configuration
- Memory Limit: 256MB minimum (512MB recommended)
- Upload Size: 10MB minimum
- Execution Time: 60 seconds minimum
- mod_rewrite: Enabled (for Apache)
Installation Steps
1. Clone Repository
git clone https://github.com/netasampark/netasamparkv2.git
cd netasamparkv2
2. Backend API Setup
Install Dependencies
cd netasampark-api
composer install
Environment Configuration
cp .env.example .env
php artisan key:generate
Configure Environment Variables
Edit .env file with your configuration:
APP_NAME=Netasampark
APP_ENV=production
APP_KEY=base64:...
APP_DEBUG=false
APP_URL=https://api.netasampark.com
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=netasampark_prod
DB_USERNAME=your_username
DB_PASSWORD=your_password
CACHE_DRIVER=redis
QUEUE_CONNECTION=redis
SESSION_DRIVER=redis
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
Database Setup
php artisan migrate --force
php artisan db:seed
Storage Setup
php artisan storage:link
chmod -R 775 storage bootstrap/cache
Cache Configuration
php artisan config:cache
php artisan route:cache
php artisan view:cache
3. Frontend Applications Setup
Admin Panel
cd netasampark-admin
npm install
npm run build
PWA
cd netasampark-pwa
npm install
npm run build
Grievance Portal
cd netasampark-grievance
npm install
npm run build
Home Page
cd netasampark-home
npm install
npm run build
4. Web Server Configuration
Apache Configuration
Create virtual host configuration:
<VirtualHost *:80>
ServerName api.netasampark.com
DocumentRoot /path/to/netasampark-api/public
<Directory /path/to/netasampark-api/public>
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName admin.netasampark.com
DocumentRoot /path/to/netasampark-admin/dist
<Directory /path/to/netasampark-admin/dist>
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
Nginx Configuration
server {
listen 80;
server_name api.netasampark.com;
root /path/to/netasampark-api/public;
index index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
}
5. Queue Workers
Set up queue workers for background jobs:
php artisan queue:work redis --queue=default,emails,notifications --tries=3 --timeout=90
Or use Supervisor for process management:
[program:netasampark-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /path/to/netasampark-api/artisan queue:work redis --sleep=3 --tries=3 --max-time=3600
autostart=true
autorestart=true
stopasgroup=true
killasgroup=true
user=www-data
numprocs=3
redirect_stderr=true
stdout_logfile=/path/to/netasampark-api/storage/logs/worker.log
stopwaitsecs=3600
6. Scheduled Tasks
Add to crontab:
* * * * * cd /path/to/netasampark-api && php artisan schedule:run >> /dev/null 2>&1
7. SSL Configuration
For production, set up SSL certificates:
# Using Let's Encrypt
certbot --nginx -d api.netasampark.com
certbot --nginx -d admin.netasampark.com
certbot --nginx -d app.netasampark.com
certbot --nginx -d grievance.netasampark.com
8. Redis Setup
# Install Redis
sudo apt-get install redis-server
# Start Redis
sudo systemctl start redis-server
sudo systemctl enable redis-server
# Test Redis
redis-cli ping
9. Database Backup Setup
Configure automated backups:
# Test backup
php artisan db:backup --type=daily
# Verify backup schedule
php artisan schedule:list
Post-Installation
1. Verify Installation
- Check API health:
https://api.netasampark.com/api/healthz - Access admin panel:
https://admin.netasampark.com - Access PWA:
https://app.netasampark.com - Access grievance portal:
https://grievance.netasampark.com
2. Create Admin User
php artisan tinker
$user = \App\Models\User::create([
'name' => 'Super Admin',
'email' => 'admin@netasampark.com',
'password' => Hash::make('SecurePassword123!'),
'role' => 'superadmin',
]);
3. Configure Providers
Set up communication providers in the admin panel:
- WhatsApp (Meta/Gupshup)
- SMS (Twilio/Msg91)
- Email (Brevo/SendGrid)
- IVR (Exotel)
4. Set Up Monitoring
- Configure error tracking (Sentry)
- Set up application monitoring (APM)
- Configure log aggregation
- Set up alerting rules
Development Setup
For local development:
# API
cd netasampark-api
php artisan serve
# Admin Panel
cd netasampark-admin
npm run dev
# PWA
cd netasampark-pwa
npm run dev
# Grievance Portal
cd netasampark-grievance
npm run dev
# Home Page
cd netasampark-home
npm run dev
Troubleshooting
Common Issues
Database Connection Error
# Check database credentials
php artisan tinker
DB::connection()->getPdo();
# Test connection
mysql -u username -p -h hostname database_name
Permission Errors
chmod -R 775 storage bootstrap/cache
chown -R www-data:www-data storage bootstrap/cache
Queue Not Processing
# Check queue connection
php artisan queue:work --once
# Clear failed jobs
php artisan queue:flush
Cache Issues
php artisan cache:clear
php artisan config:clear
php artisan route:clear
php artisan view:clear
Next Steps
- Quick Start Guide - Get started in 5 minutes
- System Requirements - Detailed requirements
- Deployment Guide - Production deployment