Headlines

Installare il sistema di assistenza clienti Zammad su Rocky Linux 9

Pubblicità

Zammad è una soluzione open source di assistenza clienti / Tickets  basata su Ruby e PostgreSQL. Aiuta le organizzazioni a gestire le comunicazioni tra vari canali di posta elettronica, chat e social media.

In questa guida, vi mostrerò come installare il sistema di ticketing Zammad sul server Rocky Linux. Eseguiremo Zammad con PostgreSQL, Nginx e Elasticsearch.

I prerequisiti

Prima di iniziare, assicurati di avere quanto segue:

  • Un server Rocky Linux 9 aggiornato,
  • Un utente non root con privilegi di amministratore.
  • Un nome di dominio indicava un indirizzo IP del server.
  • Un SELinux con stato permissivo.

Installazione delle dipendenze

Installeremo le dipendenze necessarie al funzionamento di Zammad, questo include il repository EPEL, il database PostgreSQL, il server web Nginx, Redis e Node.js.

Prima di tutto, aggiungiamo il repository EPEL al tuo sistema Rocky Linux con quanto segue.

dnf install epel-release

Ora esegui il comando sottostante per abilitare il repository Node.js per la versione 18.

dnf module enable nodejs:18

Successivamente, eseguire il comando dnf qui sotto per installare le dipendenze per Zammad, tra cui Nginx, PostgreSQL, Redis e Node.js.

dnf install imlib2 nginx postgresql-server postgresql-contrib libpq-devel redis nodejs

Dopo che l’installazione è terminata, eseguire il comando sottostante per inizializzare il server PostgreSQL.

postgresql-setup initdb

Avviare e abilitare i servizi per Nginx, PostgreSQL e Redis con il comando sottostante.

systemctl start nginx postgresql redis
systemctl enable nginx postgresql redis

Infine, controllare la versione Node.js utilizzando il comando sottostante. Assicurati di avere Node.js 18.0+ installato.

node –version

Installazione di Elasticsearch

Dopo l’installazione di dipendenze, è necessario installare Elasticsearch. In questa sezione, installi Elasticsearch 7.x per Zammad.

Ora esegui il comando sottostante per aggiungere la chiave GPG per il repository Elasticsearch.

rpm –import https://artifacts.elastic.co/GPG-KEY-elasticsearch

Aggiungere il repository Elasticsearch per il server Rocky Linux con il seguente comando.

echo “[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md”| tee /etc/yum.repos.d/elasticsearch-7.x.repo

Successivamente, installare Elasticsearch sul sistema con il seguente comando. Input y per confermare l’installazione e accettare la chiave GPG quando richiesto.

dnf install elasticsearch

Al termine dell’installazione, installare il plugin di ingest-attachment all’installazione di Elasticsearch utilizzando il comando sottostante.

/usr/share/elasticsearch/bin/elasticsearch-plugin install ingest-attachment

batti y per confermare l’installazione.

Ora ricaricare il gestore systemd e avviare il servizio di ricerca elastica utilizzando il comando sottostante.

systemctl daemon-reload
systemctl start elasticsearch

Una volta iniziato, controllare l’Elasticsearch con il comando curl qui sotto. Se la tua installazione ha successo, otterrai informazioni dettagliate sulla tua versione di Elasticsearch

curl -X GET ‘http://localhost:9200’

Aumentare le connessioni di Max in PostgreSQL

Per PostgreSQl, è necessario aumentare le connessioni massime di default nel file postgresql.conf. Questo è necessario per Zammad.

Quindi accedi come utente postgres con il comando sottostante.

su – postgres

Aprire i dati di configurazione di PostgreSQL/postgresql.conf utilizzando il nano editor.

nano data/postgresql.conf

Modificare le connessioni massime di default a 2000 come le seguenti:

max_connections = 2000

Salvare il file e uscire

Ora esegui il comando systemctl qui sotto per riavviare il servizio PostgreSQL e applicare le modifiche.

systemctl restart postgresql

Configurazione di Firewalld

Per impostazione predefinita, il firewalld è abilitato su Rocky Linux. Quindi ora è necessario aprire sia i servizi HTTP che HTTPS e consentire il traffico a Zammad.

Aggiungere sia i servizi HTTP che HTTPS al firewall utilizzando il seguente comando.

firewall-cmd –zone=public –add-service=http –permanent
firewall-cmd –zone=public –add-service=https –permanent

Ora ricaricare firewall per applicare nuove regole per HTTP e HTTPS

firewall-cmd –reload

Controllare l’elenco delle regole sul firewall utilizzato utilizzando il comando sottostante. Vedrai sia i servizi HTTP che HTTPS disponibili su firewall

firewall-cmd –list-all

Installazione del sistema di assistenza clienti Zammad

Ora che hai delle dipendenze installate e configurate, puoi avviare l’installazione di Zammad, che può essere eseguita tramite il gestore dei pacchetti dnf.

Aggiungere la chiave GPG per il repository Zammad usando il comando sottostante.

rpm –import https://dl.packager.io/srv/zammad/zammad/key

Ora aggiungi il repository Zammad al tuo server Rocky Linux con il seguente comando.

wget -O /etc/yum.repos.d/zammad.repo \
https://dl.packager.io/srv/zammad/zammad/develop/installer/el/9.repo

Successivamente, installare zammad con il comando dnf sotto. Quando richiesto, digitare y per confermare il tasto gpg e l’installazione di Zammad.

dnf install zammad

Al termine dell’installazione, eseguire il seguente comando per controllare i servizi per Zammad, tra cui zammad, zammad-web, zammad-worker e zammad-websocket.

  systemctl status zammad
 systemctl status zammad-web
 systemctl status zammad-worker
 systemctl status zammad-websocket

Assicurati che ogni servizio per Zammad sia in esecuzione.

Infine, eseguire il seguente comando per impostare l’integrazione tra Zammad ed Elasticsearch.

zammad run rails r “Setting.set(‘es_url’, ‘http://localhost:9200’)”
zammad run rake zammad:searchindex:rebuild

Dopo aver eseguito il comando, questo creerà un indice di ricerca elastica per Zammad.

Configurazione di Nginx come proxy inverso

Ora che hai installato Zammad, configurerai Nginx come proxy inverso e, per impostazione predefinita, Zammad fornisce una configurazione di esempio disponibile nella directory /opt/zammad/contrib.

Copiare la configurazione Nginx per Zammad in /etc/nginx/conf.d/zammad.conf e aprirlo usando il comando nano editor.

cp /opt/zammad/contrib/nginx/zammad.conf /etc/nginx/conf.d/zammad.conf
 nano /etc/nginx/conf.d/zammad.conf

All’interno dell’opzione nome server, modificarlo con il dominio.

server_name zammad.miodominio.it;

Salvare e uscire dal file.

Ora verifica la configurazione di Nginx per assicurarti di avere una sintassi corretta. In caso di successo, si dovrebbe ottenere un output ‘syntax is ok’.

nginx -t

Infine, eseguire il comando sottostante per riavviare il servizio Nginx e applicare una nuova configurazione del blocco server per Zammad.

systemctl restart nginx

Con questo, la tua installazione di Zammad dovrebbe essere pronta e accessibile

Ma se volessimo mettere online la nostra piattaforma di ticketing usando il protocollo https, allora procediamo usando uno di questi due metodi.

Metodo 1 certificati Letsencrypt

Ora che Nginx è configurato, assicuriamo Zammad tramite certificati SSL/TLS. Installarai Certbot e genererai certificati SSL utilizzando certbot da Letsencrypt.

Installa il plugin Certbot e Nginx usando il comando dnf qui sotto. Digitare y per confermare l’installazione.

dnf install certbot python3-certbot-nginx

Al termine dell’installazione, eseguire il comando certbot qui sotto per generare certificati SSL/TLS e proteggere l’installazione di Zammad. Assicurati di modificare le informazioni dell’indirizzo e-mail e del nome di dominio con le tue informazioni.

certbot –nginx –agree-tos –redirect –hsts –staple-ocsp –email [email protected] -d zammad.miodominio.it

Una volta completati, i certificati SSL/TLS saranno disponibili nella directory /etc/letsencrypt/live/domain.com e anche il tuo Zammad è protetto automaticamente con HTTPS.

Metodo 2 installare i propri certificati

Aggiornando il nostro sistema abbiamo scaricato anche l’ultima versione di openssl, non spiegero qui come creare un autocertificato, per farlo vi basterà googolare in rete e troverete sicuramente ciò che desiderate.

Qui vedremo come configurare il file zammad.conf in modo corretto perché possiamo usare i nostri certificati.

Iniziamo a creare due cartella chiamata ssl/certificati nel path che vogliamo, qui li creerò nella cartella etc

mkdir -p /etc/ssl/certificati

ora all’interno della cartella certificati vado a posizionare il file .key e .crt , e creo un certificato dhparams per aumentarne la sicurezza sempre all’interno del path /etc/ssl/certificati

openssl dhparam -out dhparams.pem 4096

Il sistema ci metterà un po a creare questo certificato lasciate che lo porti a termine.

Una volta terminato accediamo a zammad.conf e impostiamolo in questo modo.

#

# this is the nginx config for zammad

#

 

upstream zammad-railsserver {

    server 127.0.0.1:3000;

}

 

upstream zammad-websocket {

    server 127.0.0.1:6042;

}

 

server {

    listen 80;

    listen [::]:80;

 

    # replace ‘localhost’ with your fqdn if you want to use zammad from remote

    server_name zammad.miodominio.it;

    return 301 https://$host$request_uri; # redirect http to https

}

 

server  {

  listen  443 ssl;

  listen [::]:443 ssl;

#  ssl on;

 

## path certificati

  ssl_certificate     /etc/nginx/conf.d/ssl/certificati/miocertificato.crt;

  ssl_certificate_key /etc/nginx/conf.d/ssl/certificati/miocertificato.key;

  ssl_dhparam /etc/nginx/conf.d/ssl/certificati/dhparams.pem;

  ssl_session_cache builtin:1000 shared:SSL:10m;

  ssl_protocols TLSv1.3 TLSv1.2;

#  ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:;

  ssl_ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:AES256-GCM-SHA384;

  ssl_ecdh_curve secp384r1;

  ssl_prefer_server_ciphers on;

 

    # security – prevent information disclosure about server version

    server_tokens off;

 

    root /opt/zammad/public;

 

    access_log /var/log/nginx/zammad.access.log;

    error_log  /var/log/nginx/zammad.error.log;

 

    client_max_body_size 200M;

 

    location ~ ^/(assets/|robots.txt|humans.txt|favicon.ico|apple-touch-icon.png) {

        expires max;

    }

 

    # legacy web socket server

    location /ws {

        proxy_http_version 1.1;

        proxy_set_header Upgrade $http_upgrade;

        proxy_set_header Connection “Upgrade”;

        proxy_set_header CLIENT_IP $remote_addr;

        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        proxy_set_header X-Forwarded-Proto $scheme;

        proxy_read_timeout 86400;

        proxy_pass http://zammad-websocket;

    }

 

    # action cable

    location /cable {

        proxy_http_version 1.1;

        proxy_set_header Upgrade $http_upgrade;

        proxy_set_header Connection “Upgrade”;

        proxy_set_header CLIENT_IP $remote_addr;

        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        proxy_set_header X-Forwarded-Proto $scheme;

        proxy_read_timeout 86400;

        proxy_pass http://zammad-railsserver;

    }

 

    location / {

        proxy_set_header Host $http_host;

        proxy_set_header CLIENT_IP $remote_addr;

        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        proxy_set_header X-Forwarded-Proto $scheme;

 

        # Change this line in an SSO setup

        proxy_set_header X-Forwarded-User “”;

 

        proxy_read_timeout 300;

        proxy_pass http://zammad-railsserver;

 

        gzip on;

        gzip_types text/plain text/xml text/css image/svg+xml application/javascript application/x-javascript application/json application/xml;

        gzip_proxied any;

    }

}

Controlliamo ancora la configurazione con nginx -t e poi riavviamolo systemctl restart nginx, se non ci sono errori possiamo passare alla configurazione di base di Zammad

Configurazione dell’installazione di Zammad

Avvia il tuo browser web e visita https://zammad.miodominio.it/. Se la tua installazione ha successo, ti verrà chiesto quanto segue:

Fare clic su Imposta un nuovo sistema per avviare la configurazione di Zammad.

Digitare i dettagli dell’utente di amministrazione e della password per Zammad, quindi fare clic su Crea.

Digita il nome dell’organizzazione, carica il tuo logo e fai clic su Avanti per continuare

Per le impostazioni di posta elettronica, fare clic su Salta. È possibile configurare questo dopo aver terminato l’installazione.

Ora vedrai la dashboard di Zammad come la seguente

Congratulazioni! Hai completato l’installazione del sistema Zammad Ticketing sul server Rocky Linux 9. Hai in Zammad in esecuzione con il database PostgreSQL, Nginx come proxy inverso, Elasticsearch e anche protetto con HTTPS

Per la configurazione di lascio il link ufficiale della documentazione.

Un Saluto

Adam

2 thoughts on “Installare il sistema di assistenza clienti Zammad su Rocky Linux 9

  1. Ciao, non so se questo sia il canale migliore ma ho necessità di farti una domanda; conosci un software opensource che oltre alla gestione dei ticket, riesca anche a gestire il tipo di contratto del cliente?( full, orario a scalare, ecc).
    Per il momento uso zammad che ho integrato in nextcloud, ma non gestisce i tipi di contratto… è solo ticketing.
    Inoltre, visto che che conosci Passbolt, secondo te è integrabile in nextcloud?

    Grazie, continua cosi.

    1. Ciao, Inizio a risponderti alla tua seconda domanda.
      Sì, potrebbe essere possibile integrare Passbolt con Nextcloud.

      Passbolt come App esterna

      Puoi installare Passbolt separatamente su un server e collegarlo a Nextcloud tramite l’uso di integrazioni API. Passbolt offre una API REST che può essere utilizzata per creare una connessione tra Passbolt e Nextcloud. In questo caso, Passbolt non viene eseguito direttamente all’interno di Nextcloud, ma i due sistemi possono scambiarsi dati.

      l’altra e’ quella di usare l’ottima App Passman piuttosto simile a passbolt e puo’ imortare dati da KeePass, LastPass, DashLane, ZOHO.

      mentre per la tua prima domanda non c’e’ molto in giro a livello open quello che chiedi dovrebbe fare anche da CRM.
      Forse uno di questi potrebbe fare al caso tuo

      https://otrs.com/
      https://suitecrm.com/
      https://www.redmine.org/
      https://www.dolibarr.org/

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.