Pular para o conteúdo

Instalacao

Deploy da NooviChat via Docker no seu servidor.

Requisitos

RequisitoMinimoRecomendado
CPU2 vCPUs4 vCPUs
RAM4 GB8 GB
Disco20 GB SSD50 GB SSD
Docker20.10+24.0+
Docker Composev2.0+v2.20+

Docker Compose (Recomendado)

A forma mais simples de fazer deploy da NooviChat com todos os servicos necessarios.

1

Criar diretorio do projeto

bash
mkdir noovichat && cd noovichat
2

Criar arquivo .env

Crie o arquivo .env com as variaveis de configuracao:

bash
# 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=true
3

Criar docker-compose.yml

yaml
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

  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:
4

Preparar banco de dados e iniciar

bash
# Preparar banco de dados
docker compose run --rm noovichat bundle exec rails db:chatwoot_prepare

# Iniciar todos os servicos
docker compose up -d

Docker Run

Para ambientes onde voce ja possui PostgreSQL e Redis configurados externamente:

bash
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:latest

Variaveis de Ambiente

Lista completa das variaveis de ambiente disponiveis:

VariavelObrigatorioDescricao
SECRET_KEY_BASESimChave secreta para encriptacao (min 32 chars)
FRONTEND_URLSimURL publica da aplicacao
DEFAULT_LOCALENaoIdioma padrao (default: en)
POSTGRES_HOSTSimHost do PostgreSQL
POSTGRES_DATABASESimNome do banco de dados
POSTGRES_USERNAMESimUsuario do banco de dados
POSTGRES_PASSWORDSimSenha do banco de dados
REDIS_URLSimURL de conexao com Redis
MAILER_SENDER_EMAILNaoEmail remetente das notificacoes
SMTP_ADDRESSNaoServidor SMTP
SMTP_PORTNaoPorta SMTP (default: 587)
SMTP_USERNAMENaoUsuario SMTP
SMTP_PASSWORDNaoSenha SMTP
ACTIVE_STORAGE_SERVICENaoServico de storage (local, amazon_s3, gcs)

Verificacao

Apos iniciar os containers, verifique se tudo esta funcionando:

bash
# 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:3000

Primeiro 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:

bash
# Baixar nova imagem
docker compose pull noovichat

# Executar migracoes
docker compose run --rm noovichat bundle exec rails db:migrate

# Reiniciar servicos
docker compose up -d

Backup

Sempre faca backup do banco de dados antes de atualizar. Use docker compose exec postgres pg_dump para criar um dump.