
EspoCRM è un software di Customer Relationship Management (CRM) open source, distribuito sotto licenza GNU Affero General Public License v3 (AGPLv3), pensato per la gestione delle relazioni con clienti, fornitori e partner all’interno di un’organizzazione.
A differenza delle soluzioni CRM proprietarie basate su abbonamento, EspoCRM viene installato ed eseguito interamente sui server dell’organizzazione che lo adotta: questo garantisce il pieno controllo sui dati, l’assenza di costi di licenza per utente e nessun vincolo verso un fornitore esterno (vendor lock-in), aspetti particolarmente rilevanti per realtà come le organizzazioni non profit, dove il controllo dei costi operativi e la sovranità sui propri dati sono priorità concrete.
Dal punto di vista funzionale, EspoCRM consente di gestire in un unico ambiente i contatti e le anagrafiche aziendali, le opportunità di vendita e la relativa pipeline commerciale, le richieste di assistenza e supporto ai clienti, le attività di marketing e la comunicazione, oltre a automatizzare flussi di lavoro ricorrenti tramite regole configurabili. Il sistema è altamente personalizzabile: è possibile creare entità, campi e relazioni su misura senza dover intervenire sul codice sorgente, adattando lo strumento ai processi specifici dell’organizzazione anziché il contrario. L’architettura applicativa si basa su un frontend single-page che dialoga con un backend tramite API REST aperta, il che rende EspoCRM facilmente integrabile con altri sistemi (siti web, strumenti di posta elettronica, applicazioni gestionali) e ne fa, più che un semplice CRM, una piattaforma su cui costruire applicazioni gestionali su misura.
Sul piano tecnico, EspoCRM è un’applicazione web scritta in PHP che richiede un server web (Apache o Nginx), un database relazionale (MySQL o MariaDB) e un insieme di estensioni PHP dedicate per funzionare correttamente.
Essendo self-hosted, l’intero ciclo di vita del software — installazione, configurazione, aggiornamenti, backup e messa in sicurezza — è responsabilità di chi lo gestisce.
Il presente documento descrive la procedura di installazione e configurazione di base di EspoCRM su un sistema Ubuntu Server 26.04, a partire dalla preparazione dell’ambiente (stack LAMP/LEMP e relative dipendenze) fino alla prima configurazione applicativa, con l’obiettivo di fornire un ambiente funzionante, sicuro e pronto per un utilizzo in produzione.
PREREQUISITI
- Server con Ubuntu Server 26.04 LTS (“Resolute Raccoon”) appena installato, accesso sudo o root via SSH.
- Risorse minime consigliate: 2 vCPU, 4 GB di RAM, 20 GB di spazio disco (EspoCRM funziona anche con 2 GB di RAM su installazioni piccole, ma 4 GB evitano rallentamenti).
- Un nome di dominio che punti all’IP del server (facoltativo ma consigliato, necessario per il certificato HTTPS allo step 10).
- Firewall con le porte 22 (SSH), 80 (HTTP) e 443 (HTTPS) raggiungibili.
AGGIORNAMENTO DEL SISTEMA
Si parte sempre allineando i pacchetti di sistema e installando gli strumenti di base che serviranno più avanti.
|
0
1
|
sudo apt update && sudo apt upgrade -y
sudo apt install -y software-properties-common curl wget unzip ufw
|
Se il server è nuovo, conviene attivare subito il firewall di base:
|
0
1
|
sudo ufw allow OpenSSH
sudo ufw enable
|
INSTALLAZIONE DI APACHE
EspoCRM supporta Apache, Nginx e IIS: questa guida usa Apache perché è la scelta più semplice da configurare per un’installazione base con .htaccess.
Installare Apache con i seguenti comandi:
|
0
1
2
|
sudo apt install -y apache2
sudo systemctl enable --now apache2
sudo ufw allow "Apache Full"
|
Verificare che il servizio sia attivo puntando il browser all’indirizzo IP del server: deve comparire la pagina predefinita di Apache.
INSTALLAZIONE DI PHP 8.5 E DELLE ESTENSIONI
Ubuntu 26.04 include PHP 8.5 nei repository ufficiali, che rientra nell’intervallo richiesto da EspoCRM (PHP 8.3–8.5): non serve aggiungere repository di terze parti.
Eseguire i comandi:
|
0
1
2
|
sudo apt install -y php libapache2-mod-php php-cli \
php-mysql php-gd php-mbstring php-xml php-curl \
php-zip php-bcmath php-intl
|
Parametri consigliati. Aprire /etc/php/8.5/apache2/php.ini e impostare i valori consigliati da EspoCRM (aumentano i limiti di memoria, tempo di esecuzione e dimensione degli upload):
|
0
1
2
3
4
5
6
7
|
sudo sed -i \
-e 's/^max_execution_time = .*/max_execution_time = 180/' \
-e 's/^max_input_time = .*/max_input_time = 180/' \
-e 's/^memory_limit = .*/memory_limit = 256M/' \
-e 's/^post_max_size = .*/post_max_size = 50M/' \
-e 's/^upload_max_filesize = .*/upload_max_filesize = 50M/' \
-e 's/^;date.timezone =.*/date.timezone = Europe\/Rome/' \
/etc/php/8.5/apache2/php.ini
|
Riavviare Apache con il comando:
|
0 |
sudo systemctl restart apache2
|
Di seguito i paramentri che dovremmo avere:
|
0
1
2
3
4
|
max_execution_time: 180
max_input_time: 180
memory_limit: 256M
post_max_size: 50M
upload_max_filesize: 50M
|
INSTALLAZIONE E CONFIGURAZIONE DI MARIADB
In Ubuntu 26.04 MariaDB 11.8 è disponibile direttamente nell’archivio principale (in precedenza era in “universe”), ben oltre la versione minima 10.3 richiesta da EspoCRM.
|
0
1
2
3
4
|
sudo apt install -y mariadb-server
sudo systemctl enable --now mariadb
sudo mariadb-secure-installation
|
Durante mariadb-secure-installation rispondere Y a tutte le domande (impostare una password per root, rimuovere utenti anonimi e il database di test).
Creare il database con i seguenti comandi:
|
0 |
sudo mysql -u root -p
|
|
0
1
2
3
4
|
CREATE DATABASE espocrm CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'espocrm_user'@'localhost' IDENTIFIED BY 'Password_Sicura!Lel';
GRANT ALL PRIVILEGES ON espocrm.* TO 'espocrm_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
|
NOTA BENE: sostituire Password_Sicura!Lel con una password robusta e conservarla: servirà nel wizard di installazione.
DOWNLOAD ED ESTRAZIONE DI ESPOCRM
Scaricare il pacchetto ufficiale (versione 10.0.6 al momento della stesura di questa guida verifica su espocrm.com/download se è uscita una versione più recente) ed estrailo nella document root.
Eseguire i comandi:
|
0
1
2
3
4
5
6
|
cd /tmp
wget https://www.espocrm.com/downloads/EspoCRM-10.0.6.zip
sudo mkdir -p /var/www/espocrm
sudo unzip -q EspoCRM-10.0.6.zip -d /var/www/espocrm
|
Controllare il contenuto della cartella: se l’archivio ha creato una sottocartella invece di estrarre i file direttamente, spostane il contenuto un livello sopra con i seguenti comandi:
|
0
1
2
3
4
5
6
|
ls /var/www/espocrm
# se compare una sola cartella tipo "EspoCRM-10.0.6", eseguire i comandi:
sudo mv /var/www/espocrm/EspoCRM-10.0.6/* /var/www/espocrm/
sudo rm -rf /var/www/espocrm/EspoCRM-10.0.6
|
CONFIGURAZIONE DEI PERMESSI SUI FILES
EspoCRM richiede permessi specifici perché Apache possa scrivere cache, upload e log senza esporre l’intera installazione in scrittura.
|
0
1
2
3
|
sudo chown -R www-data:www-data /var/www/espocrm
sudo find /var/www/espocrm -type d -exec chmod 755 {} \;
sudo find /var/www/espocrm -type f -exec chmod 644 {} \;
sudo chmod -R 775 /var/www/espocrm/data
|
CONFIGURAZIONE DEL VIRTUALHOST IN APACHE
Il document root di EspoCRM deve puntare alla sottocartella public/, non alla radice del pacchetto: è lì che si trova il punto d’ingresso dell’applicazione.
|
0
1
2
|
sudo a2enmod rewrite
sudo nano /etc/apache2/sites-available/espocrm.conf
|
Contenuto del file /etc/apache2/sites-available/espocrm.conf:
|
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<VirtualHost *:80>
ServerName crm.tuodominio.org
DocumentRoot /var/www/espocrm/public
Alias /client/ /var/www/espocrm/client/
<Directory /var/www/espocrm/public/>
AllowOverride All
Require all granted
</Directory>
<Directory /var/www/espocrm/>
AllowOverride None
</Directory>
ErrorLog ${APACHE_LOG_DIR}/espocrm_error.log
CustomLog ${APACHE_LOG_DIR}/espocrm_access.log combined
</VirtualHost>
|
NOTA BENE: Sostituire crm.tuodominio.org con il tuo dominio (o rimuovere la riga ServerName per usare temporaneamente il solo IP).
Poi attivare il sito con is eguenti comandi:
|
0
1
2
3
4
|
sudo a2ensite espocrm.conf
sudo a2dissite 000-default.conf
sudo systemctl reload apache2
|
INSTALLAZIONE GUIDATA VIA BROWSER
Aprire da un qualsiasi browser http://crm.tuodominio.org (o l’IP del server).
EspoCRM avvia automaticamente il wizard di installazione perché non trova ancora una configurazione.
Selezionare la lingua, il tema quindi cliccare Inizio
Accettare il contratto quindi cliccare Avanti
Inserire tutte le info relative al database quindi cliccare su Test Connessione. Se è tutto OK cliccare Avanti
Verificare che sia tutto OK quindi cliccare Installa
Creare le credenziali amministrative quindi cliccare Avanti
Configurare tutte le Impostazioni di Sistema quindi cliccare Avanti
Cliccare su Vai a EspoCMR per proseguire
Inserire le credenziali create in precedenza quindi cliccare Accedi
Se è andato tutto a buon fine dovremmo visualizzare la Dashboard di EspoCRM
CONFIGURAZIONE DEL CRON JOB
I processi pianificati di EspoCRM (invio email in coda, notifiche, workflow, report automatici) girano tramite un job cron che va aggiunto manualmente.
|
0 |
sudo crontab -u www-data -e
|
Aggiungere questa riga (esecuzione ogni minuto):
|
0 |
* * * * * /usr/bin/php -f /var/www/espocrm/cron.php > /dev/null 2>&1
|
Il cron va eseguito come utente www-data (lo stesso proprietario dei file) per evitare problemi di permessi su cache e log.
HTTPS CON LET’S ENCRYPT
Con un dominio già puntato al server, attivare HTTPS richiede un solo comando grazie a Certbot.
|
0
1
2
|
sudo apt install -y certbot python3-certbot-apache
sudo certbot --apache -d crm.tuodominio.org
|
Certbot modifica automaticamente il Virtual Host per servire in HTTPS e configura il rinnovo automatico del certificato. Verifica il rinnovo con:
|
0 |
sudo certbot renew --dry-run
|
CONFIGURAZIONE BASE POST-INSTALLAZIONE
Accedere come amministratore e completare queste impostazioni essenziali prima di invitare gli utenti (menu Amministrazione in alto a destra):
Impostazioni generali: nome dell’organizzazione, logo, fuso orario e formati di data/valuta, sotto Amministrazione → Impostazioni.
Email in uscita (SMTP): sotto Amministrazione → Email in uscita, necessaria per notifiche, reset password e invii da EspoCRM.
Utenti e ruoli: creare gli account per il team sotto Amministrazione → Utenti e definire i ruoli di accesso prima di condividere l’URL.
Backup: pianificare un backup regolare che copra sia i file (/var/www/espocrm, in particolare data/ e custom/) sia un dump del database (mysqldump espocrm).
PRO E CONTRO
Come ogni soluzione software, anche EspoCRM presenta punti di forza e limiti di cui tenere conto in fase di valutazione e adozione.
PRO
- Nessun costo di licenza per utente e controllo dei dati: essendo open source e self-hosted, l’organizzazione non paga canoni per utente e mantiene i dati interamente sui propri server, un aspetto rilevante per realtà con budget limitati o vincoli sulla riservatezza dei dati.
- Personalizzazione senza scrivere codice: tramite l’Entity Manager è possibile creare entità, campi, layout e relazioni su misura per i propri processi, senza dover modificare il codice sorgente dell’applicazione.
- Interfaccia pulita e curva di apprendimento contenuta: per le funzioni di base (contatti, opportunità, attività) l’interfaccia è generalmente descritta come intuitiva e semplice da usare.
- Automazione dei flussi di lavoro: regole, notifiche e processi (BPM) configurabili permettono di automatizzare attività ricorrenti senza sviluppo custom.
- API REST aperta: facilita l’integrazione con siti web, strumenti di posta elettronica e altri sistemi gestionali dell’organizzazione.
- Costo complessivo contenuto rispetto a CRM enterprise paragonabili, sia nella versione community gratuita sia nel piano cloud a pagamento.
CONTRO
- Funzionalità di comunicazione native limitate: mancano automazioni integrate per canali come SMS o WhatsApp; per queste esigenze occorre affidarsi a strumenti terzi.
- Integrazioni native ridotte: di serie sono previste solo poche integrazioni (es. Google/Outlook, Mailchimp, VoIP); per collegare altri servizi è spesso necessario ricorrere a strumenti come Zapier/Make oppure sviluppare integrazioni custom via API.
- Le funzionalità avanzate richiedono competenze tecniche: automazioni complesse, integrazioni e personalizzazioni profonde presuppongono un amministratore con un minimo di preparazione tecnica.
- Reportistica meno sofisticata: le capacità di analisi e reporting sono giudicate meno avanzate rispetto a CRM enterprise dedicati.
- Prestazioni da monitorare con grandi volumi di dati: alcuni utenti segnalano rallentamenti in presenza di dataset molto grandi o workflow particolarmente complessi.
- App mobile meno matura: le applicazioni mobile ufficiali sono ritenute meno complete e con qualche criticità rispetto alla versione web.
- Responsabilità gestionale del self-hosting: essendo il software installato ed eseguito sui server dell’organizzazione, aggiornamenti, backup e sicurezza (patch, hardening del server, certificati) restano a carico di chi lo amministra, a differenza di una soluzione SaaS dove questi aspetti sono gestiti dal fornitore.

0 Commenti