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
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
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
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.
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.
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:
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
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.
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.
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 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:
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.
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
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:
Durante la instalación, se creará la base de datos PostgreSQL y el usuario, junto con la migración de la base de datos.
También se creará la configuración del bloque del servidor Nginx.
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
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.
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.
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.
Ahora introduce los datos de tu usuario administrador, correo electrónico y contraseña. A continuación, haz clic en Crear para confirmar.
Introduce el nombre de tu organización y haz clic en Siguiente.
Para la notificación por correo electrónico, haz clic en Omitir por ahora. Puedes configurarlo más tarde.
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.
Una vez finalizado el proceso, podrás ver el panel de administración de Zammad como el siguiente:
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.