إنتقل إلى المحتوى الرئيسي

دليل التثبيت

This is the complete, step-by-step installation guide for FeedbackPulse SaaS. Follow every step carefully.


Pre-التثبيت Checklist

Before you begin, make sure you have:

  • A server meeting all requirements
  • اسم نطاق يشير إلى خادمك's IP address
  • SSH access to your server (or FTP for file upload)
  • A MySQL/MariaDB database and credentials
  • An SMTP email account (Gmail, Mailgun, Amazon SES, etc.)
  • Your Envato purchase code (from CodeCanyon order)

Step 1: Upload Files to Your Server

# Connect to your server
ssh user@your-server-ip

# Navigate to web directory
cd /var/www

# Upload and extract the ZIP file
# (Upload the zip via SCP, SFTP, or wget from a temporary link)
unzip feedbackpulse-saas.zip -d feedbackpulse-saas
cd feedbackpulse-saas

Option B: Using FTP/SFTP

  1. Connect to your server using FileZilla, WinSCP, or similar
  2. انتقل إلى your web directory (usually /var/www/ or /home/user/public_html/)
  3. Upload the entire extracted feedbackpulse-saas folder
  4. Make sure the public/ subdirectory is accessible

Option C: Using cPanel File Manager

  1. تسجيل الدخول to cPanel
  2. Open File Manager → navigate to public_html (or a subdirectory)
  3. Upload the ZIP file
  4. Extract it in place
  5. مهم: You'll need to set the document root to the public/ folder (see Apache التكوين)

Step 2: Set File Permissions

cd /var/www/feedbackpulse-saas

# Set ownership (replace www-data with your web server user)
# Apache: www-data | Nginx: www-data or nginx
sudo chown -R www-data:www-data .

# Set directory permissions
sudo find . -type d -exec chmod 755 {} \;
sudo find . -type f -exec chmod 644 {} \;

# Make storage and cache writable
sudo chmod -R 775 storage bootstrap/cache

Step 3: Configure Your Web Server

Your web server must point to the public/ directory inside the project — NOT the project root. This is a critical security requirement.

Choose your web server:

Quick version:

Apache:

DocumentRoot /var/www/feedbackpulse-saas/public

Nginx:

root /var/www/feedbackpulse-saas/public;

After configuring, restart your web server:

# Apache
sudo systemctl restart apache2

# Nginx
sudo systemctl restart nginx

The المثبت الويب automatically attempts to create the storage symlink during the final step. You do not need to run any commands.

  • VPS/Dedicated: The symlink is created automatically. No action needed.
  • Shared hosting: If symlinks are disabled on your host, FeedbackPulse uses a built-in PHP fallback to serve uploaded files (logos, images). Everything works — no action needed.

The installer completion page will tell you whether the symlink was created or if the fallback is active.


Step 5: Run the Web Installer

افتح متصفحك and navigate to:

https://yourdomain.com/install

The installer will guide you through 5 steps. See Web Installer Walkthrough for detailed screenshots and explanations.

Quick summary:

Step 1: License Verification

  • أدخل Envato/CodeCanyon purchase code
  • This validates your license with the Envato API
  • If you're not using Envato, there may be a skip option

Step 2: المتطلبات Check

  • The installer automatically checks:
    • Vendor dependencies (vendor/autoload.php exists)
    • PHP version (8.2+)
    • Required PHP extensions
    • Directory permissions (storage, bootstrap/cache)
    • Hosting environment (detects الاستضافة المشتركة, shows compatibility info)
  • Fix any failed items before proceeding

Step 3: قاعدة البيانات Setup

  • أدخل database credentials:
    • Host: 127.0.0.1 (or localhost)
    • Port: 3306
    • قاعدة البيانات name: feedbackpulse (create this first!)
    • Username: your database username
    • Password: your database password
  • The installer will run all migrations and seed default data

Create the database first:

CREATE DATABASE feedbackpulse CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Step 4: Admin Account

  • Create your superadmin account:
    • Name: Your name
    • Email: [email protected]
    • Password: A strong password (min 8 characters)
  • This is the account you'll use to manage the entire platform

Step 5: Email التكوين

  • أدخل SMTP details:
    • Host: e.g., smtp.gmail.com
    • Port: 587 (TLS) or 465 (SSL)
    • Username: your SMTP username
    • Password: your SMTP password or app password
    • Encryption: TLS (recommended)
    • From Address: [email protected]
  • You can skip this and configure later in Admin الإعدادات

Completion

  • Switches session and cache drivers to database for production
  • Generates a CRON_TOKEN for the web-based cron endpoint
  • Creates a storage/installed.lock file (prevents re-running)
  • Shows a success page with مهمة cron setup instructions (both CLI and URL options) and next steps

Step 6: Set Up the Cron Job

FeedbackPulse needs a مهمة cron to run scheduled tasks. This is essential for:

  • Sending ملخص البريد الإلكترونيs (daily/weekly)
  • Processing trial expirations
  • Enforcing الاحتفاظ بالبيانات policies
  • Sending usage alerts
  • Running AI anomaly detection
  • Sending تقارير مجدولة

Option 1 — CLI command (VPS / Dedicated):

crontab -e

Add this line:

* * * * * cd /var/www/feedbackpulse-saas && php artisan schedule:run >> /dev/null 2>&1

Option 2 — URL/wget (Shared Hosting):

If your hosting panel only supports URL-based cron, use the web cron endpoint (the CRON_TOKEN is auto-generated during installation and shown on the completion page):

wget -q -O /dev/null "https://yourdomain.com/cron/run?token=YOUR_CRON_TOKEN"

نصيحة: The installer completion page shows both options with your actual server path and token pre-filled. Copy them from there!

For more details, see Cron Jobs & Queue Workers.


Step 7: Configure SSL (HTTPS)

HTTPS is strongly recommended for security, especially since FeedbackPulse handles authentication and payment data.

Using Let's Encrypt (Free)

# Install Certbot
sudo apt install certbot python3-certbot-nginx # for Nginx
# OR
sudo apt install certbot python3-certbot-apache # for Apache

# Get certificate
sudo certbot --nginx -d yourdomain.com # for Nginx
# OR
sudo certbot --apache -d yourdomain.com # for Apache

Certbot will automatically configure your web server for HTTPS and set up auto-renewal.

For more details, see SSL Certificates.


Step 8: Verify the التثبيت

Run through this checklist:

CheckHowExpected Result
Landing page loadsVisit https://yourdomain.comSee the صفحة الهبوط
Login worksVisit https://yourdomain.com/loginتسجيل الدخول with superadmin credentials
Admin panelVisit https://yourdomain.com/admin/dashboardSee the admin dashboard
Storage linkVisit https://yourdomain.com/storage/No 404 error
Health checkVisit https://yourdomain.com/upSee "OK" text
Cron runningCheck Admin → الإعداداتNo cron warnings
Email worksAdmin → الإعدادات → Email → Send TestReceive test email

Post-التثبيت Steps

After installation is complete:

  1. Review خطط الاشتراكAdmin → Plans (edit pricing, limits, features)
  2. Configure بوابات الدفعAdmin → الإعدادات → Payments (Stripe/PayPal مفاتيح API)
  3. Customize the صفحة الهبوطAdmin → Landing Page
  4. Test email deliveryAdmin → الإعدادات → Email → Send Test Email
  5. Set up wildcard DNS (optional) — for tenant subdomains. See Wildcard DNS Setup.
  6. Create your first tenant — Register at /register in an incognito window

التثبيت استكشاف الأخطاء

IssueSolution
Blank white pageCheck storage/logs/laravel.log for errors. Usually a permissions issue.
500 Server ErrorEnable debug mode temporarily: set APP_DEBUG=true in .env, then check the error.
"Class not found"Ensure the vendor/ directory is present and intact. Re-upload it from the downloaded package if needed.
قاعدة البيانات connection refusedVerify credentials, ensure MySQL is running, check if localhost vs 127.0.0.1 matters.
Installer not loadingMake sure the web root points to public/ directory.
CSS/JS not loadingClear browser cache. If images are missing, the storage fallback handles it automatically on الاستضافة المشتركة. On VPS, visit /update as superadmin to re-create the symlink.
Permission deniedRun the chown and chmod commands from Step 2 again.

For more, see استكشاف الأخطاء.


الخطوات التالية