Instalacao
Deploy da distribuicao NooviChat licenciada via Docker no seu servidor.
Licenca NooviChat
O NooviChat nao e uma revenda do Chatwoot Enterprise nem a venda do codigo-fonte completo. A licenca NooviChat autoriza operar a distribuicao Noovi de um fork MIT modificado do Chatwoot em uma VPS/instancia propria. Para novas instalacoes, use o Auto Instalador com sua chave de licenca.
Requisitos
| Requisito | Minimo | Recomendado |
|---|---|---|
| CPU | 2 vCPUs | 4 vCPUs |
| RAM | 4 GB | 8 GB |
| Disco | 20 GB SSD | 50 GB SSD |
| Arquitetura | amd64 (x86_64) | amd64 ou ARM64 (aarch64) |
| Docker | 20.10+ | 24.0+ |
| Docker Compose | v2.0+ | v2.20+ |
Arquitetura (amd64 / ARM64)
O NooviChat roda tanto em servidores amd64 (Intel/AMD) quanto em ARM64/aarch64 (Ampere, AWS Graviton, Oracle Ampere A1, Raspberry Pi 4/5, entre outros) a partir da versao v4.15.1.13.
A imagem :latest resolve a arquitetura sozinha
A tag nooviai/noovichat:latest (e as versionadas, como :v4.15.1.13) e um manifest multi-arch (amd64 + arm64): o Docker escolhe automaticamente a arquitetura do host. Se voce ja usa uma stack Docker comum, basta trocar a imagem e rodar rails db:migrate — funciona igual em amd64 e ARM, sem mudar mais nada.
Se preferir fixar a arquitetura (por exemplo em um no especifico do cluster), use as tags explicitas:
| Tag | Arquitetura |
|---|---|
nooviai/noovichat:latest | Multi-arch (amd64 + arm64), escolhida pelo host |
nooviai/noovichat:latest-arm64 | ARM64 / aarch64 (fixa) |
nooviai/noovichat:v4.15.1.13-arm64 | ARM64 / aarch64, versao fixa |
nooviai/noovichat:latest-amd64 | Intel / AMD (amd64) fixa |
O restante da stack de suporte (pgvector/pgvector:pg16, redis, MinIO, Traefik, n8n) tambem e multi-arch — nenhum ajuste extra e necessario em ARM.
Auto Instalador: ARM 100% automatico
Ao instalar pelo Auto Instalador, a arquitetura e detectada automaticamente (uname -m) e os componentes do NooviChat sao baixados. Quando o cliente opta por WAHA, a integracao usa a imagem arm-2026.6.2 com engine GOWS, alem de Redis e pgvector. O provedor WAHA permanece separado.
Stack ARM montada a mao: Redis e ARM64-COW-BUG
Em alguns kernels ARM64, o Redis pode se auto-encerrar por causa do aviso ARM64-COW-BUG. Suba o Redis com a flag --ignore-warnings ARM64-COW-BUG (no exemplo de Docker Compose acima, o comando do servico redis vira redis-server --appendonly yes --ignore-warnings ARM64-COW-BUG). O WAHA em ARM usa a tag arm-2026.6.2 (WAHA Core). O Auto Instalador prepara a configuracao tecnica escolhida.
WAHA e UAZAPI sao provedores separados
O NooviChat oferece a integracao tecnica. Licencas, infraestrutura, credenciais, custos e operacao de WAHA ou UAZAPI sao gerenciados separadamente pelo cliente e nao estao inclusos na licenca NooviChat.
Auto Instalador (recomendado)
O caminho recomendado para clientes e executar o instalador oficial em uma VPS Linux limpa e informar a chave de licenca NooviChat quando solicitado.
bash <(curl -sL instalador.noovichat.com)Servicos operacionais adicionais
Setup gerenciado, migracao assistida, hospedagem e gestao recorrente de VPS podem ser contratados separadamente. Eles nao fazem parte automaticamente da licenca de software.
Docker Compose manual
Use este caminho apenas em ambientes avancados onde voce ja controla o stack Docker. A instancia continua exigindo uma licenca NooviChat ativa e nao substitui o processo oficial do Auto Instalador.
Criar diretorio do projeto
mkdir noovichat && cd noovichatCriar arquivo .env
Crie o arquivo .env com as variaveis de configuracao:
# Configuracao basica
SECRET_KEY_BASE=sua_chave_secreta_de_32_caracteres_minimo
FRONTEND_URL=https://chat.seudominio.com
DEFAULT_LOCALE=pt_BR
# Banco de dados
POSTGRES_HOST=postgres
POSTGRES_PORT=5432
POSTGRES_DATABASE=noovichat
POSTGRES_USERNAME=noovichat
POSTGRES_PASSWORD=senha_segura_aqui
# Redis
REDIS_URL=redis://redis:6379
# Email (SMTP)
MAILER_SENDER_EMAIL=chat@seudominio.com
SMTP_ADDRESS=smtp.seudominio.com
SMTP_PORT=587
SMTP_USERNAME=chat@seudominio.com
SMTP_PASSWORD=senha_smtp
SMTP_AUTHENTICATION=plain
SMTP_ENABLE_STARTTLS_AUTO=trueCriar docker-compose.yml
O serviço nooviconnect é o motor de WhatsApp nativo. Ele compartilha o mesmo PostgreSQL (criando o próprio schema de sessões) e a mesma SECRET_KEY_BASE do app — assim o app e o sidekiq o alcançam automaticamente em http://nooviconnect:3000, sem variáveis extras.
version: "3.8"
services:
noovichat:
image: nooviai/noovichat:latest
depends_on:
- postgres
- redis
ports:
- "3000:3000"
env_file: .env
environment:
- RAILS_ENV=production
- NODE_ENV=production
volumes:
- storage:/app/storage
restart: unless-stopped
sidekiq:
image: nooviai/noovichat:latest
depends_on:
- postgres
- redis
env_file: .env
environment:
- RAILS_ENV=production
- NODE_ENV=production
command: bundle exec sidekiq -C config/sidekiq.yml
volumes:
- storage:/app/storage
restart: unless-stopped
# WhatsApp nativo (NooviConnect) — motor unico, nao escale este servico.
# O nome do servico DEVE ser "nooviconnect": o app o alcanca em
# http://nooviconnect:3000 (zero configuracao, sem vars extras no app/sidekiq).
nooviconnect:
image: nooviai/nooviconnect:latest
depends_on:
- postgres
- noovichat
env_file: .env
environment:
# Mesmo PostgreSQL do NooviChat (o motor cria o proprio schema de sessoes)
- POSTGRESQL_URL=postgresql://noovichat:senha_segura_aqui@postgres:5432/noovichat
# URL interna do servico app, para o motor enviar as mensagens recebidas
- NOOVI_CHATWOOT_URL=http://noovichat:3000
# Sem volume: as sessoes ficam no PostgreSQL; a midia e efemera
restart: unless-stopped
postgres:
image: postgres:16-alpine
volumes:
- postgres_data:/var/lib/postgresql/data
environment:
- POSTGRES_DB=noovichat
- POSTGRES_USER=noovichat
- POSTGRES_PASSWORD=senha_segura_aqui
restart: unless-stopped
redis:
image: redis:7-alpine
command: redis-server --appendonly yes
volumes:
- redis_data:/data
restart: unless-stopped
volumes:
postgres_data:
redis_data:
storage:Preparar banco de dados e iniciar
# Preparar banco de dados
docker compose run --rm noovichat bundle exec rails db:chatwoot_prepare
# Iniciar todos os servicos
docker compose up -dDocker Run manual
Para ambientes avancados onde voce ja possui PostgreSQL, Redis e processo de licenciamento/configuracao operacional definidos:
docker run -d \
--name noovichat \
-p 3000:3000 \
-e SECRET_KEY_BASE="sua_chave_secreta" \
-e FRONTEND_URL="https://chat.seudominio.com" \
-e DEFAULT_LOCALE="pt_BR" \
-e POSTGRES_HOST="seu-postgres-host" \
-e POSTGRES_PORT="5432" \
-e POSTGRES_DATABASE="noovichat" \
-e POSTGRES_USERNAME="noovichat" \
-e POSTGRES_PASSWORD="senha_segura" \
-e REDIS_URL="redis://seu-redis-host:6379" \
-v noovichat_storage:/app/storage \
--restart unless-stopped \
nooviai/noovichat:latestVariaveis de Ambiente
Lista das variaveis basicas do stack manual. Variaveis de licenca, canais WhatsApp e credenciais operacionais sao fornecidas conforme a configuracao da licenca e do instalador.
| Variavel | Obrigatorio | Descricao |
|---|---|---|
SECRET_KEY_BASE | Sim | Chave secreta para encriptacao (min 32 chars) |
FRONTEND_URL | Sim | URL publica da aplicacao |
DEFAULT_LOCALE | Nao | Idioma padrao (default: en) |
POSTGRES_HOST | Sim | Host do PostgreSQL |
POSTGRES_DATABASE | Sim | Nome do banco de dados |
POSTGRES_USERNAME | Sim | Usuario do banco de dados |
POSTGRES_PASSWORD | Sim | Senha do banco de dados |
REDIS_URL | Sim | URL de conexao com Redis |
MAILER_SENDER_EMAIL | Nao | Email remetente das notificacoes |
SMTP_ADDRESS | Nao | Servidor SMTP |
SMTP_PORT | Nao | Porta SMTP (default: 587) |
SMTP_USERNAME | Nao | Usuario SMTP |
SMTP_PASSWORD | Nao | Senha SMTP |
ACTIVE_STORAGE_SERVICE | Nao | Servico de storage (local, amazon_s3, gcs) |
Verificacao
Apos iniciar os containers, verifique se tudo esta funcionando:
# Verificar se os containers estao rodando
docker compose ps
# Verificar logs
docker compose logs -f noovichat
# Testar acesso (deve retornar HTTP 200)
curl -I http://localhost:3000Primeiro acesso
Acesse http://localhost:3000 no navegador. Na primeira vez, voce sera direcionado para criar a conta de administrador.
Atualizacao
Para atualizar para a ultima versao:
# Baixar nova imagem
docker compose pull noovichat
# Executar migracoes
docker compose run --rm noovichat bundle exec rails db:migrate
# Reiniciar servicos
docker compose up -dBackup
Sempre faca backup do banco de dados antes de atualizar. Use docker compose exec postgres pg_dump para criar um dump.