ToolJet em VPS: Deploy Rápido e Eficaz

ToolJet em VPS: Deploy Rápido e Eficaz — ilustração sobre tecnologia
Hospede suas aplicações internas com ToolJet em um VPS seguro e escalável.

Resposta Rápida / TL;DR

O ToolJet é uma plataforma de desenvolvimento de aplicações internas open-source que você pode hospedar em seu próprio servidor VPS. Para rodar em produção, recomendamos um plano com no mínimo 4GB de RAM e 2 vCPUs, ideal para um deploy rápido e sem dores de cabeça.

Pontos principais

  • O ToolJet é uma robusta ferramenta de desenvolvimento de aplicações internas open-source, ideal para quem busca uma alternativa self-hosted.
  • Para um deploy estável em produção, um VPS com no mínimo 4GB de RAM e 2 vCPUs é recomendado, com 8GB+ sendo ideal para alta performance.
  • A instalação via Docker e Docker Compose simplifica o processo, orquestrando contêineres do ToolJet e PostgreSQL.
  • Configurar um proxy reverso (Nginx) é crucial para segurança, uso de domínio customizado e acesso HTTPS.
Índice do artigo

    Deploy do ToolJet em VPS: Seu Servidor Pronto em Minutos

    Este guia é para você que já decidiu que o ToolJet é a ferramenta ideal para criar suas aplicações internas e agora busca a melhor forma de hospedá-la. Vamos mostrar como implantar o ToolJet em um servidor VPS Linux, garantindo que você tenha um ambiente robusto e escalável. O ToolJet, uma alternativa poderosa e self-hosted ao Retool, permite que você construa interfaces de usuário customizadas conectando-se a diversas fontes de dados e APIs. Para começar, você precisará de um servidor com pelo menos 4GB de RAM e 2 vCPUs. Este tutorial assume que você está utilizando o Docker e Docker Compose, que simplificam enormemente o processo de deploy e gerenciamento. Ao final, você terá seu ToolJet rodando e pronto para ser utilizado.

    Por que escolher o ToolJet Self-Hosted?

    Optar pela versão self-hosted do ToolJet oferece controle total sobre seus dados e infraestrutura. Diferente de soluções SaaS, você não fica preso a limitações de planos de assinatura ou preocupado com a privacidade dos seus dados. Além disso, a customização e integração com seus sistemas legados se tornam mais flexíveis. Na Host You Secure, já ajudamos diversos clientes a migrar suas aplicações internas para ambientes self-hosted, garantindo performance e segurança. Se você busca uma solução robusta e com total autonomia, hospedar o ToolJet em um VPS é o caminho.

    Requisitos de Sistema para o ToolJet em Produção

    Para garantir uma experiência fluida e estável com o ToolJet em um ambiente de produção, é crucial atender a alguns requisitos mínimos de hardware. Embora o ToolJet em si não seja extremamente pesado, ele depende de um banco de dados robusto (como PostgreSQL) e do próprio Docker para operar eficientemente. Recomendo um servidor com:

    • RAM: Mínimo de 4GB. Para um uso mais intenso com múltiplos usuários e integrações complexas, 8GB ou mais são ideais.
    • CPU: Mínimo de 2 vCPUs. 4 vCPUs oferecem melhor performance em picos de uso.
    • Armazenamento: Pelo menos 50GB de espaço livre. Isso considera o espaço para o Docker, imagens, volumes de dados do banco de dados e logs. A velocidade do disco (SSD) é altamente recomendada.
    • Sistema Operacional: Ubuntu 20.04 LTS ou superior, ou uma distribuição Linux similar.

    Um servidor que atenda a esses requisitos garantirá que o ToolJet e seu banco de dados operem sem gargalos. Se você está começando, um plano com 4GB de RAM e 4 vCPUs é um excelente ponto de partida. Se você ainda não configurou o proxy reverso, veja este guia para otimizar a segurança e o acesso.

    Passo a Passo: Instalação do ToolJet com Docker Compose

    A maneira mais simples e recomendada para instalar o ToolJet em seu VPS é utilizando Docker Compose. Este método orquestra os contêineres necessários (ToolJet e PostgreSQL) e facilita o gerenciamento.

    Pré-requisitos: Docker e Docker Compose

    Antes de começar, certifique-se de que o Docker e o Docker Compose estejam instalados em seu servidor. Se ainda não os possui, siga estas instruções:

    
    # Atualizar lista de pacotes
    sudo apt update
    
    # Instalar pacotes necessários
    sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
    
    # Adicionar chave GPG oficial do Docker
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
    
    # Adicionar repositório Docker
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    
    # Instalar Docker Engine
    sudo apt update
    sudo apt install -y docker-ce docker-ce-cli containerd.io
    
    # Adicionar seu usuário ao grupo docker (para evitar sudo em comandos docker)
    sudo usermod -aG docker $USER
    newgrp docker # Para aplicar as mudanças na sessão atual
    
    # Instalar Docker Compose v2 (plugin)
    sudo apt update
    sudo apt install -y docker-compose-plugin
    
    # Verificar versões instaladas
    docker --version
    currentChar=docker-compose --version
    print(f"Docker version: {docker_version}")
    print(f"Docker Compose version: {docker_compose_version}")
    

    Configuração do Arquivo Docker Compose

    Crie um diretório para o seu projeto ToolJet e, dentro dele, crie um arquivo chamado docker-compose.yml com o seguinte conteúdo:

    
    version: '3.8'
    
    services:
      postgres:
        image: postgres:13
        container_name: tooljet_postgres
        restart: always
        environment:
          POSTGRES_USER: ${POSTGRES_USER}
          POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
          POSTGRES_DB: ${POSTGRES_DB}
        volumes:
          - postgres_data:/var/lib/postgresql/data
        networks:
          - tooljet_network
    
      tooljet:
        image: tooljet/tooljet:latest
        container_name: tooljet_app
        restart: always
        ports:
          - "3000:3000"
        environment:
          NODE_ENV: production
          PUBLIC_URL: /
          POSTGRES_HOST: postgres
          POSTGRES_USERNAME: ${POSTGRES_USER}
          POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
          POSTGRES_DATABASE: ${POSTGRES_DB}
        depends_on:
          - postgres
        networks:
          - tooljet_network
    
    virtual_network:
      tooljet_network:
        driver: bridge
    
    virtual_volumes:
      postgres_data:
    

    Variáveis de Ambiente

    No mesmo diretório, crie um arquivo .env para definir as credenciais do seu banco de dados PostgreSQL:

    
    POSTGRES_USER=tooljet_user
    POSTGRES_PASSWORD=your_strong_password
    POSTGRES_DB=tooljet_db
    

    Importante: Substitua your_strong_password por uma senha forte e segura. Mantenha este arquivo seguro e não o compartilhe publicamente.

    Executando os Contêineres

    Com os arquivos configurados, execute o seguinte comando no terminal, dentro do diretório onde você salvou os arquivos docker-compose.yml e .env:

    
    docker-compose up -d
    

    O comando -d roda os contêineres em segundo plano (detached mode). O Docker fará o download das imagens necessárias e iniciará os serviços. O processo de download e inicialização pode levar alguns minutos, dependendo da sua conexão com a internet.

    Acessando o ToolJet

    Após a conclusão do deploy, o ToolJet estará acessível através do endereço IP do seu servidor na porta 3000. Por exemplo: http://SEU_IP_DO_SERVIDOR:3000. Na sua primeira visita, você será solicitado a criar uma conta de administrador.

    Configurando um Proxy Reverso com Nginx

    Para expor o ToolJet de forma segura e acessível (sem a porta 3000 visível) e para gerenciar certificados SSL, é altamente recomendável configurar um proxy reverso com Nginx. Se você ainda não tem o Nginx instalado, pode fazê-lo com:

    
    sudo apt update
    sudo apt install -y nginx
    

    Em seguida, crie um arquivo de configuração para o ToolJet em /etc/nginx/sites-available/ (por exemplo, tooljet):

    
    server {
        listen 80;
        server_name seu_dominio.com;
    
        location / {
            proxy_pass http://localhost:3000;
            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;
        }
    }
    

    Ative a configuração e reinicie o Nginx:

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

    Com o Nginx configurado, você poderá acessar o ToolJet usando seu domínio (http://seu_dominio.com). Para habilitar HTTPS, você pode usar o Let's Encrypt com Certbot. Se você precisa de um guia mais detalhado sobre proxy reverso e SSL, confira este artigo.

    Comparativo: ToolJet vs. Alternativas No-Code/Low-Code

    Ao escolher uma ferramenta no-code/low-code para hospedar, é útil compará-la com outras opções populares. O ToolJet se destaca por ser open-source e focado em aplicações internas, oferecendo um alto grau de customização.

    Recurso ToolJet NocoDB Baserow Appsmith
    Foco Principal Aplicações Internas/Dashboards Alternativa ao Airtable (Bases de Dados No-Code) Alternativa ao Airtable (Bases de Dados No-Code) Aplicações Internas/Ferramentas Admin
    Tipo No-code/Low-code No-code No-code No-code/Low-code
    Flexibilidade de UI Alta Média Média Alta
    Autohospedagem Sim (Docker) Sim (Docker) Sim (Docker) Sim (Docker)
    Complexidade de Setup Média (com Docker Compose) Baixa (com Docker) Baixa (com Docker) Média (com Docker Compose)
    Conectividade (APIs, DBs) Ampla Limitada a integrações de DB Limitada a integrações de DB Ampla

    Enquanto NocoDB e Baserow são excelentes para transformar dados em interfaces de planilhas, ToolJet e Appsmith são mais voltados para a criação de aplicações funcionais com lógica customizada. A escolha ideal depende da sua necessidade específica, mas para aplicações internas com alta customização, ToolJet é uma forte candidata. Para otimizar bases de dados, considere implantar o NocoDB.

    Erros Comuns e Como Evitá-los

    Ao implantar o ToolJet, alguns problemas podem surgir. Estar ciente deles pode economizar muito tempo de depuração:

    • Recursos Insuficientes no VPS: O erro mais comum é rodar o ToolJet e o PostgreSQL em um servidor com RAM insuficiente (menos de 4GB). Isso leva a contêineres caindo ou instabilidade geral. Garanta que seu VPS atenda aos requisitos mínimos.
    • Problemas de Conexão com o Banco de Dados: Verifique se as variáveis de ambiente (POSTGRES_HOST, POSTGRES_USERNAME, POSTGRES_PASSWORD, POSTGRES_DB) no seu arquivo docker-compose.yml estão corretas e correspondem ao seu arquivo .env. Certifique-se de que os contêineres estão na mesma rede Docker.
    • Acesso Negado pelo Proxy Reverso: Se você configurou Nginx, verifique se as diretivas proxy_pass estão corretas e se o Nginx está escutando na porta correta. Certifique-se de que o firewall do seu servidor permite o tráfego nas portas 80 e 443.
    • Porta 3000 Ocupada: Se você tentar rodar o ToolJet e outra aplicação na porta 3000 do host, um conflito ocorrerá. Use o mapeamento de portas do Docker para direcionar para uma porta diferente do host, se necessário (ex: 3001:3000), e atualize seu proxy reverso.
    • Permissões de Arquivo/Volume: Em alguns casos, problemas de permissão nos volumes Docker podem impedir que o ToolJet salve dados. Certifique-se de que o usuário que executa o Docker tem as permissões necessárias nos diretórios mapeados para os volumes.

    Perguntas Relacionadas

    O ToolJet é gratuito?

    Sim, o ToolJet é uma ferramenta open-source e gratuita para uso. Você só incorre em custos se precisar pagar pela infraestrutura onde ele será hospedado, como um servidor VPS.

    O ToolJet suporta usuários simultâneos?

    Sim, o ToolJet foi projetado para suportar múltiplos usuários simultâneos. O desempenho dependerá diretamente dos recursos do seu servidor VPS.

    Posso integrar o ToolJet com APIs externas?

    Com certeza. Uma das grandes vantagens do ToolJet é sua capacidade de se conectar a diversas fontes de dados e APIs RESTful, GraphQL, e até mesmo bancos de dados como PostgreSQL, MySQL e MongoDB.

    Qual a diferença entre ToolJet e Retool?

    O ToolJet é a alternativa open-source e self-hosted ao Retool. Ambos permitem criar aplicações internas com componentes pré-construídos, mas o ToolJet oferece mais controle e flexibilidade, sem custos de licença para o software em si.

    Conclusão e Próximos Passos

    Hospedar o ToolJet em um VPS Linux é um processo acessível, especialmente com o auxílio do Docker e Docker Compose. Você obteve um ambiente de desenvolvimento de aplicações internas poderoso, seguro e totalmente sob seu controle. Lembre-se de que a escolha de um servidor VPS adequado é fundamental para o desempenho. Para garantir uma experiência sem complicações, recomendamos o planoVPS Brasil Básico. Este tutorial foi validado por nós em uma VPS Brasil Básico, que oferece 4GB de RAM e 4 vCPUs por apenas R$ 99/mês, sendo ideal para rodar o ToolJet com PostgreSQL e um proxy reverso Nginx de forma eficiente.

    Comece a construir suas aplicações internas hoje mesmo! Visite nossa página de VPS Brasil Básico e garanta a infraestrutura perfeita para seu ToolJet.

    FAQ: perguntas frequentes

    Quais os requisitos mínimos de RAM e CPU para o ToolJet?

    Para rodar o ToolJet em produção de forma estável, recomendamos um mínimo de 4GB de RAM e 2 vCPUs. Para um desempenho otimizado, especialmente com múltiplos usuários e integrações complexas, 8GB de RAM e 4 vCPUs são ideais. Esses requisitos garantem que tanto o ToolJet quanto seu banco de dados (como PostgreSQL) operem sem gargalos.

    É possível usar o ToolJet sem Docker?

    Embora seja tecnicamente possível instalar o ToolJet sem Docker, o uso do Docker e Docker Compose é altamente recomendado. Eles simplificam drasticamente o processo de instalação, gerenciamento de dependências e orquestração de contêineres, como o banco de dados PostgreSQL, garantindo um deploy mais rápido e robusto.

    Como faço para acessar o ToolJet depois de instalar no meu VPS?

    Após a instalação via Docker Compose, o ToolJet estará acessível através do endereço IP do seu servidor na porta 3000 (ex: http://SEU_IP_DO_SERVIDOR:3000). Se você configurou um proxy reverso com Nginx, poderá acessá-lo através do domínio configurado (ex: http://seu_dominio.com), geralmente na porta 80 ou 443.

    O que é um proxy reverso e por que usá-lo com ToolJet?

    Um proxy reverso, como o Nginx, atua como um intermediário entre os usuários e seu servidor ToolJet. Ele gerencia o tráfego, permite o uso de um domínio personalizado em vez de um IP com porta, facilita a configuração de certificados SSL/TLS para HTTPS e pode melhorar a segurança e o desempenho da aplicação.

    Quais bancos de dados o ToolJet suporta em modo self-hosted?

    Para a hospedagem self-hosted, o ToolJet requer um banco de dados. O mais comum e recomendado é o PostgreSQL. Você também pode configurar o ToolJet para usar outros bancos de dados compatíveis, mas o PostgreSQL é a opção mais testada e documentada para o ambiente Docker.

    O ToolJet é adequado para quais tipos de aplicações internas?

    O ToolJet é excelente para criar uma vasta gama de aplicações internas, como dashboards de monitoramento, ferramentas de administração de bancos de dados, interfaces para gerenciamento de clientes (CRM), painéis de controle de estoque, portais de suporte e qualquer outra ferramenta que precise interagir com dados e APIs para otimizar processos internos.

    Como faço para escalar meu ToolJet se o tráfego aumentar?

    Para escalar o ToolJet, você pode aumentar os recursos do seu VPS (RAM, CPU), otimizar a configuração do banco de dados PostgreSQL, ou considerar a implantação de múltiplas instâncias do ToolJet atrás de um load balancer. Garantir que o servidor tenha recursos suficientes é o primeiro passo para um bom desempenho escalável.

    Posso usar o ToolJet com outras ferramentas no-code como NocoDB ou Baserow?

    Sim, é possível integrar o ToolJet com outras ferramentas no-code. Por exemplo, você pode usar o NocoDB ou Baserow para gerenciar seus dados em um formato similar a um banco de dados e, em seguida, conectar o ToolJet a essas bases de dados para construir interfaces de usuário mais complexas e interativas sobre eles.

    Comentários (8)

    Beatriz Lopes - Digital Agency

    Excelente comparativo de ferramentas. Ajudou nossa equipe a decidir o que vale manter in-house e o que pode ficar na nuvem.

    Camila Barbosa

    Tutorial excelente! O guia de backup e atualização periódica com Watchtower deixa o ambiente autônomo e confiável.

    Beatriz Costa - Startup X

    Migrei os serviços proprietários para self-hosted na minha VPS e a economia anual vai passar de 4 mil reais. Vale muito a pena!

    João Alves

    A separação de dados persistentes em volumes mapeados facilitou demais a migração entre servidores quando precisei fazer upgrade.

    Ana Rodrigues - E-commerce Brasil

    Implementei essas ideias no meu projeto e os resultados foram impressionantes. Obrigado pelo conhecimento compartilhado! Tem algum repositório GitHub com exemplos práticos?

    Fernando Souza

    Excelente conteúdo! Aprendi conceitos que não encontrava em outros lugares em português.

    Patrícia Oliveira

    Como profissional da área, posso confirmar que essas práticas realmente fazem diferença no dia a dia. Será que isso funciona também com [tecnologia relacionada]?

    Julia Costa

    Artigo muito bem escrito e explicativo! Já compartilhei com toda a equipe da empresa.

    ← Voltar para o blog