Installation Guide Version 1.0.0 Laravel 11 5-Step Web Installer cPanel · VPS · Shared Hosting Installation Guide Version 1.0.0 Laravel 11 5-Step Web Installer cPanel · VPS · Shared Hosting
Documentation Read time: 12 min For developers & sysadmins

Install/ation

Get FantasyXI running on any cPanel host or VPS in under 30 minutes. Web installer handles requirements, license, database, KYC, and admin account.

01Server Requirements

RequirementMinimumRecommended
PHP8.28.3+
MySQL5.78.0+
RAM512 MB1 GB+
Disk500 MB2 GB+
Web ServerApache / NginxNginx

Required PHP Extensions

openssl, pdo, pdo_mysql, mbstring, xml, ctype, json,
bcmath, fileinfo, curl, gd, zip, tokenizer, intl

02Pre-Installation Checklist

Before starting, make sure you have:

  • A domain name pointed to your server
  • SSL certificate (Let's Encrypt or cPanel AutoSSL)
  • MySQL database created
  • MySQL user with ALL PRIVILEGES on the database
  • Your Envato purchase code (CodeCanyon → Downloads → License)
  • FTP or cPanel access to upload files

03Installation Steps

Step 1 — Upload Files

Via cPanel File Manager

  1. Login to cPanel → File Manager
  2. Navigate to public_html (or your subdomain folder)
  3. Upload fantasyxi.zip
  4. Extract the zip file
  5. Move all files from fantasyxi/ to your web root

Via FTP

# Upload and extract
unzip fantasyxi.zip
mv fantasyxi/* ./

Step 2 — Run Web Installer

Open your browser and visit:

https://yourdomain.com/install

The installer has 5 steps:

Step 1 — Requirements Check

Automatically checks PHP version, extensions, and folder permissions. Fix any ❌ errors before proceeding.

Step 2 — License Verification

Enter your CodeCanyon purchase code and click "Verify License". Format: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Step 3 — Database Setup

Enter your MySQL credentials:

  • Host: localhost (usually)
  • Database Name
  • Username
  • Password

Click Test Connection to verify, then Next to run migrations.

Step 4 — KYC Configuration (Optional)

Configure Didit KYC API keys if you have them. Can be skipped and configured later in Admin → Settings.

Step 5 — Admin Account

Set your admin email, password, and site name. Click Install FantasyXI. Installation runs migrations, seeds default data, and creates your account.

Step 3 — Login

After installation completes:

Admin Panel: https://yourdomain.com/admin/v2
Email:       (what you entered in Step 5)
Password:    (what you entered in Step 5)

04Post-Installation Configuration

Go to Admin → Settings to configure:

General

  • Site name, logo, timezone
  • Minimum age requirement (default: 18)

Payments

  • Minimum / maximum deposit amounts
  • Minimum withdrawal amount
  • GST percentage (default: 28%)
  • TDS percentage (default: 30%)
  • TDS threshold (default: ₹10,000)

Compliance

  • Enable / disable state restrictions
  • Restricted states list (AP, AS, NL, OD, SK, TG, ML by default)

05Payment Gateway Setup

Razorpay — Recommended for India

  1. Create account at razorpay.com
  2. Go to Settings → API Keys → Generate Key
  3. In Admin → Settings → Payments, enter Key ID and Key Secret
  4. For production, complete KYC on Razorpay dashboard

Test Credentials

Card:   4111 1111 1111 1111
Expiry: Any future date
CVV:    Any 3 digits
OTP:    1234

Stripe — International

  1. Create account at stripe.com
  2. Go to Developers → API Keys
  3. Enter Publishable Key and Secret Key in Admin → Settings

Cashfree

  1. Create account at cashfree.com
  2. Go to Developers → API Keys
  3. Enter App ID and Secret Key in Admin → Settings

PayPal

  1. Create account at developer.paypal.com
  2. Create a REST API app
  3. Enter Client ID and Client Secret in Admin → Settings

06Sports API Setup

CricAPI — Cricket

  1. Sign up at cricapi.com
  2. Copy your API key from Dashboard
  3. In Admin → Settings → Sports API, select Provider: CricAPI, enter API Key, click Save
Free tier: 100 requests/day    Paid tier: 5,000+ requests/day (recommended for production)

Importing Matches

  1. Go to Admin → Sports API
  2. Select Sport: Cricket
  3. Select Provider: CricAPI ✓
  4. Click Fetch to see available matches
  5. Click Import All to add to queue
  6. Go to Admin → Import Queue
  7. Review and Approve matches

EntitySport — Alternative

  1. Sign up at entitysport.com
  2. Enter token in Admin → Settings → Sports API

07Cron Jobs

Required — Add via cPanel → Cron Jobs:

* * * * * cd /path/to/fantasyxi && php artisan schedule:run >> /dev/null 2>&1

Replace /path/to/fantasyxi with your actual installation path.

What runs automatically

  • Live score sync every 30 seconds
  • Match auto-finalization (6+ hours after end)
  • OTP cleanup daily
  • KYC reminders daily at 10 AM
  • Daily platform statistics at midnight

08SSL & Domain Setup

cPanel (AutoSSL)

  1. cPanel → SSL/TLS → AutoSSL
  2. Run AutoSSL for your domain
  3. SSL installs automatically (free)

Let's Encrypt (VPS)

apt install certbot
certbot --nginx -d yourdomain.com

Update APP_URL

After setting up SSL, update your .env file:

APP_URL=https://yourdomain.com
SESSION_SECURE_COOKIE=true

Then run:

php artisan config:clear
php artisan cache:clear

09Troubleshooting

500 Server Error

# Check Laravel logs
tail -50 storage/logs/laravel.log

# Clear all caches
php artisan optimize:clear
chmod -R 775 storage/ bootstrap/cache/

Database Connection Error

  • Verify credentials in .env file
  • Ensure MySQL user has ALL PRIVILEGES
  • Try localhost vs 127.0.0.1

Blank White Page

# Enable debug temporarily
APP_DEBUG=true   # in .env
php artisan config:clear
# Check the actual error, then disable debug
APP_DEBUG=false

Storage Permission Error

chmod -R 775 storage/
chmod -R 775 bootstrap/cache/
mkdir -p storage/framework/cache/data
mkdir -p storage/framework/sessions
mkdir -p storage/framework/views

CSS / JS Not Loading

php artisan view:clear
# Hard refresh browser: Cmd+Shift+R / Ctrl+Shift+R

Payments Not Working

  • Verify API keys are correct (test vs live)
  • Check storage/logs/laravel.log for gateway errors
  • Ensure APP_URL matches your domain exactly (with https)

Cron Not Running

# Test manually
php artisan schedule:run

# Check if schedule is registered
php artisan schedule:list
Still stuck? Email hello@dranmolagarwal.com with your purchase code, error message or screenshot, and your storage/logs/laravel.log.