Zum Hauptinhalt springen

Web Installer Walkthrough

FeedbackPulse SaaS includes a beautiful, browser-based installer. No command line needed (after the initial file upload and composer install).


Accessing the Installerโ€‹

Navigieren Sie zu:

https://yourdomain.com/install

Can't see the installer? Make sure:

  • Your web server points to the public/ directory
  • Apache mod_rewrite is enabled (or Nginx has proper try_files)
  • There is NO storage/installed.lock file (this blocks the installer after first installation)

Step 1: Welcome & Licenseโ€‹

The first screen welcomes you and asks for your Envato/CodeCanyon purchase code.

Where to find your purchase code:

  1. Melden Sie sich an to CodeCanyon
  2. Gehen Sie zu Downloads โ†’ find FeedbackPulse SaaS
  3. Click Download โ†’ License certificate and purchase code
  4. The purchase code looks like: a1b2c3d4-e5f6-7890-abcd-ef1234567890

What it does:

  • Validates your license with the Envato API
  • Ensures you have a legitimate copy
  • Unlocks the rest of the installer

Step 2: Anforderungen Checkโ€‹

The installer automatically scans your server and checks:

PHP Versionโ€‹

  • PHP 8.2 oder hoeher is required
  • Shows your current PHP version

Vendor Dependenciesโ€‹

  • Checks that vendor/autoload.php exists (Composer dependencies must be installed or uploaded)

PHP Extensionsโ€‹

The following are checked:

  • pdo_mysql โ€” Datenbank connectivity
  • mbstring โ€” String handling
  • openssl โ€” Encryption
  • tokenizer โ€” Code parsing
  • xml โ€” XML processing
  • ctype โ€” Character validation
  • json โ€” JSON handling
  • bcmath โ€” Math operations
  • fileinfo โ€” File type detection
  • curl โ€” API calls

Directory Permissionsโ€‹

  • storage/ โ€” Must be writable
  • bootstrap/cache/ โ€” Must be writable

Result Displayโ€‹

  • Green checkmarks = requirement met
  • Red crosses = requirement NOT met (must fix before proceeding)

Fixing failed checks:

# Install missing PHP extensions (Ubuntu)
sudo apt install php8.2-mysql php8.2-mbstring php8.2-xml php8.2-bcmath php8.2-curl php8.2-gd php8.2-zip

# Fix permissions
sudo chmod -R 775 storage bootstrap/cache
sudo chown -R www-data:www-data storage bootstrap/cache

# Restart PHP
sudo systemctl restart php8.2-fpm

Step 3: Datenbank Konfigurationโ€‹

Geben Sie Ihre MySQL/MariaDB connection details:

FeldBeispielNotes
Datenbank Host127.0.0.1Use 127.0.0.1 instead of localhost for reliability
Datenbank Port3306Default MySQL port
Datenbank NamefeedbackpulseMust exist already!
Datenbank Usernamefeedbackpulse_userWith full privileges on the database
Datenbank Passwordyour_secure_passwordThe user's password

Before This Stepโ€‹

You must create the database first:

-- Log into MySQL
mysql -u root -p

-- Create the database
CREATE DATABASE feedbackpulse CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- Create a dedicated user (recommended)
CREATE USER 'feedbackpulse_user'@'localhost' IDENTIFIED BY 'your_secure_password';
GRANT ALL PRIVILEGES ON feedbackpulse.* TO 'feedbackpulse_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

What Happens When You Click "Setup Datenbank"โ€‹

  1. The installer tests the connection
  2. Saves your database credentials to the .env file
  3. Runs all database migrations (creates ~30 tables)
  4. Seeds default data:
    • 3 default Abonnementplaene (Starter, Growth, Pro)
    • Default platform settings
  5. Shows a success message

Hinweis: Session and cache drivers remain as file during installation for stability. They are switched to database automatically at the completion step.

This step may take 10-30 seconds depending on your server.


Step 4: Admin Accountโ€‹

Create your superadmin account:

FeldBeispielNotes
Full NameJohn SmithYour display name
Email Address[email protected]Used for login and notifications
Password(strong password)Minimum 8 characters. Use a strong password!
Confirm Password(must match)Must match

What Happensโ€‹

  • Creates your user account with role = superadmin
  • This is the only superadmin account created automatically
  • You'll use this to log in at /login and access /admin/dashboard

Sicherheit tip: Use a unique, strong password. You can enable 2FA later in Einstellungen.


Step 5: Email Konfigurationโ€‹

Configure SMTP for sending transactional emails:

FeldBeispielNotes
SMTP Hostsmtp.gmail.comYour email provider's SMTP server
SMTP Port587587 for TLS, 465 for SSL
SMTP Username[email protected]Usually your email address
SMTP Passwordyour_app_passwordApp-specific password recommended
EncryptiontlsTLS (recommended) or SSL
From Address[email protected]The "from" address on outgoing emails
From NameFeedbackPulseThe "from" name on outgoing emails

Common SMTP Providersโ€‹

ProviderHostPortEncryptionNotes
Gmailsmtp.gmail.com587TLSRequires App Password (not regular password)
Mailgunsmtp.mailgun.org587TLSGreat for transactional email
Amazon SESemail-smtp.{region}.amazonaws.com587TLSCost-effective at scale
SendGridsmtp.sendgrid.net587TLSUse apikey as username
Postmarksmtp.postmarkapp.com587TLSBest deliverability
Mailtrapsandbox.smtp.mailtrap.io587TLSFor testing only!

Can't configure email now? You can skip this step and configure it later in Admin โ†’ Einstellungen โ†’ Email. The platform will work without email, but features like invitations, digests, and password resets won't function.


Step 6: Installation Complete!โ€‹

You'll see a success page with:

  • Datenbank configured and migrated
  • Admin account created
  • Email configured
  • installed.lock file created
  • Session and cache drivers switched to database
  • CRON_TOKEN auto-generated for web-based cron
  • Shared hosting notice (if symlink couldn't be created)

Cron Job Instructions (shown on completion page)โ€‹

The completion page displays two cron setup options with copy-paste commands:

  1. CLI Command โ€” for VPS/dedicated servers:

    * * * * * cd /path/to/project && php artisan schedule:run >> /dev/null 2>&1
  2. URL/wget โ€” for Shared Hosting (uses the auto-generated CRON_TOKEN):

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

Save these! Copy the cron command from the completion page before navigating away. You can also find your CRON_TOKEN in the .env file.

The installed.lock Fileโ€‹

The installer creates storage/installed.lock to prevent anyone from re-running the installer. This is a security measure.

To re-run the installer (e.g., fresh install), delete this file:

rm storage/installed.lock

Then visit /install again.


Post-Installation Checklistโ€‹

After the installer completes:

  • Set up the Cron-Job using the instructions shown on the completion page (see Cron Jobs & Queue Workers)
  • Melden Sie sich an at https://yourdomain.com/login with your superadmin credentials
  • Visit Admin โ†’ Plans โ€” review and customize Abonnementplaene
  • Visit Admin โ†’ Einstellungen โ†’ Payments โ€” connect Stripe/PayPal
  • Visit Admin โ†’ Einstellungen โ†’ Email โ€” send a test email
  • Visit Admin โ†’ Landing Page โ€” customize your public homepage
  • Set up SSL (see SSL Certificates)
  • Optionally set up wildcard DNS (see Wildcard DNS Setup)

Naechste Schritteโ€‹