Cómo instalar el sistema de atención al cliente Zammad en Debian 12

Zammad es una solución de código abierto de atención al cliente/ticketing que ayuda a gestionar las comunicaciones a través de varios canales, como el correo electrónico, el chat y las redes sociales.

En esta guía, aprenderás a instalar el sistema de atención al cliente Zammad con PostgreSQL y Nginx en el servidor Debian 12. También integrarás Zammad con Elasticsearch y Redis, así que permanece atento a esto.

Requisitos previos

Antes de continuar, asegúrate de que estás preparado con lo siguiente:

  • Un servidor Debian 12 con 4 GB de memoria o más.
  • Un usuario no root con privilegios de administrador.
  • Un nombre de dominio apuntando a una dirección IP del servidor.

Instalar dependencias

En el primer paso, instala las dependencias de los paquetes para el Sistema de Atención al Cliente de Zammad. Esto incluye los siguientes paquetes

  • Elasticsearch
  • Servidor de base de datos PostgreSQL
  • Redis
  • Servidor Web Nginx
  • Node.js
  • UFW

Estos paquetes los instalarás en tu servidor Debian.

Primero, ejecuta el siguiente comando para instalar los paquetes básicos para gestionar el repositorio. Escribe y para confirmar la instalación.

sudo apt install curl apt-transport-https gnupg

instalar deps básicos

Ahora ejecuta el siguiente comando para añadir el repositorio Elasticsearch 7.x a tu servidor Debian 12.

echo "deb [signed-by=/etc/apt/trusted.gpg.d/elasticsearch.gpg] https://artifacts.elastic.co/packages/7.x/apt stable main"| \
tee -a /etc/apt/sources.list.d/elastic-7.x.list > /dev/null

A continuación, añade la clave GPG del repositorio de Elasticsearch utilizando el comando siguiente.

curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | \
gpg --dearmor | tee /etc/apt/trusted.gpg.d/elasticsearch.gpg> /dev/null

A continuación, actualiza tu repositorio Debian utilizando el siguiente comando.

sudo apt update

añadir repo elasticsearch

Una vez actualizado el repositorio, instala las dependencias para Zammand utilizando el siguiente comando. Introduce Y para confirmar la instalación.

sudo apt install libimlib2 elasticsearch postgresql postgresql-common redis-server nginx nodejs locales ufw

instalar deps

Una vez que todo esté instalado, verifica cada uno de los servicios para asegurarte de que el servicio se está ejecutando y está habilitado.

Verifica el servidor PostgreSQL utilizando el comando.

sudo systemctl is-enabled postgresql
sudo systemctl status postgresql

A continuación puedes ver que PostgreSQL se está ejecutando y está habilitado.

verificar postgresql

Verifica el servidor Redis utilizando el siguiente comando.

sudo systemctl is-enabled redis
sudo systemctl status redis

A continuación puedes ver que Redis se está ejecutando.

verificar redis

Ahora verifica Nginx utilizando el siguiente comando.

sudo systemctl is-enabled nginx
sudo systemctl status nginx

El servidor web Nginx debería estar ejecutándose y habilitado de esta forma:

verificar nginx

Por último, ejecuta el siguiente comando para iniciar y habilitar Elasticsearch.

sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch

A continuación, verifícalo utilizando el siguiente comando. Deberías ver que Elasticsearch se está ejecutando y está habilitado.

sudo systemctl status elasticsearch

verificar elasticsearch

Configurar las dependencias

Después de haber instalado las dependencias de los paquetes para Zammad, el siguiente paso es configurar cada una de las dependencias para Zammad. Configurarás lo siguiente:

  • PostgreSQL: Aumenta el max_connections por defecto a 2000.
  • Elasticsearch: Instalar el plugin ingest-attachment que necesita Zammad.
  • Configurar la configuración regional por defecto a en_US.UTF-8
  • UFW: Iniciar y habilitar, abrir puertos SSH, HTTP y HTTPS.

Configurar PostgreSQL

Abre la configuración por defecto de PostgreSQL /etc/postgresql/15/main/postgresql.conf utilizando el comando editor nano que aparece a continuación.

sudo nano /etc/postgresql/15/main/postgresql.conf

Cambia el valor por defecto de max_connections en PostgreSQL a 2000m, que es lo que requiere Zammad.

max_connections = 2000

Guarda el archivo y sal del editor.

Ahora ejecuta el siguiente comando systemctl para reiniciar PostgreSQL y aplicar los cambios,

sudo systemctl restart postgresql

Configurar Elasticsearch

Tras configurar PostgreSQL, vamos a configurar Elasticsearch.

Instala el plugin ingest-attachment para Zammad utilizando el siguiente comando elasticsearch-plugin.

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

Introduce y para confirmar la instalación. Cuando hayas terminado, obtendrás lo siguiente.

instalar el plugin elasticsearch

Ahora reinicia el elasticsearch utilizando el siguiente comando.

sudo systemctl restart elasticsearch

Por último, comprueba que Elasitcsearch se está ejecutando utilizando curl.

curl -X GET 'http://localhost:9200'

Puedes ver a continuación que Elasitcsearch se está ejecutando en un servidor Debian.

prueba elasticsearch

Configurar la configuración regional por defecto

Para que Zammad funcione correctamente, tienes que configurar la configuración regional por defecto a en_US.UTF-8.

Ejecuta el siguiente comando para generar la configuración regional en_US.UTF-8.

locale-gen en_US.UTF-8

A continuación, establece la configuración regional por defecto en_US.UTF-8 añadiendo una nueva configuración al archivo /etc/default/locale.

echo "LANG=en_US.UTF-8" > /etc/default/locale

configurar configuración regional

Configurar UFW

Ahora ejecuta el siguiente comando ufw para habilitar los perfiles OpenSSH y WWW Full.

sudo ufw allow OpenSSH
sudo ufw allow "WWW Full"

A continuación, habilita UFW mediante el siguiente comando. escribe y para confirmar e inicia UFW.

sudo ufw enable

Una vez habilitado, obtendrás lo siguiente:

configuración ufw

Con UFW habilitado, ejecuta el comando de abajo para verificarlo.

sudo ufw status

Podrás ver UFW con el estado Activo y los perfiles OpenSSH y WWW habilitados Completos.

comprobar ufw

Instalación del Sistema de Atención al Cliente de Zammad

Llegados a este punto, ya has finalizado la instalación y configuración de Dependencias para Zammad. Ahora vas a iniciar la instalación de Zammad, que se puede hacer utilizando varios métodos. La forma más sencilla es utilizando paquetes del repositorio oficial de Zammad.

Ejecuta el siguiente comando para añadir la clave GPG para el repositorio de Zammad.

curl -fsSL https://dl.packager.io/srv/zammad/zammad/key | \
gpg --dearmor | tee /etc/apt/trusted.gpg.d/pkgr-zammad.gpg> /dev/null

Ahora añade el repositorio de Zammad para Debian 12 utilizando el siguiente comando.

echo "deb [signed-by=/etc/apt/trusted.gpg.d/pkgr-zammad.gpg] https://dl.packager.io/srv/deb/zammad/zammad/stable/debian 12 main"| \
tee /etc/apt/sources.list.d/zammad.list > /dev/null

Actualiza y refresca tu repositorio Debian utilizando el siguiente comando.

sudo apt update

añadir repo zammad

Una vez actualizado el repositorio, instala Zammad con el comando siguiente.

sudo apt install zammad

A continuación se muestra la instalación de Zammad:

instalar zammad

Durante la instalación, se creará la base de datos PostgreSQL y el usuario, junto con la migración de la base de datos.

migración de bases de datos

También se creará la configuración del bloque del servidor Nginx.

instalación de zammad finalizada

Una vez finalizada la instalación, ejecuta el comando zammad que aparece a continuación para configurar la integración con Elasticsearch y reconstruir el índice de búsqueda en Elasticsearch.

zammad run rails r "Setting.set('es_url', 'http://localhost:9200')"
zammad run rake zammad:searchindex:rebuild

integración elasticsearch

A continuación, ejecuta el siguiente comando para reiniciar los servicios de zammad. Zammad incluye varios servicios, como zammad, zammad-web, zammad-worker y zammad-websocket.

sudo systemctl restart zammad
sudo systemctl restart zammad-web
sudo systemctl restart zammad-worker
sudo systemctl restart zammad-websocket

Por último, ejecuta el siguiente comando para verificar el estado del servicio zammad.

sudo systemctl is-enabled zammad
sudo systemctl status zammad

A continuación puedes ver que el servicio zammad se está ejecutando y está habilitado en el servidor Debian.

estado del servicio zammad

Configurar el servidor web Nginx

Por defecto, zammad genera la configuración del bloque del servidor Nginx ubicado en /etc/nginx/sites-available/zammad.conf. Para configurar zammad en producción, debes asegurarte de cambiar la configuración del dominio. Además, debes asegurar con HTTPS en producción.

Ahora abre el archivo /etc/nginx/sites-available/zammad. conf utilizando el siguiente comando del editor nano.

sudo nano /etc/nginx/sites-available/zammad.conf

Cambia el nombre de dominio por defecto en la opción nombre_servidor así:

server_name help.hwdomain.io;

Guarda y sal del archivo.

A continuación, ejecuta el siguiente comando para verificar la sintaxis de Nginx y reinicia el servicio Nginx para que surta efecto.

sudo nginx -t
sudo systemctl restart nginx

A continuación puedes ver que la prueba de sintaxis de Nginx se ha realizado correctamente.

configuración de nginx

Asegurar Zammad

Si despliegas en producción, asegúrate de activar HTTPS a través de Letsencrypt.

Instala el plugin certbot y certbot nginx utilizando el siguiente comando. Introduce y para confirmar la instalación.

sudo apt install certbot python3-certbot-nginx

Una vez completada la instalación, genera certificados SSL/TLS para tu nombre de dominio Zammad utilizando el siguiente comando certbot. Asegúrate de cambiar la información del nombre de dominio y la dirección de correo electrónico en este comando.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d help.hwdomain.io

Se ejecutará el proceso de generación. Cuando termine, tus certificados SSL estarán disponibles en el directorio /etc/letsencrypt/live/domain.com.

Instalar Zammad

Abre tu navegador web y visita la URL de instalación de zammad(http://help.hwdomain.io). Haz clic en Configurar un nuevo sistema para iniciar la instalación.

configuración zammad

Ahora introduce los datos de tu usuario administrador, correo electrónico y contraseña. A continuación, haz clic en Crear para confirmar.

configuración administrativa

Introduce el nombre de tu organización y haz clic en Siguiente.

org nombre

Para la notificación por correo electrónico, haz clic en Omitir por ahora. Puedes configurarlo más tarde.

saltar notificación de correo

Haz clic en Omitir para la configuración del canal de conexión. Esto también se puede hacer más tarde, una vez finalizada la configuración.

saltar canal

Una vez finalizado el proceso, podrás ver el panel de administración de Zammad como el siguiente:

salpicadero zammad

Conclusión

¡Enhorabuena! Ya has instalado correctamente el Sistema de Atención al Cliente Zammad en el servidor Debian 12. Has instalado zammad con el backend de base de datos PostgreSQL, el servidor web Nginx, Elasticsearch para el motor de búsqueda principal y Redis para la gestión de la caché y las sesiones. Además, también has aprendido a habilitar HTTPS para Zammad mediante Certbot y Letsencrypt.

También te podría gustar...