Installation

AssistFlow has its own web installer that will help you to perform the installation in a few steps without touching any code or modifying any files.

As AssistFlow is using Laravel, and Laravel requires the root of AssistFlow to be pointed at the /public path, in this case, the easiest way to install AssistFlow is on a subdomain that points to subdomain folder /public path.

Make sure that you checked the requirements page before installation.

Below, you can find 2 installation videos, for cPanel and for Plesk, watch the video tutorials to get familiar with the installation steps and learn how easy is to install AssistFlow.

It's required to point the subdomain document root path the /public directory.

We offer a hosted solution for your AssistFlow licenses, you buy the license, we will host it on our servers.

If you aren't quite comfortable configuring and installing your AssistFlow instance manually or your current hosting does not meet AssistFlow requirements, our hosted solution is wonderful alternative. It's a server and configuration worry free solution with automatic installation and many other perks at a reasonable price.

Create Subdomain

It's required to point the subdomain document root path the /public directory.

You will need to create a subdomain for your installation, for example, https://crm.yourdomain.com

  • Login to cPanel.
  • Find the Subdomains section.
  • Create a subdomain, for example, crm.yourdomain.com and make sure to set the Document Root option to path public.

Create Subdomain Document Root

Upload Files

If you did not created subdomain as explained in the previous step and you want to install AssistFlow on a subfolder it won't work, you will need to consult with your hosting provider create a virtual host pointing the the root path to subfolder/public

In order to proceed with the web installer, you will first need to download the release archive files from your AssistFlow account releases page.

For the sake of this example, assuming that you created subdomain with name "crm" and the path is public_html/crm/ upload the files to the public_html/crm folder.

Create Database

For additional information on how to create a database, see the installation video above.

Create a brand new database that will be used only for the AssistFlow installation.

  1. Login to cPanel by accessing www.yourdomain.com/cpanel.
  2. Look for the Databases section, then click MySQL Databases, note that this step may vary and in some hosting providers can be different.
  3. Click Create Database, the new database will appear in the Current Databases section.
  4. Create user and set up the user password. (write down the username and the password because needs to be added later in the installer)
  5. Add the user to the database by selecting the database and the username, make sure you have checked All privileges when adding the user to the database.

Perform Install

Assuming that you have created the subdomain, database and uploaded the files as explained in the previous steps, follow the steps below to begin with the installation process.

  • In your browser navigate to e.q. crm.yourdomain.com/install – Make sure to update yourdomain.com according to your domain.
  • If all server requirements passed click Next otherwise consult with your hosting provider to fix/enable them.
  • If all permissions are passed click Next to set up the application data, otherwise you need to set 755 permissions for the given folders, in cases where you are managing the server, see Permissions, User and Group.

General Config

  • App Url

    AssistFlow will automatically try to guess the URL where the application will be installed, in our case now from, this example, the URL is https://crm.yourdomain.com/, if the URL is wrong, please adjust it accordingly.

  • Application Name

    You can leave it as default or you can write your own name, for example, "My Company CRM"

  • Country

    Select your country.

  • Currency

    If not auto selected, select the default currency that will be used in AssistFlow.

Configure Database

Add the database config in the installer

  • Hostname

    Enter database hostname, in most cases, the default hostname is localhost, however, if it's different in your case, make sure to set the correct hostname.

  • Port

    In most cases, this value will be 3306 as this port is MySQL default port, if you are not familiar with this option for your server, leave it as it is and continue to the next field, where you will need to configure the database name and user you created in the previous step.

  • Database Name

    Enter the database name.

  • Database User

    Enter the database username.

  • Database Password

    Enter the database user password, for local installations and database users without password, leave it empty.

  1. Click Test Connection & Configure and if the database connection is successful you will be passed to the latest step otherwise please re-check your credentials and hostname.

  2. On the next page, configure administrator user and perform the installation.

Installation Finished Page

After you finish all the installation steps you will be presented with a installation successful screen where there will be information on how to configure cron job as well the guessed command and the path for the cron job.

Don't forget to copy the command/path so you can configure a cron job as explained here.

The installation success page will be available for 1 hour after installation, after 1 hour, when you visit the same URL, a 404 error will be shown.

Installation Success

Nginx Config

If you are managing the server and you are already familiar with Laravel, probably you will know that for Nginx you will need to create separate configuration file so AssistFlow can be served.

The examples below are for installation on the root domain, but feel free to adjust the paths for the subdomain if you want to perform an installation on a subdomain.

server {
    listen 80;
    server_name example.com;
    root /example.com/public;

    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-XSS-Protection "1; mode=block";
    add_header X-Content-Type-Options "nosniff";

    index index.html index.htm index.php;

    charset utf-8;

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

    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }

    error_page 404 /index.php;

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

    location ~ /\.(?!well-known).* {
        deny all;
    }
}

Permissions, User And Group

If you are managing the server, you will need to make sure that the proper permissions are applied to all files and folders and also the files and folders belong to the user and group responsible for managing the web server, in most cases is www-data.

Keep in mind that you won't need to apply the commands below if your server is managed by your server provider, for example, shared hosting as the permissions and the group will be already configured for you.

Change all the directories to 755 (drwxr-xr-x):

find /var/www/example.com -type d -exec chmod 755 {} \;

Change all the files to 644 (-rw-r--r--):

find /var/www/example.com -type f -exec chmod 644 {} \;

Change the files and folders user and group

sudo chown www-data:www-data -R /var/www/example.com

Don't forget to adjust the values in the example codes according to your setup.

Next Steps

Update/Patch Installation

After the installation succeeded, to ensure everything is up to date with latest features and fixes, it's highly recommended to check if there are any patches or updates available, you can do this in Settings->System->Update

Configure Cron Job

AssistFlow requires a properly configured cron job in order all the features to work as expected, configure the cron job as explained here.

Configure System Email Account

You should config a system email account to act as a general email account that the system will use to send system-related emails like password reset, user assigned to contact, activity due reminders, etc...

Refer to the system email account configuration page for more information.

Configure Brand

AssistFlow installation creates a default brand that will be used for the documents feature, make sure that the brand information and settings are accordingly set as per the brand requirements.