đŸ“Ļ Ashie Resume | JobPortal

Installation Guide

Step 2 of 2 | Version 1.0 | January 2026

âš ī¸ Prerequisite: Complete Server Setup First!

Before proceeding with installation, you must complete the server preparation steps including:

  • ✅ Server requirements verification (PHP 8.2+, MySQL 8.0+, etc.)
  • ✅ Domain configuration and DNS setup
  • ✅ Control panel configuration (Hestia, aaPanel, or cPanel)
  • ✅ File and folder permissions setup
  • ✅ Database creation and import
Complete Server Setup First →

1. Basic Installation Steps

📝 Note: These are general steps. For control panel-specific instructions, see the Server Setup Guide.

Step-by-Step Installation

1 Upload Application Files
  • Extract ashie-resume-backend.zip on your computer
  • Upload all extracted files to your server's web root directory
  • Common locations: /var/www/html, /home/username/public_html, or /usr/share/nginx/html
2 Create Database
  • Access your control panel or phpMyAdmin
  • Create a new MySQL database (e.g., ashie_resume_db)
  • Create a database user with a strong password
  • Grant ALL PRIVILEGES to the user on the database
📖 Detailed instructions: See Database Setup in Server Setup Guide
3 Import Database
  • Open phpMyAdmin and select your database
  • Click "Import" tab
  • Choose database.sql file
  • Click "Go" to import
4 Configure Environment File
  • Locate .env.example file in the root directory
  • Rename it to .env
  • Edit .env file and update these values:
APP_URL=https://yourdomain.com DB_DATABASE=ashie_resume_db DB_USERNAME=your_database_user DB_PASSWORD=your_database_password
âš ī¸ Important: Never share your .env file or commit it to version control. It contains sensitive credentials!
5 Set File Permissions
See detailed instructions in Server Setup - Permissions Section
6 Install Dependencies
cd /path/to/your/application composer install --no-dev --optimize-autoloader
7 Generate Application Key
php artisan key:generate
8 Create Storage Link
php artisan storage:link
9 Optimize Application
php artisan config:cache php artisan route:cache php artisan view:cache
✅ Ready! Your application is now installed. Proceed to the Installation Wizard to complete setup.

2. Alternative Deployment: Separate Frontend & Backend Folders

📌 Alternative Method: This section covers deploying frontend and backend in separate folders on the same domain.

Structure:
  • Frontend files: public_html/ (root directory)
  • Backend folder: public_html/backend/
  • Access: yourdomain.com (frontend)
  • API: yourdomain.com/backend/api/v1
⚡ Quick Build Commands (Copy & Paste):
# Step 1: Navigate to frontend directory cd ~/public_html # Step 2: Install dependencies npm install # Step 3: Build for production npm run build
âš ī¸ Requirements:
  • SSH access to your server
  • Node.js 20.x+ and npm installed
  • Frontend source files (separate from backend package)
  • Text editor to modify .env files

Step-by-Step Deployment Process

1 Upload Backend Folder
  • Extract ashie-resume-backend.zip to a folder on your computer
  • Using FTP/SFTP, upload the entire backend folder to your server's root directory
  • Final path: public_html/backend/ (you can rename "backend" to anything, but keep files inside)
Example Structure:
public_html/ └── backend/ ← Backend folder (you can rename this) ├── app/ ├── bootstrap/ ├── config/ ├── database/ ├── public/ ├── routes/ ├── storage/ ├── vendor/ ├── .env.example ├── artisan └── composer.json
2 Upload Frontend Files
  • Extract frontend source files to a folder on your computer
  • Upload all frontend files directly to public_html/ (NOT in a subfolder)
  • Files should be at root level alongside the backend folder
Example Structure:
public_html/ ├── backend/ ← Backend folder ├── src/ ← Frontend source ├── public/ ← Frontend public assets ├── node_modules/ ← Will be created after npm install ├── .env ← Frontend environment config ├── package.json ├── vite.config.js └── index.html
3 Configure Backend .env File
  • Navigate to public_html/backend/
  • Copy .env.example to .env
  • Edit .env and update these values:
# Application APP_NAME="Ashie Resume" APP_ENV=production APP_DEBUG=false APP_URL=https://yourdomain.com/backend # Database DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=your_database_name DB_USERNAME=your_database_user DB_PASSWORD=your_database_password # CORS (Allow frontend domain) SANCTUM_STATEFUL_DOMAINS=yourdomain.com SESSION_DOMAIN=.yourdomain.com # Other settings... # (Configure mail, payment gateways, etc.)
4 Configure Frontend .env File
  • Navigate to public_html/ (frontend root)
  • Create or edit the .env file
  • Add these configurations:
# Frontend Environment Configuration VITE_FRONTEND_URL=https://yourdomain.com VITE_API_URL=https://yourdomain.com/backend/api/v1 VITE_BASE_URL=https://yourdomain.com/backend VITE_STORAGE_URL=https://yourdomain.com/backend/storage VITE_APP_NAME=AshieJobPortal # Stripe (Optional - if using payments) VITE_STRIPE_PUBLISHABLE_KEY=pk_live_your_stripe_key_here
âš ī¸ Important: Replace yourdomain.com with your actual domain name in ALL the URLs above!
5 Set Backend File Permissions
# SSH into your server ssh username@your-server-ip # Navigate to backend folder cd /home/username/public_html/backend # Set permissions chmod -R 755 . chmod -R 775 storage chmod -R 775 bootstrap/cache chown -R www-data:www-data storage chown -R www-data:www-data bootstrap/cache
6 Install Backend Dependencies
# Still in backend folder cd /home/username/public_html/backend # Install Composer dependencies composer install --no-dev --optimize-autoloader # Generate application key php artisan key:generate # Create storage link php artisan storage:link # Cache configurations (optional, for performance) php artisan config:cache php artisan route:cache php artisan view:cache
7 Build Frontend
# Navigate to frontend root (where package.json is) cd /home/username/public_html # Install Node.js dependencies npm install # Build frontend for production npm run build # This will create optimized production files
Expected Output:
vite v6.4.1 building for production... ✓ 1234 modules transformed. dist/assets/index-a1b2c3d4.js 152.34 kB │ gzip: 26.78 kB dist/assets/index-e5f6g7h8.css 45.67 kB │ gzip: 8.12 kB ✓ built in 12.34s
8 Configure Web Server
  • For Nginx: Create two location blocks
# Nginx configuration example server { listen 80; server_name yourdomain.com; root /home/username/public_html; index index.html; # Frontend (React SPA) location / { try_files $uri $uri/ /index.html; } # Backend API location /backend { alias /home/username/public_html/backend/public; try_files $uri $uri/ @backend; location ~ \.php$ { include fastcgi_params; fastcgi_pass unix:/var/run/php/php8.2-fpm.sock; fastcgi_param SCRIPT_FILENAME $request_filename; } } location @backend { rewrite /backend/(.*)$ /backend/index.php?/$1 last; } }
  • For Apache: Ensure .htaccess files are present
# Create .htaccess in public_html/backend/public/ <IfModule mod_rewrite.c> RewriteEngine On RewriteBase /backend/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L] </IfModule> # Create .htaccess in public_html/ (frontend root) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /index.html [L] </IfModule>
9 Test Your Deployment
  • Frontend: Visit https://yourdomain.com - Should show homepage
  • Backend API: Visit https://yourdomain.com/backend/api/v1/health - Should return JSON
  • Admin Panel: Visit https://yourdomain.com/backend/admin
  • Browser Console: Press F12 → Check for errors
  • Network Tab: Verify API calls go to /backend/api/v1/*
10 Complete Setup via Installation Wizard
  • Visit https://yourdomain.com
  • You'll be automatically redirected to the installation wizard
  • Follow the on-screen instructions to:
    • Verify server requirements
    • Configure database (should already be in backend .env)
    • Run migrations
    • Activate license

Troubleshooting This Deployment Method

Issue: Frontend shows but API calls fail (404 errors)
  • Solution 1: Verify frontend .env has correct VITE_API_URL
  • Solution 2: Check web server configuration (Nginx/Apache) for backend routing
  • Solution 3: Test backend directly: https://yourdomain.com/backend/api/v1/health
  • Solution 4: Clear browser cache (Ctrl+Shift+R)
Issue: CORS errors in browser console
  • Solution: Update backend .env CORS settings:
    SANCTUM_STATEFUL_DOMAINS=yourdomain.com SESSION_DOMAIN=.yourdomain.com CORS_ALLOWED_ORIGINS=https://yourdomain.com
  • Then clear Laravel cache:
    cd /home/username/public_html/backend php artisan config:clear php artisan cache:clear
Issue: Frontend shows blank page
  • Solution 1: Check if npm run build completed successfully
  • Solution 2: Verify dist/ folder was created with index.html and assets/
  • Solution 3: Check browser console (F12) for JavaScript errors
  • Solution 4: Verify frontend .env file exists and has correct values
  • Solution 5: Rebuild frontend:
    cd /home/username/public_html rm -rf node_modules dist npm install npm run build
Issue: Assets not loading (images, CSS, JS)
  • Solution: Check file permissions:
    cd /home/username/public_html chmod -R 755 dist chmod -R 755 public

Updating After Changes

When you make frontend changes:
# SSH into server cd /home/username/public_html # Rebuild frontend npm run build # Clear browser cache (on your computer) # Ctrl+Shift+R or Ctrl+F5
When you make backend changes:
# SSH into server cd /home/username/public_html/backend # Clear Laravel caches php artisan config:clear php artisan cache:clear php artisan route:clear php artisan view:clear # Re-cache for production (optional) php artisan config:cache php artisan route:cache
✅ Alternative Deployment Complete!
Your application is now running with:
  • Frontend: https://yourdomain.com
  • Backend API: https://yourdomain.com/backend/api/v1
  • Admin Panel: https://yourdomain.com/backend/admin
📝 Note: This deployment method requires rebuilding the frontend whenever you make changes to the React code. If you prefer not to rebuild, use the standard deployment method where frontend is pre-built into backend/public folder.

3. Installation Wizard Walkthrough

🎉 You're almost done! The installation wizard will guide you through the final steps.

Accessing the Wizard

1 Open your web browser
2 Navigate to: https://yourdomain.com/wizard
âš ī¸ Can't access wizard?
  • Make sure you've uploaded all files
  • Check that .env file is configured
  • Verify database is imported
  • Clear browser cache

Wizard Step 1: Welcome Screen

What you'll see:
  • Welcome message
  • Brief overview of installation process
  • System requirements check
What to do:
  • Review the welcome information
  • Click Next or Get Started button

Wizard Step 2: Server Requirements Check

What you'll see:
  • PHP version (should be 8.2+)
  • List of required PHP extensions
  • ✅ Green checkmarks for met requirements
  • ❌ Red X for missing requirements
What to do:
  • Ensure ALL requirements show ✅ green checkmarks
  • If any show ❌ red, contact your hosting provider
  • Click Next when all requirements are met
âš ī¸ Missing Extensions? Common solutions:
  • Shared Hosting: Enable via cPanel → Select PHP Version
  • VPS/Dedicated: Install via SSH (see Server Setup - Requirements)
  • Contact Support: Ask to enable missing PHP extensions

Wizard Step 3: File Permissions Check

What you'll see:
  • List of directories that need write permissions
  • ✅ Green = Writable (good)
  • ❌ Red = Not writable (fix needed)
What to do:
  • All folders must show ✅ green status
  • If any show ❌, set permissions to 775 (see Server Setup - Permissions)
  • Click Check Again after fixing permissions
  • Click Next when all show green

Wizard Step 4: Database Configuration

What you'll see:
A form with these fields:
Field What to Enter Example
Database Host Usually localhost or 127.0.0.1 localhost
Database Port Usually 3306 (leave default) 3306
Database Name The database you created earlier ashie_resume_db
Database Username The database user you created ashie_user
Database Password The password for database user YourStrongPassword123!
What to do:
  1. Fill in all database fields carefully
  2. Double-check for typos (common mistake!)
  3. Click Test Connection button
  4. Wait for "✅ Connection Successful" message
  5. Click Next to continue
❌ Connection Failed? Check these:
  • Database host is correct (usually localhost)
  • Database name matches exactly (case-sensitive)
  • Username and password are correct
  • Database user has ALL PRIVILEGES
  • MySQL service is running

Wizard Step 5: Demo Users Information

📌 Important: The database comes with pre-configured demo accounts. You don't create new accounts during installation - you'll use these existing credentials to login.
✅ 3 Demo User Accounts Already Created:
The sample database includes three fully functional demo accounts for testing all features.

Demo User Credentials

Account Type Name Email Password Access Level
🔐 Super Admin Super Admin superadmin@test.com password123 Full system access, all permissions
👔 Employer Jane Employer employer@test.com password123 Post jobs, manage applications
👤 Job Seeker David Seeker seeker@test.com password123 Create resumes, apply for jobs
âš ī¸ CRITICAL SECURITY WARNING:
  • IMMEDIATELY change all passwords after installation!
  • Go to Admin Panel → Users → Edit each user
  • Set strong, unique passwords for production use
  • Consider deleting demo accounts and creating new ones
  • NEVER use password123 in production!
What to do during installation:
  1. Review the demo user information
  2. Write down or save these credentials
  3. Click Next or Continue to proceed
  4. After installation, login as superadmin@test.com
  5. Immediately change all default passwords!
💡 Pro Tip: After changing passwords, you can create additional admin accounts, delete demo users, or customize user roles through the Admin Panel → Users section.

Wizard Step 6: License Activation

What you'll see:
  • Purchase code input field
  • Domain verification
  • License activation form
Field What to Enter
Full Name Your full name as the buyer
Purchase Code Your license key from purchase
Envato Username Your Envato/CodeCanyon username
Domain Your website domain (auto-detected)
Buyer Email Email used for purchase
What to do:
  1. Enter your purchase code (from marketplace)
  2. Verify domain is correct
  3. Enter buyer email
  4. Click Activate License
  5. Wait for "✅ License Activated Successfully"
  6. Click Next
❌ Activation Failed? Common reasons:
  • Invalid Code: Double-check purchase code
  • Already Used: License already activated on another domain
  • Suspended: Contact support for license issues
  • Network Error: Check internet connection

Wizard Step 7: Installation Progress

What you'll see:
  • Progress bar
  • List of installation tasks
  • ✅ Checkmarks as tasks complete
Tasks being performed:
  • ✅ Creating database tables
  • ✅ Importing default data
  • ✅ Setting up admin account
  • ✅ Configuring application settings
  • ✅ Generating security keys
  • ✅ Creating storage directories
  • ✅ Finalizing installation
âąī¸ Please Wait: Do NOT close your browser during installation. This process usually takes 30-60 seconds.

Wizard Step 8: Installation Complete!

🎉 Congratulations! Your Ashie Resume | JobPortal application is now installed and ready to use!
What you'll see:
  • Success message
  • Demo login credentials reminder
  • Links to admin panel and frontend
  • Important next steps
🔐 Demo Login Credentials:
Super Admin: superadmin@test.com / password123
Employer: employer@test.com / password123
Job Seeker: seeker@test.com / password123
What to do:
  1. Click Go to Admin Panel
  2. Login with: superadmin@test.com / password123
  3. IMMEDIATELY change the default password!
  4. Change passwords for all demo accounts
  5. Complete post-installation setup (next section)
🚨 Security First: Changing default passwords is NOT optional! This must be your first action after installation to protect your application.

4. Post-Installation Setup

📌 Important: Complete these steps to ensure your application runs smoothly.

Essential Post-Installation Tasks

🚨 STEP #1 - CRITICAL SECURITY: Change all default passwords IMMEDIATELY!
âš ī¸ CRITICAL: Queue Workers Required!
The application uses background jobs for emails, AI features, payment processing, and notifications. Without queue workers, these features will NOT work!

🔄 Setting Up Queue Workers

Queue workers process background jobs like email sending, AI operations, payment webhooks, and scheduled tasks. You MUST configure these for full functionality.

Option 1: Supervisor (Recommended for Production)
# Install Supervisor sudo apt install supervisor # Create supervisor configuration sudo nano /etc/supervisor/conf.d/ashie-resume-worker.conf

Add this configuration:

[program:ashie-resume-worker] process_name=%(program_name)s_%(process_num)02d command=php /path/to/your/application/artisan queue:work --sleep=3 --tries=3 --max-time=3600 autostart=true autorestart=true stopasgroup=true killasgroup=true user=www-data numprocs=2 redirect_stderr=true stdout_logfile=/path/to/your/application/storage/logs/worker.log stopwaitsecs=3600

Activate the supervisor config:

# Reload supervisor sudo supervisorctl reread sudo supervisorctl update sudo supervisorctl start ashie-resume-worker:* # Check status sudo supervisorctl status
Option 2: Cron-based Queue (Alternative for Shared Hosting)

If you can't use Supervisor, add this to your crontab:

# Run queue worker every minute * * * * * cd /path/to/your/application && php artisan queue:work --stop-when-empty --max-time=55 >> /dev/null 2>&1
Option 3: Database Queue (Default)

The application defaults to database queue. Make sure this is set in your .env:

QUEUE_CONNECTION=database
💡 What Queue Workers Process:
  • Email Sending: Password resets, notifications, application confirmations
  • AI Operations: Resume optimization, cover letter generation, job matching
  • Payment Processing: Subscription webhooks, payment confirmations
  • File Processing: Resume PDF generation, image optimization
  • Scheduled Tasks: System maintenance, cleanup jobs
1 Login to Admin Panel
Visit: https://yourdomain.com/admin
Use demo credentials: superadmin@test.com / password123
2 🔐 CHANGE ALL DEFAULT PASSWORDS (CRITICAL!)
  1. Go to Users menu in admin panel
  2. Edit Super Admin (superadmin@test.com)
  3. Set a strong new password (12+ characters, mixed case, numbers, symbols)
  4. Save changes
  5. Repeat for employer@test.com and seeker@test.com
  6. Consider creating new admin accounts with your own email
  7. Optional: Delete demo accounts after creating new ones
âš ī¸ WARNING: Failing to change default passwords leaves your site vulnerable to hackers! This is the #1 security priority.
3 Configure General Settings
  • Go to Settings → General
  • Update site name, logo, favicon
  • Set timezone and date format
  • Configure contact information
4 Setup Email Configuration
  • Go to Settings → Email
  • Configure SMTP settings or use default
  • Test email sending functionality
5 Setup Payment Gateways
  • Go to Settings → Payments
  • Enable desired payment methods
  • Enter API keys for Stripe, PayPal, etc.
  • Set currency and payment mode (test/live)
6 Configure Cron Jobs
Required for background tasks like:
  • Job Match Alerts: Daily emails to job seekers with matching jobs (9 AM)
  • Job Expiry Alerts: Notifications about expiring job postings (8 AM)
  • Subscription Checks: Verify and expire subscriptions (every 5 minutes)
  • Security Cleanup: Remove expired IP blocks (hourly)
  • System Maintenance: Database optimization, cache cleanup (daily)
* * * * * cd /path/to/your/application && php artisan schedule:run >> /dev/null 2>&1
7 Enable SSL (HTTPS)
  • Install SSL certificate (Let's Encrypt is free)
  • Update .env file: APP_URL=https://yourdomain.com
  • Force HTTPS in web server configuration
  • Clear cache: php artisan config:clear
8 Test All Functionality
  • ✅ User registration and login
  • ✅ Job posting creation
  • ✅ Resume upload and generation
  • ✅ Email notifications
  • ✅ Payment processing (use test mode)
  • ✅ File uploads and downloads
9 Backup Your Installation
  • Backup database regularly
  • Backup uploaded files in storage/
  • Keep .env file backup securely
  • Setup automated backups if possible
10 Security Hardening
  • Set APP_DEBUG=false in production
  • All demo passwords must be changed (already done in step 2)
  • Consider deleting demo accounts: seeker@test.com, employer@test.com
  • Create new accounts with real email addresses
  • Enable firewall on server
  • Keep application updated
  • Monitor error logs regularly
✅ Setup Complete! Your application is now fully configured and ready for production use!

5. Advanced Configuration (Optional)

â„šī¸ Note: These configurations are optional but recommended for production environments to improve performance, scalability, and functionality.

🔐 Social Login Configuration (Google & Facebook)

Allow users to sign in with their Google or Facebook accounts for faster registration and better user experience.

💡 Why Enable Social Login?
  • Increases registration conversion by 50%+
  • Users don't need to remember another password
  • Reduces fake account registrations
  • Provides verified email addresses

đŸ”ĩ Google OAuth Setup (Step-by-Step)

1 Go to Google Cloud Console

Open https://console.cloud.google.com/

2 Create a New Project
  • Click the project dropdown → New Project
  • Enter project name → Click Create
3 Configure OAuth Consent Screen
  • Go to APIs & Services → OAuth consent screen
  • Select External → Click Create
  • Fill in App name, support email, developer email
  • Add scopes: email, profile, openid
4 Create OAuth Credentials
  • Go to Credentials → Create Credentials → OAuth client ID
  • Application type: Web application
  • Authorized redirect URIs:
    https://yourdomain.com/api/v1/auth/google/callback
5 Add to .env File
# Google OAuth Configuration GOOGLE_CLIENT_ID=your_client_id_here GOOGLE_CLIENT_SECRET=your_client_secret_here GOOGLE_REDIRECT_URI="${APP_URL}/api/v1/auth/google/callback"

🔷 Facebook OAuth Setup (Step-by-Step)

1 Go to Facebook Developers

Open https://developers.facebook.com/

2 Create a New App
  • Click My Apps → Create App
  • Select: Authenticate and request data from users
  • App type: Consumer
3 Configure Facebook Login
  • Add Facebook Login product
  • Go to Facebook Login → Settings
  • Valid OAuth Redirect URIs:
    https://yourdomain.com/api/v1/auth/facebook/callback
4 Add to .env File
# Facebook OAuth Configuration FACEBOOK_CLIENT_ID=your_app_id_here FACEBOOK_CLIENT_SECRET=your_app_secret_here FACEBOOK_REDIRECT_URI="${APP_URL}/api/v1/auth/facebook/callback"

🤖 OpenAI / AI Features Configuration

OpenAI powers resume optimization, cover letter generation, and job matching features.

1 Visit platform.openai.com and create an account
2 Go to API Keys and create a new key
3 Add to your .env file:
# OpenAI Configuration OPENAI_API_KEY=sk-proj-your-api-key-here

⚡ Redis Cache Configuration (Recommended)

Redis significantly improves performance by caching database queries and sessions.

# Install Redis (Ubuntu/Debian) sudo apt update sudo apt install redis-server php8.2-redis sudo systemctl start redis-server sudo systemctl enable redis-server # Verify redis-cli ping # Should return PONG

Update your .env file:

# Cache with Redis CACHE_STORE=redis SESSION_DRIVER=redis QUEUE_CONNECTION=redis # Redis connection REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null REDIS_PORT=6379

🌐 CDN Configuration (Optional)

Use a CDN to serve static assets faster globally.

# Add to .env file CDN_ENABLED=true CDN_PROVIDER=cloudflare CLOUDFLARE_ZONE_ID=your_zone_id CLOUDFLARE_API_TOKEN=your_api_token CLOUDFLARE_CDN_DOMAIN=cdn.yourdomain.com

🔔 Pusher Configuration (Real-Time Chat)

Pusher enables real-time messaging between employers and job seekers.

1 Create account at Pusher Dashboard
2 Create a new Channels app
3 Add to .env:
BROADCAST_CONNECTION=pusher PUSHER_APP_ID=your_app_id PUSHER_APP_KEY=your_app_key PUSHER_APP_SECRET=your_app_secret PUSHER_APP_CLUSTER=eu

6. Frontend Deployment (Advanced)

â„šī¸ Note: The frontend is already built and included in the backend/public folder. This section is only for developers who want to rebuild the frontend from source.
âš ī¸ Prerequisites: Node.js 20.x+, npm 10.x+, Terminal/SSH access, Frontend source code

Quick Rebuild Commands

# Navigate to frontend directory cd frontend # Install dependencies (first time only) npm install # Build for production npm run build # Navigate back and clear caches cd ../backend php artisan config:clear php artisan cache:clear

7. Troubleshooting Common Issues

Issue #1: White Screen / Blank Page

Solutions:
  1. Enable debug: APP_DEBUG=true in .env
  2. Check PHP error logs
  3. Verify PHP extensions are enabled
  4. Check storage/ folder permissions (775)
  5. Clear cache: php artisan config:clear && php artisan cache:clear

Issue #2: 500 Internal Server Error

Solutions:
  1. Check web server error logs
  2. Verify .env file exists
  3. Check APP_KEY is set
  4. Ensure storage/ has 775 permissions

Issue #3: Database Connection Error

Solutions:
  1. Verify database credentials in .env
  2. Check MySQL service is running
  3. Try 127.0.0.1 instead of localhost
  4. Verify database user has ALL PRIVILEGES

Issue #4: Email Not Sending

Solutions:
  1. Verify SMTP settings in .env
  2. Check spam/junk folders
  3. Run queue worker: php artisan queue:work

Issue #5: License Activation Failed

Solutions:
  1. Verify purchase code is correct
  2. Check server internet connection
  3. Contact support if code says "already used"
📞 Support: support@dafriappsdev.com

8. Updates & Upgrades

âš ī¸ CRITICAL: Always backup your database and files BEFORE updating!

Update Process

  1. Backup database and files
  2. Put site in maintenance: php artisan down
  3. Download new version
  4. Upload new files (except .env and storage/app/)
  5. Run update commands:
    composer install --no-dev --optimize-autoloader php artisan migrate --force php artisan config:cache php artisan route:cache php artisan view:cache
  6. Bring site online: php artisan up

9. Backup & Restore

Database Backup

# MySQL backup mysqldump -u username -p database_name > backup.sql # Compressed backup mysqldump -u username -p database_name | gzip > backup.sql.gz

File Backup

# Backup storage folder tar -czvf storage_backup.tar.gz storage/app/ # Backup .env file cp .env .env.backup

Restore

# Restore database mysql -u username -p database_name < backup.sql # Restore files tar -xzvf storage_backup.tar.gz

10. Payment Webhooks Setup

🚨 CRITICAL: Webhooks are REQUIRED for payments to work correctly!

Webhook URLs

Gateway Webhook URL
Stripe https://yourdomain.com/api/v1/payment/webhook/stripe
PayPal https://yourdomain.com/api/v1/payment/webhook/paypal
Flutterwave https://yourdomain.com/api/v1/payment/webhook/flutterwave
Paystack https://yourdomain.com/api/v1/payment/webhook/paystack
Razorpay https://yourdomain.com/api/v1/payment/webhook/razorpay

Stripe Webhook Events

Select these events when configuring:

  • checkout.session.completed
  • customer.subscription.updated
  • customer.subscription.deleted
  • invoice.paid
  • invoice.payment_failed
# Add Stripe webhook secret to .env STRIPE_WEBHOOK_SECRET=whsec_your_webhook_secret_here

🎉 Installation Complete!

Your application is now installed. Continue to the Admin Panel Guide to configure your job portal.

Continue to Admin Panel Guide →