ToolJet em VPS: Deploy Rápido e Eficaz

9 min 113 No Code Tools
Resumir com:
ChatGPT Claude Gemini Perplexity Grok
Compartilhar:
WhatsApp LinkedIn X

Se este conteúdo faz parte do seu projeto

Escolha a VPS pelo uso, não pelo excesso

Escolha pelo uso: Basic para projetos pequenos, Performance para produção com múltiplos serviços e Ultra para cargas maiores.

PlanoRecursosMensalPerfil
Basic4 vCPU · 4 GB RAM · 100 GB NVMeR$ 99Site e projeto pequeno
Performance6 vCPU · 12 GB RAM · 150 GB NVMeR$ 169Produção e múltiplos serviços
Ultra8 vCPU · 20 GB RAM · 200 GB NVMeR$ 269Cargas maiores e mais margem
Prova técnica: no benchmark publicado da VM Performance, medimos 1.855 ev/s em 6 threads, 288 ev/s em 1 thread, 11.858 MiB/s de memória e 338 MB/s de escrita sequencial, com teste direto na VM e sem Cloudflare.
Escolher Performance Falar no WhatsApp

Valores mensais exibidos para referência. A renovação segue o ciclo e o preço vigente informado no checkout antes da contratação.

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.

Perguntas Frequentes

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.

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.

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.

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.

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 é 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.

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.

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 (6)

4.3
★ ★ ★ ★ ★
6 avaliações
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.