## Antes de tudo certifique-se de estar usando o S3 para armazenar os seus arquivos. Não é obrigatório ter o S3 para usar o Kanban mas adiciona uma camada a mais de resiliência aos dados.

Dito isso, vamos lá:

1. Em primeiro lugar, pause a stack do seu Chatwoot atual.

   ![](https://app.stacklab.digital/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBdEVJIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--b0fbb15aeda143db96b8160d746f14fd9ea4ec1f/0.jpg)

2. Após pausar a stack, navegue até a página “Volumesˮ do Portainer (se estiver usando EasyPanel não é

   necessário excluir os volumes) e exclua todos os volumes (exceto chatwoot_data ou chatwoot_storage,

   dependendo da instalação) - dicas no final do tutorial.

   Uma vez a stack pausada e os volumes removidos, agora é a hora de fazer as alterações que vão

   colocar o Kanban para funcionar.

   ![](https://app.stacklab.digital/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBdE1JIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--fff2d3b9c031c0ea1be9bc617bcc7617ec50c314/2.jpg)**Não excluir o volume chatwoot_storage (ou chatwoot_data) se não estiver usando o S3. Isso causa perda de arquivos das conversas.**

3. No trecho “enviromentˮ da stack do seu Chatwoot, adicione uma nova variável chamada “**STACKLAB_TOKENˮ** e insira o token que você recebeu via Whatsapp e E-mail na hora da compra do Kanban.

   ![](https://app.stacklab.digital/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBdFFJIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--50c64926c6436962c9999ed51f9021ba5c77fc74/3.png)

4. Após adicionar o token, altere as imagens dos dois serviços, app e Sidekiq, para usar a imagem do kanban: `stacklabdigital/kanban:latest`

   ![](https://app.stacklab.digital/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBdFVJIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--49ab2105798168d98706cfdd9025363a36780e74/image.png)

5. Clique em “*Prune Servicesˮ* e logo após em “*Redeployˮ*.

   Espere o serviço **chatwoot_app** estar com o status “*runningˮ* e quando estiver, siga os próximos passos para migrar o banco de dados para a nova versão.

6. No **Portainer**, na linha onde aparece o serviço **chatwoot_app**, clique em “*Consoleˮ*.

   ![](https://app.stacklab.digital/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBdFlJIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--1197747c844bfebe16056f99023329592e4cc3ee/image.png)

7. Na tela de conexão ao *console* selecione “*shˮ* e mantenha o usuário como “*rootˮ* mesmo.

   ![](https://app.stacklab.digital/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBdGNJIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--f1a22383d2c895901937cc5b6a2486b990e429ae/image.png)

8. Rode o comando para migrar o banco de dados e aplicar as alterações necessárias para o

   funcionamento do **Kanban para Chatwoot**: `bundle exec rails db:migrate` - **veja alguns comandos para gerenciar o banco de dados no fim do post.**

   ![](https://app.stacklab.digital/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBdGdJIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--9e1dadc5da57e0eb7bd814e3436e604e070999d6/image.png)

Pronto, seu **Kanban para Chatwoot** está instalado! O processo de atualização é exatamente o mesmo.

## Dicas Bônus

**Porque é importante usar o S3 no Chatwoot?**

Quando armazenamos os nossos arquivos direto no armazenamento local do Chatwoot ficamos refém do servidor em que as imagens e arquivos estão hospedados ficar indisponível, sofrer gargalos que afetam a integridade dos demais serviços, corromper informações e uma série de outros fatores. O armazenamento S3 é um protocolo especializado para guardar arquivos com segurança e performance além de permitir que seu Chatwoot tenha um serviço robusto que servirá as imagens para sua aplicação.

Saiba mais sobre o protocolo S3: <https://aws.amazon.com/pt/s3/getting-started/>

## Alguns dos bugs mais comuns de ocorrer no processo de instalação e atualização:

* *“Mudei a imagem dos dois serviços mas não aparece a opção de Kanban no Chatwoot.ˮ*

Isso geralmente ocorre quando antes de fazer o *redeploy,* os volumes não são apagados. Limpe os volumes e faça o redeploy pra que as modificações sejam aplicadas.

* *“Atualizei o Kanban para Chatwoot e apareceu “rejectedˮ no containerˮ*

Esse erro é causado 90% das vezes pelo nome errado da imagem. Certifique-se se estar usando a versão mais atualizada com o nome correto da imagem: **stacklabdigital/kanban:latest**

## Docker Hub com tags atualizadas:

<https://hub.docker.com/r/stacklabdigital/kanban/tags>

## Comandos uteis para gerenciar o banco de dados do Chatwoot

* ***bundle exec rails db:migrate***

  Aplica as migrations pendentes no seu banco de dados atual após uma atualização.

* ***bundle exec rails db:rollback***

  Desfaz a última migration (1 step). Útil em caso de erros.

* ***bundle exec rails db:rollback STEP=3***

  Desfaz as últimas 3 migrations.

* ***bundle exec rails db:migrate:status***

  Mostra o status das migrations (aplicadas ou não).

* ***bundle exec rails db:seed***

  Executa o arquivo db/seeds.rb.

* ***bundle exec rails db:reset***

  Dropa, cria, migra e roda seeds no banco (**cuidado: apaga os dados!**).