Kurulum Kilavuzu
This is the complete, step-by-step installation guide for FeedbackPulse SaaS. Follow every step carefully.
Pre-Kurulum Checklist
Before you begin, make sure you have:
- A server meeting all requirements
- Sunucunuza yonlendirilmis bir alan adi'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
Option A: Using SSH (Recommended)
# 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
- Connect to your server using FileZilla, WinSCP, or similar
- Su adrese gidin your web directory (usually
/var/www/or/home/user/public_html/) - Upload the entire extracted
feedbackpulse-saasfolder - Make sure the
public/subdirectory is accessible
Option C: Using cPanel File Manager
- Giris yapin to cPanel
- Open File Manager → navigate to
public_html(or a subdirectory) - Upload the ZIP file
- Extract it in place
- Onemli: You'll need to set the document root to the
public/folder (see Apache Yapilandirma)
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:
- Apache Yapilandirma
- Nginx Yapilandirma
- Shared Hosting (cPanel, Plesk, DirectAdmin) — if you're on paylasimli hosting, follow this guide instead!
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
Step 4: Storage Symlink (Automatic)
The web yukleyici 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
Tarayicinizi acin 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
- Girin 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: Gereksinimler Check
- The installer automatically checks:
- Vendor dependencies (
vendor/autoload.phpexists) - PHP version (8.2+)
- Required PHP extensions
- Directory permissions (storage, bootstrap/cache)
- Hosting environment (detects paylasimli hosting, shows compatibility info)
- Vendor dependencies (
- Fix any failed items before proceeding
Step 3: Veritabani Setup
- Girin database credentials:
- Host:
127.0.0.1(orlocalhost) - Port:
3306 - Veritabani name:
feedbackpulse(create this first!) - Username: your database username
- Password: your database password
- Host:
- 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 Yapilandirma
- Girin SMTP details:
- Host: e.g.,
smtp.gmail.com - Port:
587(TLS) or465(SSL) - Username: your SMTP username
- Password: your SMTP password or app password
- Encryption: TLS (recommended)
- From Address:
[email protected]
- Host: e.g.,
- You can skip this and configure later in Admin Ayarlar
Completion
- Switches session and cache drivers to
databasefor production - Generates a
CRON_TOKENfor the web-based cron endpoint - Creates a
storage/installed.lockfile (prevents re-running) - Shows a success page with cron gorevi setup instructions (both CLI and URL options) and next steps
Step 6: Set Up the Cron Job
FeedbackPulse needs a cron gorevi to run scheduled tasks. This is essential for:
- Sending e-posta ozetis (daily/weekly)
- Processing trial expirations
- Enforcing veri saklama policies
- Sending usage alerts
- Running AI anomaly detection
- Sending zamanlanmis raporlar
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"
Ipucu: 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 Kurulum
Run through this checklist:
| Check | How | Expected Result |
|---|---|---|
| Landing page loads | Visit https://yourdomain.com | See the acilis sayfasi |
| Login works | Visit https://yourdomain.com/login | Giris yapin with superadmin credentials |
| Admin panel | Visit https://yourdomain.com/admin/dashboard | See the admin dashboard |
| Storage link | Visit https://yourdomain.com/storage/ | No 404 error |
| Health check | Visit https://yourdomain.com/up | See "OK" text |
| Cron running | Check Admin → Ayarlar | No cron warnings |
| Email works | Admin → Ayarlar → Email → Send Test | Receive test email |
Post-Kurulum Steps
After installation is complete:
- Review abonelik planlari —
Admin → Plans(edit pricing, limits, features) - Configure odeme ag gecitleri —
Admin → Ayarlar → Payments(Stripe/PayPal API anahtarlari) - Customize the acilis sayfasi —
Admin → Landing Page - Test email delivery —
Admin → Ayarlar → Email → Send Test Email - Set up wildcard DNS (optional) — for tenant subdomains. See Wildcard DNS Setup.
- Create your first tenant — Register at
/registerin an incognito window
Kurulum Sorun Giderme
| Issue | Solution |
|---|---|
| Blank white page | Check storage/logs/laravel.log for errors. Usually a permissions issue. |
| 500 Server Error | Enable 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. |
| Veritabani connection refused | Verify credentials, ensure MySQL is running, check if localhost vs 127.0.0.1 matters. |
| Installer not loading | Make sure the web root points to public/ directory. |
| CSS/JS not loading | Clear browser cache. If images are missing, the storage fallback handles it automatically on paylasimli hosting. On VPS, visit /update as superadmin to re-create the symlink. |
| Permission denied | Run the chown and chmod commands from Step 2 again. |
For more, see Sorun Giderme.
Sonraki Adimlar
- Web Installer Walkthrough — detailed installer screenshots
- Apache Yapilandirma — Apache virtual host setup
- Nginx Yapilandirma — Nginx server block setup
- Yapilandirma — fine-tune your
.env