Docs / FlowCRM AI

Installation

Set up the product on production hosting with database, storage, mail, scheduler, and first admin workspace.

Estimated reading: 6 minutes

FlowCRM AI Installation Guide

Follow this guide to install FlowCRM AI on a production server from the downloaded package. The browser installer runs at /installer and checks the server before setup can continue.

1. Download Installation Package

After downloading the product package from your purchase source, unzip the main package on your computer first. The downloaded package is normally organized like this:

  • Documentation/ - offline documentation files included with the product package.
  • install.zip - the application files that must be uploaded to your server.
  • changelog.txt - version history and release notes.
  • license.txt - license information.

Upload the contents of install.zip to the target web root or subdomain folder. Do not upload only the outer package folder, because the web server must point to the extracted application files.

2. Create Domain or Subdomain

Create the domain or subdomain that will run FlowCRM AI, then point it to your server IP address.

yourdomain.com  -> your server IP address
agency.yourdomain.com -> your server IP address

Wait until DNS is resolved before starting installation. If the domain does not open the uploaded app correctly, fix DNS or web server configuration before using the installer.

3. System Requirements

FlowCRM AI is built on Laravel and Livewire. The installer checks PHP version, PHP extensions, server software, writable paths, and purchase verification configuration.

Minimum Requirements

  • PHP: 8.3.0 or higher.
  • Database: MySQL or MariaDB with PDO MySQL support.
  • Web server: Apache, Nginx, LiteSpeed, or another PHP-capable web server.
  • PHP memory limit: 256 MB or higher is recommended.
  • HTTPS: strongly recommended for login, billing, client portals, file delivery, and workspace security.

Required PHP Extensions

  • ctype
  • fileinfo
  • filter
  • hash
  • json
  • mbstring
  • openssl
  • pdo
  • tokenizer
  • xml

Recommended Extensions

  • pdo_mysql for MySQL database connection.
  • curl for API calls, licensing checks, AI providers, and external integrations.
  • gd or imagick for image and file preview workflows.
  • zip for package handling where hosting tools require it.
  • intl for better locale and text handling.

Writable Paths

The installer checks these paths and will not continue until they are writable:

  • .env
  • bootstrap/cache
  • storage

If a hosting panel blocks file permissions, set folders to writable from the file manager or SSH. After installation, keep permissions secure and avoid making the whole project publicly writable.

4. Configure Web Server

The recommended production setup is to point the domain document root to the application public folder. This protects framework files, environment files, logs, and storage paths from direct public access.

Apache

Point the virtual host document root to:

/path/to/flowcrmai/public

Make sure URL rewriting is enabled. On most hosting panels, this means Apache mod_rewrite must be available and .htaccess must be respected.

Nginx

Use the public folder as the web root and send all non-file requests to Laravel:

server {
    server_name yourdomain.com;
    root /path/to/flowcrmai/public;

    index index.php index.html;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        include fastcgi_params;
        fastcgi_pass unix:/run/php/php8.3-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
    }
}

Restart Nginx after saving the configuration. If your server points at the project root instead of public, fix that before installation.

5. Set Up SSL

Install SSL before final production use. HTTPS is important because FlowCRM AI handles login sessions, admin access, team workspaces, client portals, payments, file delivery, and AI-related workspace data.

  • Use Let's Encrypt when your hosting supports free SSL.
  • Use a paid SSL certificate if required by your hosting provider.
  • Confirm the browser opens the site with https:// before inviting users.

6. Create a Fresh Database

Create a new empty database from your hosting panel, phpMyAdmin, or MySQL console. The installer expects a clean database because installation runs migrations and default seeders.

You will need these values during setup:

  • Database host, usually localhost.
  • Database port, usually 3306.
  • Database name.
  • Database username.
  • Database password.

Important: do not use a database that already belongs to another application. The installer expects an empty database and may stop if tables already exist.

7. Run the Browser Installer

Open your domain in the browser and go to:

https://yourdomain.com/installer

The installer has three visible stages: Requirements, Setup, and Finish.

Step 1: Requirements

The Requirements screen validates the server before allowing installation to continue. It checks:

  • PHP version is 8.3.0 or higher.
  • Server software is available.
  • Required PHP extensions are loaded.
  • .env, bootstrap/cache, and storage are writable.
  • Purchase verification endpoint is configured.

If any item fails, fix the server requirement and refresh the installer page. The setup form remains locked until all requirements pass.

Step 2: Setup Details

After requirements pass, click Next Step to open the setup form.

License Verification

  • Enter the purchase code used for this product.
  • The installer verifies the purchase code with the licensing service.
  • The domain is sent with the request, so run the installer from the real installation domain.

Website Settings

  • Website title: public application name.
  • Website description: short meta description.
  • Website keywords: optional SEO keywords.

Database Connection

  • Host: usually localhost.
  • Port: usually 3306.
  • Database name: the empty database created earlier.
  • Username: database user with permission to create tables.
  • Password: database password.

Administrator Account

  • Full name: administrator display name.
  • Username: at least 3 characters; letters, numbers, dot, underscore, and dash are supported.
  • Email: admin login email.
  • Timezone: application timezone used for admin account and schedules.
  • Password: at least 8 characters and must be confirmed.

What Happens During Installation

  • Creates and writes the .env environment file.
  • Generates the Laravel application key.
  • Connects to the selected MySQL database.
  • Confirms the selected database is ready for installation.
  • Runs database migrations.
  • Seeds default plans, AI templates, workspace data, and required settings.
  • Creates the first super administrator account.
  • Assigns the configured administrator plan when available.
  • Saves website title, description, keywords, contact email, timezone, theme settings, and license metadata.
  • Sets installed runtime options such as database session, database cache, and database queue connection.

Step 3: Finish

When installation completes, the Finish screen confirms the application is ready. You can continue to the home page or login page.

8. Post-Installation Checklist

  • Open Admin Dashboard and confirm widgets load correctly.
  • Review website title, contact email, timezone, and SEO settings.
  • Configure payment gateways if plans and subscriptions will be sold.
  • Review plans, workspace limits, client limits, project limits, AI access, automation access, report access, storage limits, and team limits.
  • Configure mail settings before sending password reset, support, workspace, approval, or delivery emails.
  • Configure cron and queue processing if scheduled jobs, notifications, subscriptions, automations, or background tasks are enabled.
  • Test registration, login, workspace creation, client creation, project creation, task assignment, approval flow, file upload, deliverable delivery, report generation, and admin support flow.

9. Security Notes

  • Keep the domain pointed to the public folder only.
  • Do not expose .env, storage logs, vendor files, or application source folders publicly.
  • Use HTTPS for production.
  • Use a strong admin password and a private admin email.
  • Back up database and uploaded files before updating the product.
  • If the installer URL is still accessible after installation, confirm APP_INSTALLED=true is written in .env.

10. Common Installation Problems

Requirement check does not pass
Check the exact failed row. Most failures are caused by missing PHP extensions, unsupported PHP version, or folders that are not writable.

Purchase code verification fails
Confirm the code is copied without spaces, the server can reach the licensing endpoint, and the installation is being run from the correct domain.

Database error
Confirm host, port, database name, username, and password. Also confirm the database is fresh and does not belong to another application.

White page or 404 after upload
Confirm the web server document root points to the public folder and URL rewriting is enabled.

Login or session issue after installation
Confirm APP_URL is correct in .env. If the site uses HTTPS, make sure SSL is installed correctly and clear application cache after changing environment values.