Pesquisa de site

Como instalar o sistema de suporte ao cliente Zammad no Debian 12


Zammad é uma solução de código aberto de suporte/tickets ao cliente que ajuda a gerenciar comunicações em vários canais, como e-mail, chat e mídia social.

Neste guia, você aprenderá como instalar o Sistema de Suporte ao Cliente Zammad com PostgreSQL e Nginx no servidor Debian 12. Você também integrará o Zammad com Elasticsearch e Redis, portanto fique atento a isso.

Pré-requisitos

Antes de prosseguir, certifique-se de estar preparado com o seguinte:

  • Um servidor Debian 12 com 4 GB de memória ou mais.
  • Um usuário não root com privilégios de administrador.
  • Um nome de domínio apontado para um endereço IP de servidor.

Instalando Dependências

A primeira etapa, você instala dependências de pacotes para o Sistema de Suporte ao Cliente Zammad. Isso inclui os seguintes pacotes:

  • Elasticsearch
  • Servidor de banco de dados PostgreSQL
  • Redis
  • Servidor Web Nginx
  • Node.js
  • UFW

Esses pacotes você instalará em seu servidor Debian.

Primeiro, execute o seguinte comando para instalar pacotes básicos para gerenciar o repositório. Digite y para confirmar a instalação.

sudo apt install curl apt-transport-https gnupg

Agora execute o comando abaixo para adicionar o repositório Elasticsearch 7.x ao seu 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

Em seguida, adicione o repositório Elasticsearch da chave GPG usando o comando abaixo.

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

A seguir, atualize seu repositório Debian usando o seguinte comando.

sudo apt update

Assim que o repositório for atualizado, instale dependências para Zammand usando o seguinte comando. Insira Y para confirmar a instalação.

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

Depois que tudo estiver instalado, verifique cada um dos serviços para garantir que ele esteja em execução e ativado.

Verifique o servidor PostgreSQL usando o comando.

sudo systemctl is-enabled postgresql
sudo systemctl status postgresql

Abaixo você pode ver que o PostgreSQL está rodando e habilitado.

Verifique o servidor Redis usando o seguinte comando.

sudo systemctl is-enabled redis
sudo systemctl status redis

Você pode ver abaixo que o Redis está em execução.

Agora verifique o Nginx usando o comando abaixo.

sudo systemctl is-enabled nginx
sudo systemctl status nginx

O servidor web Nginx deve estar rodando e habilitado assim:

Por último, execute o comando abaixo para iniciar e habilitar o Elasticsearch.

sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch

Em seguida, verifique usando o comando abaixo. Você deverá ver que o Elasticsearch está em execução e ativado.

sudo systemctl status elasticsearch

Configurando Dependências

Depois de instalar as dependências do pacote para o Zammad, a próxima etapa é configurar cada uma das dependências do Zammad. Você configurará o seguinte:

  • PostgreSQL: Aumente o max_connections padrão para 2.000.
  • Elasticsearch: Instalando o anexo de ingestão do plugin necessário ao Zammad.
  • Configure o local padrão para en_US.UTF-8
  • UFW: inicie e ative, abra as portas SSH, HTTP e HTTPS.

Configurar PostgreSQL

Abra a configuração padrão do PostgreSQL /etc/postgresql/15/main/postgresql.conf usando o comando do editor nano abaixo.

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

Altere o max_connections padrão no PostgreSQL para 2000m, que é exigido pelo Zammad.

max_connections = 2000

Salve o arquivo e saia do editor.

Agora execute o seguinte comando systemctl para reiniciar o PostgreSQL e aplicar as alterações,

sudo systemctl restart postgresql

Configurar o Elasticsearch

Após configurar o PostgreSQL, vamos configurar o Elasticsearch.

Instale o plugin ingest-attachment para Zammad usando o comando elasticsearch-plugin abaixo.

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

Insira y para confirmar a instalação. Quando terminar, você obterá o seguinte.

Agora reinicie o elasticsearch usando o comando abaixo.

sudo systemctl restart elasticsearch

Por último, verifique se o Elasitcsearch está sendo executado usando curl.

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

Você pode ver abaixo que o Elasitcsearch está rodando em um servidor Debian.

Configurar localidade padrão

Para que o Zammad funcione corretamente, você precisa configurar o local padrão para en_US.UTF-8.

Execute o comando abaixo para gerar a localidade en_US.UTF-8.

locale-gen en_US.UTF-8

Em seguida, configure o código de idioma padrão para en_US.UTF-8 adicionando uma nova configuração ao arquivo /etc/default/locale.

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

Configurar UFW

Agora execute o comando ufw abaixo para ativar os perfis OpenSSH e WWW Full.

sudo ufw allow OpenSSH
sudo ufw allow "WWW Full"

Em seguida, habilite o UFW usando o comando abaixo. digite y para confirmar e iniciar o UFW.

sudo ufw enable

Uma vez ativado, você obterá o seguinte:

Com o UFW habilitado, execute o comando abaixo para verificá-lo.

sudo ufw status

Você pode ver o UFW com o status Ativo e perfis habilitados OpenSSH e WWW Full.

Instalando o Sistema de Suporte ao Cliente Zammad

Neste ponto, você concluiu a instalação e configuração das Dependências do Zammad. Agora você iniciará a instalação do Zammad, que pode ser feita usando vários métodos. A maneira mais fácil é usar pacotes do repositório oficial do Zammad.

Execute o comando abaixo para adicionar a chave GPG ao repositório Zammad.

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

Agora adicione o repositório Zammad para Debian 12 usando o seguinte 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

Atualize e atualize seu repositório Debian usando o seguinte comando.

sudo apt update

Assim que o repositório for atualizado, instale o Zammad com o comando abaixo.

sudo apt install zammad

Abaixo a instalação do Zammad:

Durante a instalação, o banco de dados PostgreSQL e o usuário serão criados, juntamente com a migração do banco de dados.

Além disso, a configuração do bloco do servidor Nginx será criada.

Após a conclusão da instalação, execute o comando zammad abaixo para configurar a integração com o Elasticsearch e reconstruir o índice de pesquisa no Elasticsearch.

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

Em seguida, execute o comando abaixo para reiniciar os serviços zammad. Zammad vem com vários serviços, incluindo zammad, zammad-web, zammad-worker e zammad-websocket.

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

Por último, execute o comando abaixo para verificar o status do serviço zammad.

sudo systemctl is-enabled zammad
sudo systemctl status zammad

Abaixo você pode ver que o serviço zammad está rodando e habilitado no servidor Debian.

Configurando o servidor Web Nginx

Por padrão, o zammad gera a configuração do bloco do servidor Nginx localizada em /etc/nginx/sites-available/zammad.conf. Para configurar o Zammad em produção, você deve alterar a configuração do domínio. Além disso, você deve proteger com HTTPS na produção.

Agora abra o arquivo /etc/nginx/sites-available/zammad.conf usando o seguinte comando do editor nano.

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

Altere o nome de domínio padrão na opção server_name assim:

server_name help.hwdomain.io;

Salve e saia do arquivo.

Em seguida, execute o comando abaixo para verificar a sintaxe do Nginx e reinicie o serviço Nginx para ter efeito.

sudo nginx -t
sudo systemctl restart nginx

Abaixo você pode ver que o teste de sintaxe do Nginx foi bem-sucedido.

Protegendo Zammad

Se você implantar em produção, certifique-se de habilitar HTTPS via Letsencrypt.

Instale o plugin certbot e certbot nginx usando o seguinte comando. Insira y para confirmar a instalação.

sudo apt install certbot python3-certbot-nginx

Assim que a instalação for concluída, gere certificados SSL/TLS para o seu nome de domínio Zammad usando o comando certbot abaixo. Certifique-se de alterar as informações do nome de domínio e endereço de e-mail neste comando.

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

O processo de geração estará em execução. Quando terminar, seus certificados SSL estarão disponíveis no diretório /etc/letsencrypt/live/domain.com.

Instalando o Zammad

Abra seu navegador e visite o URL de instalação do zammad (http://help.hwdomain.io). Clique em Configurar um novo sistema para iniciar a instalação.

Agora insira detalhes de seu usuário administrador, e-mail e senha. Em seguida, clique em Criar para confirmar.

Insira o nome da sua organização e clique em Avançar.

Para receber a notificação por e-mail, clique em Ignorar por enquanto. Você pode configurar isso mais tarde.

Clique em Pular para conectar a configuração do canal. Isso também pode ser feito posteriormente, quando a configuração for concluída.

Assim que o processo for concluído, você poderá ver o painel de administração do Zammad como o seguinte:

Conclusão

Parabéns! Agora você instalou com sucesso o Sistema de Suporte ao Cliente Zammad no servidor Debian 12. Você instalou o zammad com back-end de banco de dados PostgreSQL, servidor web Nginx, Elasticsearch para o mecanismo de pesquisa principal e Redis para gerenciamento de cache e sessão. Além disso, você também aprendeu como habilitar HTTPS para Zammad via Certbot e Letsencrypt.

Artigos relacionados: