Getting Started / Installation
🚀 Before applying our module, better take a look at this section. Get started with SaaS module for Perfex CRM in no time with our easy-to-follow installation guides.
This section includes step-by-step instructions and video walkthroughs to help you install and activate your SaaS Module for Perfex CRM with ease. Whether you’re a complete beginner or an experienced developer, our detailed guides are designed to get you up and running quickly, so you can start unlocking powerful SaaS functionality in no time.
Articles
⚙️ Requirements
📋 System Requirements
The Perfex CRM SaaS Module is built with simplicity and performance in mind, requiring minimal server-side adjustments to get up and running. However, as with any SaaS-oriented solution that serves external clients, we highly recommend using a dedicated resources environment such as a VPS or Dedicated Server to ensure optimal reliability, speed, and security.
✅ While the module can run on a properly configured shared hosting environment, please note that our official support coverage applies only to installations hosted on dedicated resource environments.
🖥️ Recommended Hosting
To ensure the best experience and long-term success of your SaaS platform, consider choosing a hosting provider that offers root access, wildcard SSL support, and full server control.
🔗 Get Dedicated Hosting Resources
✅ Minimum Technical Requirements
To use the Perfex CRM SaaS Module, you must have:
- ✅ Perfex CRM v3.0+ installed (factory-state version)
- ✅ Apache or Nginx web server
- ✅ PHP 7.4+
- ✅ A Top-Level Domain (e.g.
domain.com) - ✅ MySQL/MariaDB (with zero sql modes and root access)
- ✅ Wildcard SSL Certificate (Let’s Encrypt or other) — if SSL is required
⚠️ Important: Installation and configuration of your hosting environment (server setup, domain pointing, SSL configuration, etc.) are not included in the support package provided with your Envato purchase.
However, we’re more than happy to offer consultation services and point you in the right direction if you need guidance selecting the proper hosting or configuration tools.
✅ Installation & Configuration Service
🔧 Need Help with Installation?
While our SaaS Module for Perfex CRM comes with clear, step-by-step instructions to guide you through the entire setup process, we understand that some users may prefer to leave the technical part to the experts—and that’s perfectly okay!
Setting up a SaaS module involves a few server-level configurations and advanced Perfex CRM customizations that not everyone is familiar with. If you’re short on time, not confident with server environments, or simply want peace of mind knowing that everything is set up flawlessly and securely, we’re here to help.
✅ What’s Included in the Installation Service?
- Full SaaS Module installation on your server
- Configuration of the module to match your existing Perfex CRM environment
- Services Optimization (MySQL profiling etc)
- Basic testing to ensure everything works as expected
- Professional and friendly support throughout the process
💡 Please Note:
This installation service is optional and not included in the Envato license. Envato’s standard support policy covers product-related questions and bug fixes, but not hands-on configuration or server setup.
🎯 When Should You Consider Purchasing This?
- If you’re not familiar with server configurations
- If you’re unsure how to perform this installation and you meet module’s requirements
- If you want a hassle-free experience from the start
👉 Ready to Let Us Handle the Setup?
Click the button below to raise a support ticket within the Support Portal and ask our Professional Installation Service. You’ll be contacted by a representative of our team, regarding the next steps.
🛠️ a) Perfex CRM SaaS module Installation
Welcome to our installation guide for the SaaS Module for Perfex CRM!
In this video, we’ll walk you through the seamless installation process step-by-step. Whether you’re a seasoned developer or new to the world of CRM modules, we’ve got you covered. Follow along as we demonstrate how to set up and configure the SaaS Module, ensuring a smooth integration with your Perfex CRM installation.
After installation, you must choose the appropriate SaaS mode depending on your server environment:
- If you are using VPS or dedicated hosting with full control, you can use Subdomain Mode.
- If you are using shared hosting, you can enable Shared Hosting Mode. This mode uses subfolder based tenants and a shared database with table prefixes, without needing root MySQL access, wildcard DNS, or subdomains.
Shared Hosting Mode vs Subdomain Mode
Shared Hosting Mode
Tenants run under a subfolder, for example
https://yourcrm.com/ws/tenant123
Ideal when
- subdomains cannot be created automatically
- you do not have root MySQL access
- you do not have WHM or panel level control
- the hosting provider restricts DNS changes
How it works
- All tenants share a single database
- Each tenant uses unique table prefixes
Pros
- No MySQL root user required
- No extra databases created
- Easiest setup, minimal configuration
- Works on almost any shared hosting environment
Cons
- Tenants do not get separate subdomains
- SEO benefits tied to subdomains are not available
- Very large installations may prefer isolated databases for performance
Subdomain Mode
Tenants run under dynamic subdomains, for example
https://tenant123.yourcrm.com
Ideal when
- you have full server control (VPS or dedicated)
- you can create wildcard DNS records
- you can create wildcard SSL certificates
- you want isolated tenant databases
How it works
- Each tenant gets its own MySQL database
- Requires root MySQL user to create databases on the fly
Pros
- Best isolation per tenant
- Independent databases improve scalability and performance on busy systems
- Clean subdomain based URLs
- Better structure for SaaS style deployments
Cons
- Requires full server access
- Requires wildcard DNS and wildcard SSL setup
- Requires Apache or Nginx configuration
- Not available on most shared hosting environments
How to configure SaaS module under Shared Hosting
- Go to “SaaS Settings” inside Perfex CRM.
- Under “Database for Each Tenant” select No.
- Enable Use Subdir Structure.
- Enter your MySQL credentials for the shared database.
- Click “Verify Server Settings”.
- Save.
That is all. Tenants will be created inside the same database using automatically generated table prefixes. You can now head to the configuration section SaaS plans and Plan Management.
How to configure SaaS module under Dedicated Resources (VPS, Dedicated Server etc)
Before you proceed, keep in mind that running the SaaS module in VPS mode requires a few additional steps, depending on the services that run on your server like Apache, Nginx or any custom setup. You will also need to follow the correct guide for wildcard DNS records and wildcard SSL configuration, according to your server’s configuration.
Once you complete these environment specific steps, you can head to the SaaS plans and Plan Management section and configure your plans normally.
The video below demonstrates how to configure the required settings using the root user of your MySQL service.
Note that configuring services like Apache, Nginx, wildcard DNS and wildcard SSL is not part of the module’s automation.
These steps relate to your server’s own management. You will need to handle them yourself if you manage your server directly and have the required technical knowledge, otherwise your hosting provider should take care of them for you.
🔧 b) Configuring DNS Records needed
🌐 Configuring Wildcard A Records
To properly support tenant subdomains (e.g. client1.yourdomain.com, client2.yourdomain.com, etc.) in your SaaS Module for Perfex CRM, you’ll need to configure a wildcard A record in your DNS settings. This record ensures that any subdomain under your main domain points to your server and loads the correct tenant workspace.
✅ What is a Wildcard A Record?
A wildcard A record allows all subdomains of a domain to resolve to a single IP address—without needing to create each subdomain manually. Instead of configuring:
client1.yourdomain.com → 123.123.123.123
client2.yourdomain.com → 123.123.123.123
client3.yourdomain.com → 123.123.123.123
You simply add:
*.yourdomain.com → 123.123.123.123
This is essential for SaaS platforms that dynamically generate subdomains for each customer (tenant).
☁️ Using Cloudflare
Cloudflare is one of the most popular DNS management providers and works perfectly with wildcard A records.
🔧 Steps to Add a Wildcard A Record in Cloudflare:
- Log in to your Cloudflare Dashboard.
- Select your domain from the list.
- Go to the DNS tab.
- Click “Add Record”.
- Set the following values:
- Type: A
- Name:
* - IPv4 Address: Your server IP (e.g.,
123.123.123.123) - Proxy status: DNS only (⚠️ Important: Must be gray-clouded for wildcard subdomains to work properly)
- Click Save.
⚠️ Important: Cloudflare does not support wildcard subdomains over their proxy (orange-clouded) unless they are pre-defined. That’s why you must select “DNS Only” (gray-cloud) when setting up the wildcard record.
🧩 Using Other DNS Providers (GoDaddy, Namecheap, etc. including all Control Panels)
If you’re not using Cloudflare, the process is similar. Here’s a general guide:
- Log in to your DNS provider’s dashboard.
- Navigate to your domain’s DNS Management or Zone Editor.
- Add a new A Record with the following values:
- Host / Name:
* - Type: A
- Value / Points to: Your server IP address
- TTL: Auto or 30 minutes
- Host / Name:
- Save changes.
Each provider may label things slightly differently, but the concept is the same. Once the wildcard A record is in place, all subdomains will resolve to your server.
🔍 How to Verify
After updating your DNS:
- Open a terminal or command prompt.
- Run:
ping randomsubdomain.yourdomain.com
If it returns your server’s IP, the wildcard DNS record is working as expected.
💡 Pro Tip: Pairing with Wildcard SSL
If your SaaS module is running over HTTPS, make sure you’re also using a Wildcard SSL Certificate (e.g., from Let’s Encrypt or a paid provider). This ensures that all tenant subdomains are covered under the same certificate.
💻 c1) Configuration for cPanel/WHM (Automatic)
🔐 cPanel Integration Made Easy
The latest versions of the SaaS Module now support direct cPanel connections using your username and password.
To use this way:
- Navigate to the Settings area.
- Enter your cPanel username and password in the designated fields.
- Save your changes — and you’re all set!
This integration streamlines domain management and simplifies tenant subdomain provisioning, giving you more control with minimal setup.
💻 c2) Configuration for other panels/LAMP/LNMP (manual)
🛠️ Manual MySQL Configuration – for Plesk/DirectAdmin/CloudPanel/AAPanel/VirtualMin and nude LAMP/LNMP setups
For users who prefer a more hands-on approach or are hosting outside of a cPanel environment, our SaaS Module also supports manual MySQL configuration. This can also be used for every other control panel than cPanel or “nude” setups.
To set up SaaS module this way:
- Go to the Settings area of the module.
- Click on the MySQL tab.
- Enter the following details:
- MySQL Host (e.g.
127.0.0.1or your database server’s IP) - Port (default is usually
3306) - Root MySQL Username
- Root MySQL Password
- MySQL Host (e.g.
- Save your settings after checking the connection.
This method gives you full control over database-level operations, which is essential for managing subdomain provisioning and tenant database creation when not using cPanel.
⚠️ Important: Ensure the MySQL user has the necessary privileges to create and manage databases (usually “root”)
🔧 d1) Apache WildCard SSL configuration (manual setups)
In order to create WildCard domain for global access, we need to create WildCard DNS entry (A entry) for the subdomains on our DNS server.
IE: *.example.com for our base domain entry (example.com).
This way, all incoming traffic will be recognized and will be routed in the proper domain.
Step 1:
You will need to configure the Apache config file /etc/apache2/sites-available/000-default.conf. In most cases (new installations), this configuration file, includes the following contents:
<VirtualHost *:80>
#ServerName www.example.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
</VirtualHost>
You will need to edit these contents, uncomment ServerName and replace contents according to your domain’s preferences.
In the example below, we will use themesic.com domain for our Perfex SaaS module WildCard Installation:
<VirtualHost *:80>
ServerName themesic.com
ServerAlias *.themesic.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
</VirtualHost>
Step 2:
After making the proper changes, you will need to contact to the host provider, in order to add the WildCard DNS entry in your DNS zone.
If you handle the DNS zone on your own, you can do that manually. Here’s an example of adding a WildCard DNS entry in CloudFlare: https://developers.cloudflare.com/dns/manage-dns-records/reference/wildcard-dns-records/
🔧 d2) Nginx configuration for WildCard SSL (manual setups)
In order to create WildCard domain for global access, we need to create WildCard DNS entry (A entry) for the subdomains on our DNS server.
IE: *.example.com for our base domain entry (example.com).
This way, all incoming traffic will be recognized and will be routed in the proper domain.
Step 1:
You will need to configure the Nginx config file /etc/nginx/sites-available/default. In most cases (new installations), this configuration file, includes the following contents:
server {
listen 80 default_server;
listen [::]:80 default_server;
...
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name _;
...
}
You will need to edit these contents and replace them according to your domain’s preferences.
In the example below, we will use themesic.com domain for our Perfex SaaS module WildCard Installation:
server {
listen 80 default_server;
listen [::]:80 default_server;
...
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name themesic.com *.themesic.com;
...
}
Step 2:
After making the proper changes, you will need to contact to the host provider, in order to add the WildCard DNS entry in your DNS zone.
If you handle the DNS zone on your own, you can do that manually. Here’s an example of adding a WildCard DNS entry in CloudFlare: https://developers.cloudflare.com/dns/manage-dns-records/reference/wildcard-dns-records/