Pular para o conteúdo
DootCentral de Ajuda Suporte
Índice

Requisitos de instalação#

Você precisa contratar o servidor e ninguém consegue dizer o tamanho. Esta página tem os números, e diz de onde eles saem — para você julgar se o seu caso é o do meio ou o das pontas.

As três faixas#

MínimoRecomendadoFolgado
CPU2 núcleos4 núcleos8 núcleos
Memória4 GB8 GB16 GB
Disco20 GB50 GB100 GB

Mínimo (2 núcleos, 4 GB). Roda o atendimento multicanal, o painel, os fluxos, as etiquetas, a integração com o ERP e o agente de IA usando um provedor externo. Não roda a IA local (RAG), a transcrição de áudio (Whisper) nem a voz sintetizada, e sofre em PABX com muitas chamadas ao mesmo tempo.

Recomendado (4 núcleos, 8 GB). É o ponto em que tudo funciona junto sem apertar: IA local com o modelo pequeno, transcrição, voz e PABX em uso normal.

Folgado (8 núcleos, 16 GB). Sobra para o pico, para o modelo de embedding grande e para reindexar a base sem afetar quem está atendendo.

De onde saem esses números#

Não são chute de catálogo. É o que cada peça ocupa de memória:

PeçaMemória
Node, Express, driver do MongoDB e Socket.IO~250 MB
Motor de embeddings (ONNX, e5-small int8)~340 MB
Modelo de NLP (node-nlp)~120 MB
Asterisk e AMI~150 MB
Whisper (transcrição), no pico~500 MB
Kokoro (voz natural), processo separado~600 MB

Somando o que fica de pé o tempo todo, um servidor com IA local pousa entre 700 e 900 MB. É por isso que 4 GB é o mínimo e não o recomendado: em 4 GB o sistema sobe, mas não sobra folga para transcrever áudio e sintetizar voz ao mesmo tempo.

O comando abaixo mede a máquina que você já tem e diz em qual faixa ela cai:

node backend/scripts/dimensionar.mjs

Se o servidor for uma máquina virtual#

Aqui mora o erro que mais custa caro, e ele não aparece em log nenhum.

Numa máquina física, a memória total é a memória que existe e vai continuar existindo. Numa VM, é a que o hipervisor está emprestando agora. Com balloon ligado no Proxmox ou no KVM, o host pode retomar parte dela numa tarde movimentada: o sistema que estava confortável em 7 GB passa a ser reciclado, e do lado de dentro a memória encolheu, sem erro que explique.

Duas decisões evitam isso:

  • Desligue o balloon nesta VM, ou reserve a memória. É o que transforma o número medido em garantia. Numa VM que roda IA local, isso não é opcional.
  • Prefira 1 soquete com N núcleos. Numa VM, "soquete" é um número que alguém digitou na criação da máquina, e o hipervisor não é obrigado a fazer os soquetes virtuais corresponderem aos físicos. O sistema passa a decidir posicionamento de memória com base numa topologia que não existe, e o resultado pode ser mais lento que a mesma quantidade de núcleos num soquete só.

O relatório do dimensionar.mjs detecta a virtualização e inverte o conselho sozinho quando é o caso.

Oito gigas é piso, e piso não é folga#

O relatório mostra quanto já está em uso, não só o total. Um servidor de 8 GB a 88% não tem 8 GB para dimensionar: tem menos de 1 GB de folga — e é essa folga que absorve o pico de uma indexação ou de um disparo em massa.

Sistema operacional e serviços de base#

O instalador foi escrito para Ubuntu ou Debian limpos e traz o resto junto: Node, MongoDB, Redis, Nginx, PM2 e ffmpeg. Nada precisa ser instalado à mão antes.

ComponenteVersão mínima
Node.js18
MongoDB6
Redis6
Asterisk18 (só se você for usar telefonia)
FFmpegqualquer versão

A voz natural (Kokoro) é a única parte em Python e fica fora por padrão: são cerca de 2,5 GB entre PyTorch e modelo. Ela entra com --com-voz. Sem ela o sistema fala pelo espeak, com som sintetizado simples.

Como instalar#

git clone <URL_DO_REPOSITORIO> /opt/doot
cd /opt/doot
sudo bash instalar.sh

Rodando sem opção nenhuma, ele pergunta o domínio, o e-mail do administrador e a senha — e, se o domínio for um nome real, oferece emitir o certificado HTTPS na hora.

Sem sudo na máquina? Instalação mínima de Debian não o traz, e nesse caso você já entra como root: tire o prefixo e rode bash instalar.sh.

Para instalar sem perguntas:

sudo bash instalar.sh --dominio doot.suaempresa.com.br \
     --email-admin admin@suaempresa.com.br \
     --certificado voce@suaempresa.com.br --nao-interativo

O instalador é reexecutável. Rodar de novo numa instalação existente atualiza o que mudou e não toca no que já está gravado: os segredos, o .env, o storage/ e o banco ficam como estão. Isso não é detalhe de implementação — reescrever o JWT_SECRET desloga todos os operadores de uma vez, e reescrever o SESSION_SECRET derruba as sessões abertas.

Se algo der errado#

sudo: command not found — a máquina não tem sudo, o que é normal em Debian mínimo. Entre com su - e rode o comando sem o prefixo.

Instalação termina, mas o painel não abre — confira se o Nginx subiu e se o domínio aponta para o IP do servidor. O instalador confere isso no fim e imprime o resultado; releia a última tela antes de procurar em outro lugar.

Sistema sobe e cai sozinho depois de alguns minutos, sem erro no log — em VM, é quase sempre o balloon retomando memória. Veja a seção sobre máquina virtual acima.

Relacionado