Pular para o conteúdo

Como instalar e atualizar a NooviChat pelo Portainer

Tutorial passo a passo para fazer o deploy ou atualizar a NooviChat usando o Portainer — sem precisar acessar o terminal do servidor. O processo de instalação e de atualização é exatamente o mesmo.

Sobre este tutorial

O Portainer é uma interface gráfica para gerenciar containers Docker. Se você usa Docker Swarm com Portainer para gerenciar suas stacks, este é o caminho mais simples para instalar ou atualizar a NooviChat.

Usando S3 para armazenamento?

Recomendamos configurar um bucket S3 (ou compatível, como MinIO) para armazenar arquivos de conversas. Não é obrigatório, mas garante que os arquivos não fiquem presos ao servidor — tornando atualizações e migrações muito mais seguras.

Pré-requisitos

RequisitoDetalhes
Docker Swarm ativoCom Portainer instalado e acessível
Stack existenteUma stack com os serviços app, sidekiq, postgres e redis
Credenciais NooviChatToken recebido no e-mail de ativação da sua conta
Acesso de administradorPermissão para editar stacks no Portainer

Instalação

Siga os passos abaixo em ordem. Não pule nenhuma etapa.

1

Pause a stack atual

No Portainer, acesse Stacks, localize a sua stack da NooviChat e clique em Stop (ou Pause). Aguarde todos os serviços pararem.

Informe seus usuarios

A NooviChat ficará fora do ar durante o processo. Avise os usuários antes de começar.

2

Remova os volumes do banco (se necessário)

Na primeira instalação, acesse Volumes no menu lateral do Portainer e remova todos os volumes da stack — exceto o volume de arquivos (noovichat_storage), caso não esteja usando S3.

Atenção: não exclua o volume de storage sem S3

Se você não usa S3, o volume noovichat_storage contém os arquivos enviados nas conversas. Excluí-lo causa perda permanente de dados.

3

Adicione o token NooviChat às variáveis de ambiente

Na edição da stack, localize o bloco environment e adicione a variável com o token que você recebeu por e-mail na ativação da sua conta:

yaml
environment:
  # ... suas variáveis existentes ...
  - NOOVICHAT_LICENSE_KEY=seu_token_aqui
4

Atualize a imagem dos serviços app e sidekiq

Nos serviços app e sidekiq, substitua a imagem atual pela imagem oficial da NooviChat:

yaml
# Serviço app
image: nooviai/noovichat:latest

# Serviço sidekiq
image: nooviai/noovichat:latest
5

Faça o Redeploy da stack

Clique em Prune Services e depois em Redeploy. Aguarde até o serviço app aparecer com o status running.

Quanto tempo demora?

O download da imagem e a inicialização levam tipicamente de 2 a 5 minutos, dependendo da velocidade do servidor.

6

Acesse o console do serviço app

No Portainer, na lista de serviços da stack, clique no ícone de Console ao lado do serviço app. Na tela de conexão, selecione sh e mantenha o usuário como root.

7

Execute a migração do banco de dados

No console aberto, rode o comando para aplicar as migrations:

bash
bundle exec rails db:migrate

Aguarde a conclusão. Você verá a lista de migrations sendo aplicadas. Quando terminar, feche o console.

8

Pronto!

Acesse a URL da sua NooviChat no navegador. Na primeira instalação, você será direcionado para criar a conta de administrador.

Atualização

O processo de atualização é idêntico ao de instalação, com uma diferença importante: na atualização você não precisa remover o volume de storage nem o volume do banco de dados.

Resumo dos passos para atualizar:

  1. 1Pause a stack
  2. 2Confirme que a imagem já usa nooviai/noovichat:latest (ou atualize para a tag da nova versão)
  3. 3Clique em Redeploy
  4. 4Aguarde o serviço app ficar running
  5. 5Acesse o console do app e rode bundle exec rails db:migrate

Faça backup antes de atualizar

Sempre faça um dump do banco de dados antes de uma atualização de versão. Use o comando abaixo no console do container do postgres:

bash
pg_dump -U noovichat noovichat > backup_$(date +%Y%m%d).sql

Comandos úteis no console

Acesse o console do serviço app no Portainer e use estes comandos quando necessário:

bundle exec rails db:migrate

Aplica as migrations pendentes após uma atualização.

bundle exec rails db:migrate:status

Lista o status de cada migration (aplicada ou pendente).

bundle exec rails db:rollback

Desfaz a última migration. Use em caso de erros logo após uma atualização.

bundle exec rails db:rollback STEP=3

Desfaz as últimas 3 migrations.

bundle exec rails db:chatwoot_prepare

Cria e inicializa o banco do zero. Use apenas na primeira instalação.

Problemas comuns

Atualizei a imagem mas a NooviChat continua igual

Os volumes do banco não foram limpos antes do redeploy. Na instalação do zero, exclua todos os volumes (exceto storage) e faça o redeploy novamente.

Status "rejected" no container após o redeploy

Em 90% dos casos, o nome da imagem está errado. Verifique se está usando exatamente nooviai/noovichat:latest (sem espaços ou caracteres extras).

Erro ao rodar db:migrate ("relation already exists")

Este erro pode ser ignorado se as demais migrations rodaram com sucesso. Verifique com db:migrate:status se todas estão com status "up".

NooviChat abre mas mostra tela em branco

Verifique os logs do serviço sidekiq no Portainer. Provavelmente há um erro de variável de ambiente (FRONTEND_URL incorreta ou SECRET_KEY_BASE ausente).