
Nel mondo dell’assistenza clienti e del supporto tecnico, disporre di una piattaforma efficiente per la gestione dei ticket è fondamentale per mantenere ordine, rapidità e trasparenza nelle comunicazioni.
Zammad Community si distingue come una delle soluzioni open source più complete e moderne in questo ambito: un sistema di helpdesk e ticketing potente, flessibile e personalizzabile, ideale per aziende, enti pubblici e team IT di qualsiasi dimensione.
In questo articolo vedremo come installare e configurare Zammad Community su Ubuntu Server 24.04, includendo l’integrazione con Elasticsearch, il motore di ricerca che permette di gestire in modo rapido e preciso le ricerche tra ticket, utenti e contenuti della knowledge base.
PREREQUISITI
Requisiti hardware (indicativi)
- Piccoli team: 2 vCPU, 4 GB RAM, ~20 GB disco.
- Medi (20–50 agenti): 4 vCPU, 8 GB RAM, 50+ GB disco.
- Grandi carichi: 8+ vCPU, 16+ GB RAM, 100+ GB SSD.
- Consigliato usare SSD (database + indice di ricerca).
Sistemi operativi supportati
- Ubuntu 20.04/22.04 LTS
- Debian 11/12
- RHEL/CentOS Stream 8–9, Rocky Linux 8–9
- openSUSE Leap 15.x
Rete e sicurezza
- Apri le porte: 80/443 (HTTP/HTTPS), 25/465/587 (SMTP), 993/995/110 (IMAP/POP3, se ricevi email).
- Consenti accesso ai repository ufficiali e a Elasticsearch locale (default 9200).
- Configura firewall per esporre solo ciò che serve.
- Prevedi TLS/SSL (es. Let’s Encrypt) per l’interfaccia web.
INSTALLAZIONE DI ELASTICHSEARCH
Per utilizzare Zammad su Ubuntu è necessario installare Elasticsearch.
Il modo più semplice per installare Elasticsearch è dal nostro repository APT.
Prima di aggiungere il repository Elasticsearch installare questi pacchetti con il comando:
|
0 |
sudo apt-get install apt-transport-https curl
|
Scaricare e aggiungere la chiave GPG per il suo pacchetto APT nel repository con il comando:
|
0 |
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
|
Eseguire il comando seguente per aggiungere il repository Elasticsearch versione 8 a Ubuntu.
|
0 |
echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.list
|
Eseguire il comando seguente per installare Elasticsearch dal repository APT
|
0 |
sudo apt-get update && sudo apt-get install elasticsearch
|
Durante l’installazione di Elasticsearch, le funzionalità di sicurezza sono abilitate e configurate per impostazione predefinita.
La password, il certificato e le chiavi vengono inviate a terminale.
Prendera nota della password del SuperUser poiché servirà in seguito per la configurazione di Zammad
|
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
--------------------------- Security autoconfiguration information ------------------------------
Authentication and authorization are enabled.
TLS for the transport and HTTP layers is enabled and configured.
The generated password for the elastic built-in superuser is : 8rYRtBM4rp6rixhTzcvb
If this node should join an existing cluster, you can reconfigure this with
'/usr/share/elasticsearch/bin/elasticsearch-reconfigure-node --enrollment-token <token-here>'
after creating an enrollment token on your existing cluster.
You can complete the following actions at any time:
Reset the password of the elastic built-in superuser with
'/usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic'.
Generate an enrollment token for Kibana instances with
'/usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana'.
Generate an enrollment token for Elasticsearch nodes with
'/usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s node'.
-------------------------------------------------------------------------------------------------
### NOT starting on installation, please execute the following statements to configure elasticsearch service to start automatically using systemd
sudo systemctl daemon-reload
sudo systemctl enable elasticsearch.service
### You can start elasticsearch service by executing
|
Riavviare il servizio Elasticsearch con il comando:
|
0 |
sudo systemctl start elasticsearch.service
|
È possibile reimpostare la password per l’utente con il comando seguente:
|
0 |
/usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic
|
Dopo aver installato Elasticsearch, abilitalo per impostazione predefinita e avviarlo
|
0
1
2
|
sudo systemctl daemon-reload
sudo systemctl start elasticsearch.service
sudo systemctl enable elasticsearch.service
|
CONFIGURAZIONE DI ELASTICHSEARCH
Una volta terminata l’installazione di Elasticsearch adattare il file di configurazione /etc/elasticsearch/elasticsearch.yml con il comando:
|
0 |
sudo nano /etc/elasticsearch/elasticsearch.yml
|
Ottimizzare il file di configurazione in base al tuo ambiente.
|
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
# /etc/elasticsearch/elasticsearch.yml
# Tickets above this size (articles + attachments + metadata)
# may fail to be properly indexed (Default: 100mb).
#
# When Zammad sends tickets to Elasticsearch for indexing,
# it bundles together all the data on each individual ticket
# and issues a single HTTP request for it.
# Payloads exceeding this threshold will be truncated.
#
# Performance may suffer if it is set too high.
http.max_content_length: 500mb
# Allows the engine to generate larger (more complex) search queries.
# Elasticsearch will raise an error or deprecation notice if this value is too low,
# but setting it too high can overload system resources (Default: 1024).
#
# Available in version 6.6+ only.
indices.query.bool.max_clause_count: 2000
|
Salvare e chiudere il file di configurazione.
INSTALLAZIONE DI ZAMMAD
Dopo aver installato e configurato Elasticsearch installare Zammad come mostrato di seguito.
Aggiungere il repository APT GPG Zammad a Ubuntu eseguendo il comando:
|
0
1
|
curl -fsSL https://dl.packager.io/srv/zammad/zammad/key | \
gpg --dearmor | sudo tee /etc/apt/keyrings/pkgr-zammad.gpg> /dev/null
|
Aggiungere il repository APT Zammad a Ubuntu con il comando:
|
0
1
|
echo "deb [signed-by=/etc/apt/keyrings/pkgr-zammad.gpg] https://dl.packager.io/srv/deb/zammad/zammad/stable/ubuntu 24.04 main"| \
sudo tee /etc/apt/sources.list.d/zammad.list > /dev/null
|
Installare Zammad con i seguenti comandi:
|
0
1
|
sudo apt update
sudo apt install zammad
|
Una volta installato Zammad è possibile gestire i suoi servizi utilizzando i comandi seguenti:
|
0
1
2
|
sudo systemctl stop zammad
sudo systemctl start zammad
sudo systemctl enable zammad
|
MODIFICA CONFIGURAZIONE NGINX PER FARLO ASCOLTARE SU TUTTE LE INTERFACCE
Per impostazione predefinita Nginx serve Zammad solo su localhost.
E’ necessario modificare la configurazione Nginx per farlo ascoltare su tutte le interfacce.
Aprire il file di configurazione Nginx di Zammad con il comando:
|
0 |
sudo nano /etc/nginx/sites-enabled/zammad.conf
|
Cercare la sezione:
|
0
1
|
# replace 'localhost' with your fqdn if you want to use zammad from remote
server_name localhost;
|
Quindi sostituire al posto di locahost l’indirizzo IP o il nome FQDN del server
Salvare e chiudere il file di configurazione.
Per rendere effettive le modifiche riavviare Nginx con il comando:
|
0 |
sudo systemctl restart nginx
|
CONFIGURAZIONE DI ZAMMAD DA WEBGUI
A questo punto da un qualsiasi browser richiamare Zammad utilizzando il nome del server
http://FQDN-O-IP-ADDRESS
Cliccare su Set Up a New System
Inserire tutte le info relative all’account Administrator quindi cliccare Create
Inserire il nome dell’Organizzazione, Caricare il logo e cliccare su Next
Selezionare il metodo per inviare le mail tra i due proposti:
Local MTA: utilizza Sendmail e Postifix interni
SMTP: Permette la configurazione di un server SMTP esterno
Cliccare Continue
Cliccare su Email se si intende configurare una mail oppure Skip per configurare in seguito
Se è andato tutto a buon fine dovremmo visualizzare la Home di Zammad
COLLEGARE ZAMMAD AD ELASTICSEARCH
Zammad è pronto per l’uso a questo punto.
Tuttavia, è necessario connettere Zammad per accedere all’interfaccia utente Web di Zammad e iniziare.
Eseguire il comando seguente per connettere Zammad a Elasticsearch versione 8 e successive.
Il comando configurerà Zammad con Elasticsearch utilizzando l’account e la password visualizzati durante l’installazione di Elasticsearch sopra.
|
0
1
2
|
sudo zammad run rails r "Setting.set('es_url', 'https://itnt2vdlrafch02.npo-torino.lab:9200')"
sudo zammad run rails r "Setting.set('es_user', 'elastic')"
sudo zammad run rails r "Setting.set('es_password', '8rYRtBM4rp6rixhTzcvb')"
|
AGGIUNTA DEL CERTIFICATO DI ELASTICSEARCH A ZAMMAD
Dopo aver configurato l’ccount Elasticsearch configurare un certificato Elasticsearch in Zammad.
Eseguire il comando seguente per visualizzare il certificato Elasticsearch installato nel sistema.
|
0 |
sudo cat /etc/elasticsearch/certs/http_ca.crt
|
Dovremmo visualizzare un output simile al seguente:
|
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
-----BEGIN CERTIFICATE-----
MIIFaTCCA1GgAwIBAgIUbv5nCJyFV3qPxniCuS2hiZUFVcgwDQYJKoZIhvcNAQEL
BQAwPDE6MDgGA1UEAxMxRWxhc3RpY3NlYXJjaCBzZWN1cml0eSBhdXRvLWNvbmZp
Z3VyYXRpb24gSFRUUCBDQTAeFw0yNTEwMTQyMDAxMTlaFw0yODEwMTMyMDAxMTla
MDwxOjA4BgNVBAMTMUVsYXN0aWNzZWFyY2ggc2VjdXJpdHkgYXV0by1jb25maWd1
cmF0aW9uIEhUVFAgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC3
D8OL7kO19mnlFueEqZq5+8Psyk1+hU3XSZN5EBoFFPeyLQ8OUp20yXILXs5ciINA
cKtPHyjyUn++VfSoP1w4ZDJHRiaPWPQKuY5ab3d5fG9WThNJYLt/y1KmMHu5Zq0l
0NrNwI+IbLcXWtyLPZtS2/d3zXNdr1bKC6GtC3N3fRo5MNaN+NGfp3YE/LFehLVl
q+g1wlhprpMnAStAxirKmx9v88JKEavtxYBIjGoXpGQPXBczoT+a/FslUXzjyft1
kEMLYSjOdRKkdpdT2h6jwGisSdh8ISxpNpLfNfpAtJpNS9tvkDpI9jnFb5FW7wM3
ehA/IItOdkY/jDkJSygney5m4Y5QdawyENIEY/unjhhZybw7JYIZkwAQzVUsEiru
jjQLgxg7S6RJZcvz3y0HaYqZvvqf+NyGzJgiEzLlYNJXTqxUgeoL7/LN0cXuV2XJ
TNOlcv6pUnTr5ReZGNjtw364dBg5IRerFpxGGijKkutM6XJlkNLR7Gt2FlOwaYZo
M33mfxUqMaPG71AgtJRT6RbXRfrLU/0BIAX9eE7a1idqYiAatIN7vqdqcDdkFzTo
NSQfC4XZ7qSHS1ezgQkh5DZKsQd6fX0WJbgHcGuwJcRyfOXzdDsxFOK0Pu35IpUH
lpQ8HI4Y01NdhwcyDLGauAOrE0SyOKf2kxugpHkD/wIDAQABo2MwYTAdBgNVHQ4E
FgQUaAB0jLlhFp2OtBP7lb0p0llTrTIwHwYDVR0jBBgwFoAUaAB0jLlhFp2OtBP7
lb0p0llTrTIwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZI
hvcNAQELBQADggIBAHREyt8koi5PmAs8h4aqS58xSjW6oNeCFH74n2ifXg0SpZw7
1YZViIkkafLK4Hpiy2EVWx8mx66kikQLjH/QH2O4jUssKg0OKso+DYiVK7Y/ZUoG
A6Dn2UDQOBwzlnGdca0mb731LbhXMToaGJe+fa7PBv8KVPZqpnb2IVfhwgHKgPR4
gN4/TTszpP1in/Nze4NTkGf2mvwtwdMnPwnHKDz0SXEL9yXjkE0zZXigbkIe+jat
yp0OChzqRfTmjSF7lVGwsixqOWUCteQY83mqzP8N5CfHbpToAP/2Jltlt2n4jKYI
p4XmOeWbNbp0X04lbOr3zJQ9LlNGl9GIDkjW4zHMbPB0TrPueQ1SVfAYCr7vWglo
r3lLDycbrvVMsAV5DrIFnYKIQJh9tuRZ/+gRQTu4fsR+K46qoQvrheyWclGYgRoR
zPwaKDOyJ1Od9fIZMWX30TV5055Ar0/hBA4vKc67PhUR0XTCUrjuIXfSwCjSsi0H
suu7Ai7PaIqJBduHUDVbwi9AsoIxGvXaldgpzQkqqyVUG3sKy4PwGwmmXvninwn8
C8g+MR9xFC34L9g2ggG8ll5RTVUMmNz18YwMYW+V520T9sivqBFKjNWBxl2CiyVz
fr4KOgmMEmNvkf66xLiWnDyPpHPSWciqCRm5nAPZ2EU+hakrF6XKz9Qp6CDo
-----END CERTIFICATE-----
|
Copiare il contenuto del certificato
Per aggiungere un certificato personalizzato o un certificato CA personalizzato accedere al pannello Admin cliccando sull’ingranaggio come mostrato nell’immagine sovrastante
Cliccare su Settings quindi Security
Selezionare SSL Certificates
Cliccare su Add SSL Certificate
Incollare il certificato copiato e incollarlo come mostrato nell’immagine sovrastante. Cliccare Add
Se è andato tutto a buon fine dovremmo visualizzare il certificato come mostrato nell’immagine sovrastante
A questo punto da Console ricostruire l’indice di Elasticsearch eseguendo il comando:
|
0 |
sudo zammad run rake zammad:searchindex:rebuild
|
FUNZIONALITA’ DI ZAMMAD
Ecco tutte le principali funzionalità di Zammad, ordinate per categoria e arricchite con icone per rendere la panoramica più chiara e leggibile.
Gestione Ticket
Creazione e gestione completa dei ticket (stato, priorità, assegnazione, note)
Aggiornamenti in tempo reale tra gli agenti
️ Possibilità di unire o dividere ticket correlati
Relazioni padre/figlio tra ticket
⏱️ Tracciamento del tempo lavorato su ogni ticket
Storico e audit log di tutte le modifiche
Canali di Comunicazione
✉️ Email (invio e ricezione automatica dei ticket)
Live Chat integrata sul sito web
Canale telefonico (registrazione e gestione delle chiamate)
Form web personalizzabili
Social media (Twitter, Facebook, Telegram, ecc.)
Gestione Utenti e Organizzazioni
Ruoli e permessi personalizzabili (Agente, Amministratore, Cliente, ecc.)
Gestione di organizzazioni e clienti con viste dedicate
⭐ Clienti VIP con priorità o regole speciali
Funzione “Fuori ufficio” e sostituzione automatica
Knowledge Base / Self-Service
Creazione di articoli, guide e FAQ pubbliche o interne
Supporto multilingua per la base di conoscenza
Ricerca avanzata negli articoli e nei ticket
Suggerimenti automatici di articoli in base al contenuto del ticket
Produttività e Automazione
Template e modelli di risposta rapida (Text Modules)
Tag per classificare ticket e utenti
Checklist all’interno dei ticket
SLA (Service Level Agreement) e regole di escalation
Automazioni e trigger configurabili (regole “if-this-then-that”)
Macro per azioni rapide multiple
️ Personalizzazione
⚙️ Campi personalizzati per ticket, utenti e organizzazioni
Pannelli e viste personalizzabili per ogni ruolo (Overviews)
Personalizzazione grafica (logo, colori, CSS)
Branding multi-azienda (nelle versioni avanzate)
Sicurezza e Accesso
Supporto per LDAP, SAML, OAuth e Single Sign-On
Autenticazione a due fattori (2FA)
️ Gestione avanzata dei permessi e ruoli granulari
Registri di sicurezza e cronologia attività
Integrazioni
API REST completa per interfacciarsi con sistemi esterni
Webhooks per eventi in tempo reale
Integrazioni con CRM, ERP, Slack, MS Teams, GitHub, GitLab, ecc.
Importazione ed esportazione dati (CSV, JSON, ecc.)
Report e Analisi
Dashboard con metriche e KPI personalizzabili
⏳ Statistiche sui tempi di risposta e risoluzione
Filtri avanzati per creare report dinamici
Esportazione dei dati di analisi
Funzionalità AI (nelle versioni recenti)
️ Riassunto automatico dei ticket
✍️ Riscrittura o ampliamento dei messaggi
Suggerimenti di risposta basati sul contenuto del ticket
Analisi del tono o del sentiment del messaggio
Localizzazione
Interfaccia tradotta in oltre 40 lingue
Contenuti multilingua nella knowledge base
Fusi orari e formati data/orario configurabili
Amministrazione e Manutenzione
Console di amministrazione completa via web
Backup e ripristino configurabili
Gestione moduli e pacchetti aggiuntivi
Controllo versioni e aggiornamenti integrato
CONSIDERAZIONI FINALI
✅ Vantaggi / punti di forza
Open source / self-hosted / controllo sui dati: Puoi installarlo sui tuoi server, avere pieno accesso al codice e decidere come gestire backup, privacy, infrastruttura, sicurezza. Non dipendi necessariamente da un fornitore cloud esterno.
- Interfaccia moderna e usabilità: Molti utenti apprezzano l’interfaccia pulita, le notifiche in tempo reale e la facilità d’uso per agenti e amministratori.
- Multi-canale integrato: Supporta email, chat live, integrazioni social (es. Facebook), form web, Telegram, etc. Questo permette di centralizzare tutte le richieste in un unico sistema.
- Automazione e trigger: Si possono definire regole automatiche (trigger, scheduler) per attività ripetitive, notifiche, cambi di stato, etc.
- Template, modelli e moduli personalizzati: I “text modules” (risposte predefinite), i campi personalizzati, checklist, viste personalizzate rendono molto flessibile l’adattamento del sistema ai processi aziendali.
- Integrazioni e API: Offre REST API e webhook per integrare con CRM, sistemi esterni, automazioni. Questo lo rende “estendibile” se hai competenze di sviluppo.
- Sicurezza e funzionalità avanzate: Supporto per autenticazione esterna (LDAP, SSO), 2FA, politiche password, logging degli accessi.
- Aggiornamenti regolari e community attiva: Zammad rilascia aggiornamenti relativamente frequentemente e ha una community attiva che segnala bug, contribuisce con migliorie e supporta altri utenti.
⚠️ Limiti / aspetti critici da considerare
- Scalabilità e prestazioni con grandi volumi: Alcuni utenti riportano rallentamenti o problemi di performance se il numero di ticket, utenti o operazioni è molto alto.
- Limitazioni nei trigger / automazioni: I trigger funzionano solo sull’ultimo articolo del ticket, quindi non puoi reagire ad articoli “vecchi” o basarti su eventi passati.
- Inoltre, modifiche tranquille ai ticket (per esempio cambiare tag senza premere “Update”) possono non attivare i trigger.
- Funzionalità mancanti o incomplete rispetto a soluzioni enterprise mature: Alcune funzionalità comunemente attese (workflow complessi, plugin / sistema di estensioni, conversione automatica di numeri ticket in link, supporto video, etc.) mancano o non sono così rifinite.
- Curva tecnica di installazione e manutenzione: Per usare Zammad efficacemente in modalità self-hosted serve competenza su server Linux/Docker, database, web server, aggiornamenti, backup. Per aziende con risorse IT limitate, potrebbe essere impegnativo.
- Qualità della localizzazione / traduzione variabile: L’interfaccia è multilingua, ma alcune traduzioni non sono perfette o complete in tutti i linguaggi.
- Dipendenza dalla community / sviluppo open source: Essendo open source, lo sviluppo di nuove funzionalità o correzioni dipende in parte dalla partecipazione degli sviluppatori. Non tutte le richieste hanno priorità elevata.
- Limiti dell’interfaccia amministrativa su grossi numeri di utenti: È stata segnalata una limitazione nella visualizzazione di molti utenti nell’admin panel (es. sopra i 50 utenti).
- Costi e limitazioni nelle versioni hosted / piani a pagamento: Se scegli Zammad in modalità ospitata / “hosted”, i piani prevedono limiti di agenti, canali attivi e costi ricorrenti.
Valutazione complessiva
Zammad può essere una scelta eccellente se:
- Hai risorse IT affidabili che possano gestire l’installazione, manutenzione e aggiornamenti.
- Vuoi controllare i tuoi dati e personalizzare fortemente il sistema.
- Il volume di ticket non è da “centinaia di migliaia” o, se è grande, sei pronto ad investire in ottimizzazione infrastrutturale.
- Non hai bisogno di certe funzionalità “enterprise” fuori standard, o sei disposto a svilupparle/intervenire in API.
Potrebbe essere meno adatto se:
- Vuoi una soluzione “chiavi in mano”, gestita da un fornitore senza dover pensare all’infrastruttura.
- Hai bisogno di workflow complessi, ecosistemi di plugin/estensioni molto vasti già pronti.
- Hai un carico enorme sin da subito e non vuoi rischi di rallentamenti.

0 commenti