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.