Typebot: Hospede seu Chatbot em VPS com Docker

Typebot: Hospede seu Chatbot em VPS com Docker

Resposta Rápida / TL;DR

Hospedar Typebot em um VPS Linux/Ubuntu é feito de forma eficiente com Docker. A implantação envolve configurar um servidor com pelo menos 4GB de RAM e 4 vCPUs, obter os arquivos de configuração e rodar o container com `docker-compose up -d`. Essencial para quem busca controle total sobre seus chatbots e formulários conversacionais.

Pontos principais

  • Typebot transforma formulários estáticos em chatbots interativos, aumentando o engajamento do usuário.
  • Hospedar Typebot em um VPS self-hosted garante controle total sobre dados, personalização e performance.
  • A implantação recomendada utiliza Docker e Docker Compose, exigindo um mínimo de 4GB RAM e 4 vCPUs em produção.
  • O guia fornece comandos exatos e um arquivo `docker-compose.yml` completo para fácil instalação em Ubuntu.
Índice do artigo

    O Que é Typebot e Por Que Hospedá-lo em um VPS?

    O Typebot é uma solução inovadora para a criação de formulários conversacionais, permitindo que você substitua formulários tradicionais por interfaces de chatbot interativas. Ele transforma a experiência do usuário, tornando a coleta de informações mais dinâmica e engajadora. Ao optar por hospedá-lo em um VPS (Virtual Private Server), você garante controle total sobre seus dados, personalização avançada e performance otimizada, sem depender de plataformas de terceiros.

    Este guia é focado em colocar o Typebot para rodar em seu próprio servidor, utilizando Docker para simplificar o processo de implantação e gerenciamento. Você aprenderá os requisitos de sistema, os comandos exatos para a instalação e como configurar um ambiente de produção robusto. Se você busca uma alternativa poderosa aos formulários web convencionais e quer ter a liberdade de um ambiente self-hosted, continue lendo.

    A flexibilidade de um VPS é um diferencial crucial. Ao invés de estar preso às limitações de planos de SaaS (Software as a Service), você pode dimensionar seus recursos conforme a necessidade. Isso significa que, se o seu website ou aplicação experimentar um pico de tráfego e seus formulários conversacionais se tornarem mais populares, você pode facilmente aumentar a capacidade do seu servidor. Essa escalabilidade, combinada com a segurança de ter seus próprios dados isolados em um ambiente privado, torna o VPS a escolha ideal para quem leva a sério a gestão de seus formulários e a experiência do usuário.

    Requisitos de Sistema para Hospedar Typebot em Produção

    Para garantir que seu Typebot opere de maneira eficiente e estável, especialmente em ambientes de produção, alguns requisitos de hardware e software são cruciais. A Host You Secure recomenda um plano que atenda ou exceda estas especificações para evitar gargalos e garantir a melhor experiência para seus usuários.

    Servidor VPS: Configuração Recomendada

    Para uma instalação de Typebot em produção, considerando o banco de dados (geralmente PostgreSQL) e o proxy reverso (como Nginx ou Traefik), recomendamos a seguinte configuração mínima:

    • Memória RAM: Mínimo de 4GB de RAM. Esta quantidade é suficiente para rodar o container do Typebot, o banco de dados e o proxy reverso de forma estável em condições de tráfego moderado. Para cargas de trabalho mais intensas ou múltiplos chatbots, 8GB ou mais são ideais.
    • vCPUs: Mínimo de 4 vCPUs. Processadores mais robustos garantem que as requisições sejam processadas rapidamente, especialmente durante a interação com os usuários e o salvamento de dados.
    • Armazenamento: Mínimo de 30GB de SSD. O espaço é necessário para o sistema operacional, Docker, imagens de container, logs e backups. SSDs são essenciais para a velocidade de I/O.
    • Sistema Operacional: Uma distribuição Linux recente, como Ubuntu 22.04 LTS ou superior.
    • Software Adicional: Docker e Docker Compose instalados.

    Consumo Típico de Recursos

    Em um ambiente de produção com um container Typebot e um banco de dados PostgreSQL rodando, o consumo de RAM pode variar. O próprio Typebot, em repouso, pode consumir entre 200MB a 500MB de RAM. O PostgreSQL, dependendo da carga e configurações, pode demandar 500MB a 2GB. O Docker e o sistema operacional consomem uma base, então ter 4GB de RAM é o piso para operar confortavelmente sem preocupações com OOM (Out-Of-Memory).

    Um cenário comum de erro por falta de recursos é o container do Typebot ou do PostgreSQL parar de responder ou falhar durante a inicialização. Se você notar mensagens de erro como "Killed" nos logs do Docker ou "database is not ready" por um período prolongado, é um forte indicativo de que a memória RAM está sendo excedida. Aumentar a RAM para 8GB ou otimizar as configurações do PostgreSQL (ajustando `shared_buffers` e `work_mem` de acordo com a RAM disponível) pode resolver esses problemas.

    Em relação ao armazenamento, 30GB de SSD são suficientes para uma instalação padrão. No entanto, se você planeja armazenar um grande volume de dados coletados pelos seus chatbots ou se pretende realizar backups frequentes e de longa duração no próprio servidor, é prudente considerar um espaço maior, como 50GB ou até 100GB. O espaço em disco também pode ser consumido por imagens antigas do Docker não removidas. Para liberar espaço, utilize o comando `docker image prune -a` para remover imagens não utilizadas.

    A performance do processador (vCPUs) é diretamente ligada à capacidade de resposta do seu chatbot. Em picos de acesso, onde múltiplos usuários interagem simultaneamente, uma baixa contagem de vCPUs pode levar a lentidão na exibição das mensagens e no processamento das respostas. Para um tráfego moderado, 4 vCPUs são adequadas. Se você observar latência significativa durante horários de pico, um upgrade para 6 ou 8 vCPUs pode ser necessário.

    Passo a Passo: Implantação do Typebot com Docker Compose

    A maneira mais recomendada e simplificada de implantar o Typebot em seu VPS é através do Docker e Docker Compose. Este método encapsula a aplicação e suas dependências em containers, facilitando a instalação, o gerenciamento e a atualização.

    1. Preparação do Ambiente no VPS

    Primeiro, certifique-se de que seu servidor Ubuntu está atualizado e que o Docker e o Docker Compose estão instalados. Se precisar de ajuda com a instalação do Docker, consulte nosso guia sobre Docker em VPS: Instale e Execute Containers Facilmente.

    Execute os seguintes comandos para atualizar seu sistema:

    
    sudo apt update && sudo apt upgrade -y
    

    2. Configuração do Docker Compose

    Crie um diretório para o Typebot e navegue até ele. Dentro deste diretório, crie um arquivo chamado docker-compose.yml.

    
    mkdir ~/typebot
    cd ~/typebot
    nano docker-compose.yml
    

    Cole o seguinte conteúdo no arquivo docker-compose.yml:

    
    version: '3.8'
    
    services:
      typebot:
        image: quay.io/observablehq/typebot:latest
        container_name: typebot
        restart: unless-stopped
        ports:
          - "3000:3000"
        environment:
          - DATABASE_URL=postgresql://user:password@db:5432/typebot?sslmode=disable
          - NEXTAUTH_URL=http://your_domain.com # Substitua pelo seu domínio ou IP
          - NEXTAUTH_SECRET=a_very_long_and_secure_random_string # Gere um segredo forte
        depends_on:
          - db
    
      db:
        image: postgres:15-alpine
        container_name: typebot_db
        restart: unless-stopped
        volumes:
          - typebot_db_data:/var/lib/postgresql/data
        environment:
          - POSTGRES_DB=typebot
          - POSTGRES_USER=user
          - POSTGRES_PASSWORD=password # Use uma senha forte e segura
        healthcheck:
          test: ["CMD-SHELL", "pg_isready -U user -d typebot"]
          interval: 10s
          timeout: 5s
          retries: 5
    
    volumes:
      typebot_db_data:
    

    Observações importantes sobre o arquivo docker-compose.yml:

    • `image: quay.io/observablehq/typebot:latest`: Utiliza a imagem oficial mais recente do Typebot. Para ambientes de produção estáveis, considere fixar uma versão específica (ex: `quay.io/observablehq/typebot:v1.1.0`).
    • `container_name`: Define nomes fáceis de identificar para os containers.
    • `restart: unless-stopped`: Garante que os containers reiniciem automaticamente se o servidor for reiniciado ou se o container falhar, a menos que sejam explicitamente parados.
    • `ports: - "3000:3000"`: Mapeia a porta 3000 do container para a porta 3000 do seu VPS.
    • `environment`:
      • `DATABASE_URL`: Configure as credenciais do seu banco de dados PostgreSQL. Substitua `user`, `password` e `typebot` pelos seus dados. É crucial usar uma senha forte.
      • `NEXTAUTH_URL`: Insira o domínio ou o endereço IP público do seu VPS. Isso é necessário para a autenticação.
      • `NEXTAUTH_SECRET`: Gere uma string aleatória longa e segura para esta variável. Você pode usar um gerador online ou o comando `openssl rand -hex 32` no seu terminal.
    • `depends_on: - db`: Garante que o container do banco de dados seja iniciado antes do container do Typebot.
    • `db` service: Configura o container do PostgreSQL, incluindo o mapeamento de volume para persistir os dados do banco. O `healthcheck` verifica se o banco está pronto para receber conexões.
    • `volumes: - typebot_db_data:/var/lib/postgresql/data`: Cria um volume Docker nomeado para armazenar os dados do PostgreSQL. Isso garante que seus dados não sejam perdidos se o container for recriado.

    3. Inicie os Containers

    Salve o arquivo docker-compose.yml e execute o seguinte comando para iniciar o Typebot e o banco de dados:

    
    docker-compose up -d
    

    O comando -d inicia os containers em modo detached (em segundo plano). Para verificar se tudo está funcionando, você pode usar:

    
    docker ps
    

    Você deverá ver dois containers em execução: `typebot` e `typebot_db`. Se houver algum problema, os logs podem ser visualizados com:

    
    docker logs typebot
    docker logs typebot_db
    

    Um erro comum aqui é o container do Typebot falhar com a mensagem "database is not ready". Isso geralmente ocorre porque o PostgreSQL ainda não está totalmente inicializado quando o Typebot tenta se conectar. A configuração do `depends_on` e o `healthcheck` ajudam a mitigar isso, mas em algumas situações, pode ser necessário ajustar os tempos de espera ou reiniciar os containers.

    4. Acesso e Configuração Inicial

    Após os containers estarem rodando, acesse o Typebot através do seu navegador no endereço: http://your_domain.com ou http://your_vps_ip (lembre-se de substituir pelo seu domínio ou IP configurado no `NEXTAUTH_URL`).

    Na primeira vez que acessar, você será solicitado a criar sua conta de administrador. Siga as instruções na tela para configurar seu Typebot. A partir daí, você poderá criar seus fluxos conversacionais, integrar com outras ferramentas e gerenciar seus chatbots.

    5. Configurando um Proxy Reverso com Nginx (Recomendado)

    Para expor o Typebot de forma segura e com um domínio personalizado, é altamente recomendado configurar um proxy reverso com Nginx. Isso permite que você use HTTPS (com certificados Let's Encrypt), gerencie múltiplos sites no mesmo IP e melhore a performance.

    Instale o Nginx:

    
    sudo apt install nginx -y
    

    Crie um arquivo de configuração para o Typebot:

    
    sudo nano /etc/nginx/sites-available/typebot
    

    Cole a seguinte configuração, substituindo `your_domain.com` pelo seu domínio e ajustando a porta se necessário:

    
    server {
        listen 80;
        server_name your_domain.com; # Substitua pelo seu domínio
    
        location / {
            proxy_pass http://localhost:3000; # Porta onde o Typebot está rodando
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection 'upgrade';
            proxy_set_header Host $host;
            proxy_cache_bypass $http_upgrade;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }
    }
    

    Habilite o site e reinicie o Nginx:

    
    sudo ln -s /etc/nginx/sites-available/typebot /etc/nginx/sites-enabled/
    sudo nginx -t
    sudo systemctl restart nginx
    

    Para configurar HTTPS com Let's Encrypt, você precisará instalar o Certbot:

    
    sudo apt install certbot python3-certbot-nginx -y
    sudo certbot --nginx -d your_domain.com # Substitua pelo seu domínio
    

    O Certbot irá configurar automaticamente o Nginx para usar HTTPS e renovar os certificados. Agora, ao acessar `https://your_domain.com`, você será direcionado para o seu Typebot com segurança.

    Lembre-se de atualizar a variável `NEXTAUTH_URL` no seu arquivo docker-compose.yml para o seu domínio com HTTPS (ex: `https://your_domain.com`) e reiniciar os containers do Typebot para que a mudança tenha efeito:

    
    docker-compose down
    docker-compose up -d
    

    Ao seguir estes passos, você terá um ambiente Typebot robusto, seguro e totalmente sob seu controle em seu próprio VPS, pronto para criar formulários conversacionais de alta performance.

    Para uma experiência completa e segura, a Host You Secure recomenda o plano VPS Premium, que oferece 4 vCPUs, 8GB de RAM e 80GB de SSD NVMe, ideal para rodar Typebot e outros serviços com performance e confiabilidade.

    Comparativo: Typebot Self-Hosted vs. Plataformas SaaS

    Recurso Typebot (Self-Hosted) Plataformas SaaS
    Controle de Dados Total (no seu VPS) Limitado pela plataforma
    Custo Mensal Custo do VPS (a partir de R$ 99/mês) Variável (planos pagos)
    Personalização Ilimitada Limitada pelo plano
    Integrações Via APIs e webhooks (configurável) Depende das integrações nativas
    Performance Otimizável no seu servidor Dependente da infra da plataforma
    Segurança Sob sua responsabilidade Compartilhada com a plataforma
    Download Gratuito Template Pronto para n8n & Evolution API

    📦 Template n8n: Agente de IA com WhatsApp + Evolution API

    Baixe o arquivo JSON pronto para importar: Webhook configurado, tratamento de remetente, nó de OpenAI e disparo via Evolution API.

    FAQ: perguntas frequentes

    O que é Typebot e como ele difere de um formulário tradicional?

    Typebot é uma ferramenta que permite criar formulários interativos em formato de chatbot. Diferente dos formulários estáticos, ele guia o usuário através de uma conversa, tornando a experiência mais dinâmica e engajadora. Isso pode aumentar as taxas de preenchimento e a coleta de informações mais qualificadas.

    Por que eu deveria hospedar o Typebot em meu próprio VPS?

    Hospedar o Typebot em um VPS oferece controle total sobre seus dados, personalização avançada da aparência e do comportamento, além de garantir alta performance e disponibilidade sem depender de terceiros. Você também evita custos recorrentes de plataformas SaaS e tem a liberdade de integrar com outros sistemas.

    Quais são os requisitos mínimos de hardware para rodar Typebot em produção?

    Para produção, recomendamos um VPS com no mínimo 4GB de RAM, 4 vCPUs e 30GB de armazenamento SSD. Esta configuração, rodando com Docker e PostgreSQL, garante estabilidade e bom desempenho, mesmo sob carga de tráfego moderada. Requisitos maiores podem ser necessários para um grande volume de chatbots ou interações simultâneas.

    Posso usar o Typebot em um servidor com menos de 4GB de RAM?

    Para ambientes de desenvolvimento ou testes, é possível rodar o Typebot com menos de 4GB de RAM. No entanto, para produção, 4GB é o mínimo recomendado para garantir estabilidade e evitar problemas de falta de memória (OOM), especialmente considerando o sistema operacional, Docker, o próprio Typebot e o banco de dados.

    É necessário ter conhecimento avançado em Docker para instalar o Typebot?

    Embora o Docker simplifique muito a instalação, um conhecimento básico de como ele funciona é útil. O guia fornece os comandos exatos e o arquivo `docker-compose.yml` necessário, tornando o processo acessível. Se você é novo no Docker, recomendamos consultar tutoriais de introdução à ferramenta.

    Qual banco de dados o Typebot utiliza?

    O Typebot geralmente utiliza o PostgreSQL como banco de dados para armazenar as informações dos fluxos e as respostas dos usuários. O arquivo `docker-compose.yml` inclui a configuração para um container PostgreSQL, que roda em conjunto com o container principal do Typebot.

    Como faço para acessar a interface de administração do Typebot após a instalação?

    Após a instalação e subida dos containers com `docker-compose up -d`, você poderá acessar a interface de administração do Typebot através do endereço IP do seu VPS, seguido pela porta configurada (geralmente a porta 3000). Por exemplo: `http://SEU_IP_DO_VPS:3000`.

    O Typebot é adequado para coletar leads ou para suporte ao cliente?

    Sim, o Typebot é extremamente versátil. Ele é ideal para coleta de leads, qualificação de clientes, suporte ao cliente, agendamentos, pesquisas de satisfação e qualquer cenário onde a interação conversacional pode melhorar a experiência do usuário e a eficiência da coleta de dados.

    ← Voltar para o blog