Zammad: cómo instalar el helpdesk libre con Docker Compose

Panel de Zammad con estadísticas de tiempo de espera, tickets asignados y flujo de actividad

Zammad es un sistema de helpdesk y atención al cliente de código abierto, con licencia AGPLv3, que reúne en una sola interfaz web las consultas que llegan por correo, chat, teléfono y redes sociales, y que se puede desplegar en un servidor propio con Docker Compose en pocos comandos. El código pertenece a la Zammad Foundation, independiente de la empresa Zammad GmbH, que es la que lo desarrolla junto con la comunidad y vende la versión alojada.

Las claves de Zammad en 20 segundos

  • Helpdesk libre que unifica correo, chat, teléfono y redes sociales.
  • Se instala con Docker Compose 2.23.1 o posterior.
  • Necesita al menos 4 GB de RAM y ajustar vm.max_map_count.
  • Elasticsearch es opcional, pero muy recomendado.

Para muchos equipos de soporte, la alternativa libre a Zendesk o Freshdesk pasa por Zammad, escrito en Ruby on Rails y con más de 6.000 estrellas en GitHub. La separación entre fundación y empresa tiene un efecto práctico: el proyecto asegura que el software es y seguirá siendo de código abierto, mientras que Zammad GmbH se financia con su servicio en la nube, que tiene prueba gratuita, y recomienda esa vía a quien no quiera ocuparse de instalación, copias y actualizaciones.

Panel de Zammad con estadísticas de tiempo de espera, tickets asignados y flujo de actividad
Panel del agente en Zammad. Captura oficial de la documentación de usuario de Zammad.

El panel de cada agente muestra su tiempo de espera del día, cuántos tickets se han escalado, la distribución por canal, los asignados, los que están en curso y la tasa de reapertura, junto a un flujo de actividad con los últimos cambios. Zammad también ofrece una API REST para integrarlo con otras aplicaciones.

Requisitos antes de instalar

La documentación oficial pide al menos 4 GB de RAM para los contenedores. Hace falta Docker Compose 2.23.1 o posterior, porque la pila incrusta el script de inicialización de PostgreSQL con una función introducida en esa versión; las versiones antiguas que traen algunas distribuciones fallan con un error de análisis. Docker Swarm no está soportado: para un despliegue orquestado, Zammad remite a su Helm chart para Kubernetes.

Elasticsearch, que se usa para las búsquedas, necesita un ajuste del kernel en el anfitrión. El comando oficial lo aplica en caliente; para que sobreviva a un reinicio se puede guardar en /etc/sysctl.d:

docker compose version     # debe ser 2.23.1 o superior
sudo sysctl -w vm.max_map_count=262144

# Persistente tras reiniciar
echo "vm.max_map_count=262144" | sudo tee /etc/sysctl.d/99-zammad.confLenguaje del código: PHP (php)

Instalación con Docker Compose o Portainer

El despliegue parte del repositorio oficial zammad-docker-compose:

git clone https://github.com/zammad/zammad-docker-compose.git
cd zammad-docker-compose
docker compose up -dLenguaje del código: PHP (php)

Cuando la pila termina de arrancar, Zammad responde en el puerto 8080 del anfitrión, por ejemplo en http://localhost:8080/, donde un asistente guía la creación del administrador. La documentación recomienda hacer git pull con frecuencia para recibir actualizaciones y consultar las notas de cada versión antes de actualizar. Quien prefiera una interfaz gráfica puede crear la pila en Portainer indicando el repositorio y la rama refs/heads/master. Un aviso importante: Zammad no da soporte sobre problemas propios de Docker o Portainer, solo sobre la aplicación.

Para publicarlo en internet hay que ponerlo detrás de HTTPS sin tocar la pila. Las dos vías documentadas son un proxy inverso como Nginx Proxy Manager, con certificados de Let’s Encrypt, o un túnel de Cloudflare que termine el SSL.

Elasticsearch, base de datos y copias

Elasticsearch viene activado por defecto. Se puede prescindir de él en equipos muy pequeños, con presupuesto ajustado o durante una actualización del clúster, definiendo ELASTICSEARCH_ENABLED=false y cargando el escenario disable-elasticsearch-service.yml, aunque Zammad lo considera una dependencia muy recomendable.

En las instalaciones recientes, Zammad se conecta a PostgreSQL con un rol sin privilegios que solo es dueño de su base de datos, como en la instalación por paquetes. Las instalaciones antiguas usaban el superusuario de la imagen y pueden migrar mediante copia y restauración. La pila incluye un servicio zammad-backup, que permite lanzar una copia puntual:

docker compose run --rm --env BACKUP_ONCE=true zammad-backupLenguaje del código: JavaScript (javascript)

Preguntas frecuentes

¿Zammad es gratuito?

Sí, el software es libre con licencia AGPLv3 y se puede autoalojar sin coste. Zammad GmbH vende además una versión en la nube con soporte.

¿Cuánta memoria necesita?

La documentación pide al menos 4 GB de RAM para ejecutar los contenedores con Docker Compose.

¿Es obligatorio Elasticsearch?

No, pero es muy recomendable. Se desactiva con ELASTICSEARCH_ENABLED=false y el escenario disable-elasticsearch-service.yml.

¿Funciona en Docker Swarm o Kubernetes?

Swarm no está soportado. Para Kubernetes, Zammad mantiene un Helm chart oficial.

Fuentes:

Suscríbete al boletín SysAdmin

Este es tu recurso para las últimas noticias y consejos sobre administración de sistemas, Linux, Windows, cloud computing, seguridad de la nube, etc. Lo enviamos 2 días a la semana. Recuerda revisar tu email para confirmar la suscripción.

Scroll al inicio
×