Í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.
Veja a infraestrutura: VPS para NocoDB no Brasil para colocar este projeto no ar.
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 arquivodocker-compose.ymlestã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_passestã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)
Excelente comparativo de ferramentas. Ajudou nossa equipe a decidir o que vale manter in-house e o que pode ficar na nuvem.
Tutorial excelente! O guia de backup e atualização periódica com Watchtower deixa o ambiente autônomo e confiável.
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!
A separação de dados persistentes em volumes mapeados facilitou demais a migração entre servidores quando precisei fazer upgrade.
Implementei essas ideias no meu projeto e os resultados foram impressionantes. Obrigado pelo conhecimento compartilhado! Tem algum repositório GitHub com exemplos práticos?
Excelente conteúdo! Aprendi conceitos que não encontrava em outros lugares em português.
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]?
Artigo muito bem escrito e explicativo! Já compartilhei com toda a equipe da empresa.