How it helps your business
Key Benefits
- Performance Focus: The SPA design utilizing Backbone.js means lightning-fast navigation, boosting daily sales agent productivity.
- Deep Customization: The Entity Manager enables structural changes to the database directly via the UI, unlike older CRMs that required writing PHP override files or manual SQL schema updates.
- Unified Communication: Integrated IMAP allows emails to be pulled directly into the CRM and automatically linked to the appropriate contact records using intelligent matching.
- Low Server Requirements: Despite its speed, EspoCRM has an extremely tiny hardware footprint, running smoothly on minimal virtual private servers (VPS).
Production Architecture Overview
- Frontend Application (Browser): A heavy JavaScript SPA leveraging modern web standards to parse JSON received from the backend, providing a native-app-like experience.
- API Backend (PHP): A custom, lightweight Object-Relational Mapping (ORM) framework written in PHP, exclusively serving REST/JSON endpoints.
- Web Server (Nginx or Apache): Relies on strict URL rewriting rules to route all traffic to a single
index.phporapi/v1/index.phpentry point. - Database (MySQL/MariaDB): Manages all structural relationships, the core CRM data, and dynamically generated entity schemas.
- Cron Engine: Central to functionality, executing scheduled tasks like pulling IMAP emails, processing workflow triggers asynchronously, and generating scheduled reports.
How we deploy this for you
Security Hardened
Firewalls, SSL, and hardened kernels out of the box.
Performance Tuned
Optimized for speed with cache and DB fine-tuning.
Automated Backups
Daily off-site backups so you never lose your data.
Private Cloud
You own the server and the data. No middleman.
Implementation Blueprint
Prerequisites
sudo apt update && sudo apt upgrade -y
# Install Nginx, MariaDB, and PHP
sudo apt install nginx mariadb-server php-fpm php-mysql php-curl php-gd php-intl php-mbstring php-xml php-zip php-bcmath unzip wget -yDatabase Provisioning
sudo mysql -u root
CREATE DATABASE espocrmdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'espouser'@'localhost' IDENTIFIED BY 'highly_secure_crm_password';
GRANT ALL PRIVILEGES ON espocrmdb.* TO 'espouser'@'localhost';
FLUSH PRIVILEGES;
EXIT;Application Installation
wget.cd /tmp
# Always check espocrm.com/download for the latest major version
wget https://www.espocrm.com/downloads/EspoCRM-8.3.0.zip
unzip EspoCRM-8.3.0.zip
sudo mv EspoCRM-8.3.0 /var/www/html/espocrm
# Establish proper ownership
sudo chown -R www-data:www-data /var/www/html/espocrmcd /var/www/html/espocrm
sudo find . -type d -exec chmod 755 {} +
sudo find . -type f -exec chmod 644 {} +
sudo chmod -R 775 data custom client/customPHP Optimization
php.ini (e.g., /etc/php/8.1/fpm/php.ini) to improve performance and upload limits.memory_limit = 256M
upload_max_filesize = 50M
post_max_size = 50M
max_execution_time = 180
date.timezone = "America/New_York"sudo systemctl restart php8.1-fpmConfiguring the Web Server (Nginx)
/etc/nginx/sites-available/espocrmserver {
listen 80;
server_name crm.mycompany.com;
root /var/www/html/espocrm;
index index.php;
# Protect internal sensitive directories
location ^~ /data {
deny all;
}
location ^~ /custom {
deny all;
}
# API Routing
location /api/v1/ {
if (!-e $request_filename) {
rewrite ^/api/v1/(.*)$ /api/v1/index.php last;
}
}
# Main Frontend Routing
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}sudo ln -s /etc/nginx/sites-available/espocrm /etc/nginx/sites-enabled/
sudo systemctl reload nginxRunning the Web Installer
- Navigate to
http://crm.mycompany.com/install. - Accept the license agreements and pass the strict System Requirement checks.
- Provide database details (
espocrmdb,espouser,highly_secure_crm_password). - Establish the Administrator username and password.
Configuring System Cron (Crucial step)
sudo crontab -e -u www-data* * * * * /usr/bin/php /var/www/html/espocrm/cron.php > /dev/null 2>&1Setup and Administration Workflows
- Customization: Once logged in as Administrator, navigate immediately to the "Administration -> Entity Manager." Use this interface to modify generic CRM fields to match the specific vernacular of your business sector (e.g., renaming "Accounts" to "Distributors").
- Performance Tweak (Opcache): For significant performance gains in production, ensure PHP OPcache is enabled and optimized in your
php.inifile, caching the heavily used PHP scripts required by EspoCRM's REST API. - SSL: As an API-driven SPA, every click involves transmitting payloads containing potentially sensitive customer data. Configure HTTPS using Let's Encrypt immediately upon completion of the web installer.
Includes Security & performance standards
Best place to host EspoCRM
We recommend Hostinger for its reliability and low cost. It's the perfect home for your new apps, featuring easy setup and 24/7 support.
Get Started on HostingerCompare Similar Tools
X2CRM
X2CRM is an open-source CRM, sales process, and marketing automation application designed for fast, high-performance sales teams.
vTiger CRM
vTiger CRM is a comprehensive, open-source CRM application equipping sales, support, and marketing teams to enhance customer experiences.