Перейти к основному содержимому

Руководство по установке

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 дайджест emails (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 Устранение неполадок.


Следующие шаги