Tutoriais de VPS
Tutorial completo para implantar o Dokploy em uma VPS (2026): Vercel/Heroku auto-hospedado, implantação automática com Git, HTTPS e backups
Instale o Dokploy em uma VPS e auto-hospede uma alternativa ao Vercel/Heroku: configuração do servidor, implantação automática com Git, HTTPS com Traefik, backups de banco de dados e Volumes, atualizações, reforço de segurança e solução de problemas comuns.

Tutorial completo para implantar o Dokploy em uma VPS (2026): Vercel/Heroku auto-hospedado, implantação automática com Git, HTTPS e backups
Se você já sabe usar Docker, mas não quer escrever o Compose à mão, configurar proxy reverso e certificados a cada publicação, o Dokploy é um PaaS auto-hospedado que vale a pena implantar em uma VPS. Ele reúne repositórios de código, builds, contêineres, domínios, HTTPS, bancos de dados, logs e backups em um único painel, sendo adequado para desenvolvedores individuais, equipes pequenas e projetos SaaS que precisam controlar o custo do servidor.
Este tutorial não se limita a fornecer um comando de instalação: também explica como escolher a configuração da VPS, por que é obrigatório verificar as portas antes de instalar, como conectar repositórios Git, como configurar domínios e HTTPS e o que é mais facilmente esquecido ao fazer backups e atualizações.
O Dokploy pode implantar repositórios Git ou projetos Docker Compose no seu próprio servidor. Você continua sendo dono da VPS, dos bancos de dados e dos contêineres; apenas delega as tarefas repetitivas de implantação ao painel.
Ele se encaixa nestes cenários:
- Você quer auto-hospedar em uma VPS uma alternativa ao Vercel, Heroku ou Railway;
- Você precisa de implantação contínua a partir do GitHub, GitLab, Gitea ou Bitbucket;
- Você executa vários sites, APIs, workers e bancos de dados em um mesmo servidor;
- Você quer visualizar de forma unificada os logs de build, o status dos contêineres, os domínios e os certificados;
- Você não quer manter Kubernetes desde o início.
Se você executa apenas um contêiner que não muda por muito tempo, uma configuração de Docker Compose para produção costuma ser mais simples. O valor do Dokploy está em múltiplos projetos, publicações frequentes e colaboração em equipe.
A recomendação oficial atual do Dokploy é de pelo menos 2 GB de memória e 30 GB de disco. Isso é apenas o ponto de partida para instalar e compilar sem problemas, não significa que todas as aplicações caibam em 2 GB.
| Escala de uso | Configuração recomendada | Cenários adequados |
|---|---|---|
| Testes e aplicações leves | 2 núcleos, 2 GB, 30 GB SSD | Sites estáticos, APIs pequenas em Node/Python, sem banco de dados pesado na mesma máquina |
| Produção comum | 2–4 núcleos, 4 GB, 60 GB SSD | 2–5 aplicações, mais um PostgreSQL ou Redis |
| Vários projetos ou builds locais | 4 núcleos, 8 GB, 100 GB NVMe | Vários serviços, builds frequentes, bancos de dados, monitoramento e backups |
Ao compilar imagens de Next.js, Java ou Rust, o uso momentâneo de memória e disco aumenta bastante. Se o orçamento for limitado, é melhor começar com 4 GB do que deixar os processos de build e os bancos de dados disputarem os últimos centenas de MB de memória. Para um método de escolha mais detalhado, consulte Como escolher a configuração da VPS.
Os sistemas de teste listados na documentação oficial incluem Ubuntu 20.04/22.04/24.04 LTS, Debian 10/11/12, Fedora 40 e CentOS 8/9. Para novas implantações, prefira uma versão Ubuntu LTS ou Debian 12 que ainda esteja dentro do período de manutenção.
Prepare uma VPS pública limpa e confirme:
- Você consegue fazer login via SSH e obter privilégios de root;
- O registro A do domínio aponta para o IPv4 público da VPS;
- As portas TCP 80, 443 e 3000 não estão ocupadas por Nginx, Caddy, Apache ou outro painel;
- O grupo de segurança do provedor de nuvem e o firewall do sistema permitem o acesso a essas portas durante a instalação;
- O disco tem pelo menos 30 GB de espaço livre.
Verifique primeiro as portas:
sudo ss -lntp | grep -E ':(80|443|3000)\b' || true
Se houver saída, primeiro determine se o serviço existente pode ser migrado. O Dokploy usa o Traefik para assumir as portas 80 e 443, então instalá-lo diretamente em uma máquina que já executa um site costuma causar conflitos de porta. Para migrações em produção, prepare primeiro uma máquina nova ou uma janela de manutenção.
Execute o script de instalação oficial em um shell de root:
curl -sSL https://dokploy.com/install.sh | sh
Se o servidor ainda não tiver Docker, o script de instalação o instala automaticamente. Quando terminar, acesse pelo navegador:
http://你的服务器IP:3000
Crie imediatamente a conta de administrador. Não exponha a porta 3000 a todas as origens por muito tempo; primeiro conclua o domínio do painel e o HTTPS, e depois feche a entrada por IP público e porta.
Se a instalação falhar, verifique primeiro:
docker version
docker info
docker service ls
docker ps
sudo ss -lntp | grep -E ':(80|443|3000)\b'
O Dokploy usa Docker Swarm. Se o servidor de nuvem tiver várias placas de rede ou a detecção automática estiver incorreta, você pode especificar explicitamente o endereço de anúncio:
curl -sSL https://dokploy.com/install.sh | sudo ADVERTISE_ADDR=你的服务器IP sh
Primeiro prepare um subdomínio dedicado para o painel, por exemplo deploy.example.com, e aponte o registro A para a VPS. Acesse as configurações de Domains do Dokploy, adicione o domínio e ative o certificado.
Depois de confirmar que você consegue fazer login normalmente em https://deploy.example.com, remova o mapeamento público de IP:3000 conforme a recomendação oficial:
docker service update \
--publish-rm "published=3000,target=3000,mode=host" \
dokploy
A ordem importa. Se você remover a porta 3000 antes de o domínio ou o certificado entrarem em vigor, poderá ficar trancado fora do painel.
No final, o firewall só precisa expor à internet pública as portas necessárias:
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
Para uma estratégia mais completa de SSH, Fail2Ban e firewall, consulte o guia de reforço de segurança para VPS.
Crie um Project no Dokploy e depois adicione uma Application. O fluxo comum é:
- Conectar GitHub, GitLab, Gitea ou Bitbucket;
- Selecionar o repositório e o branch de produção;
- Escolher o método de build, como Dockerfile, Nixpacks ou site estático;
- Informar a porta do contêiner em que a aplicação escuta;
- Adicionar as variáveis de ambiente;
- Clicar em Deploy e observar os logs de build e execução;
- Adicionar o domínio da aplicação e ativar o HTTPS.
A aplicação deve escutar em 0.0.0.0 dentro do contêiner, não apenas em 127.0.0.1. Por exemplo, uma aplicação Node deve escutar na PORT fornecida pela plataforma; caso contrário, o contêiner pode aparecer em execução, mas o Traefik não conseguirá acessá-lo.
Não envie .env, senhas de banco de dados ou chaves de API para o Git. Coloque as variáveis de produção nas configurações de variáveis de ambiente do Dokploy e diferencie variáveis de tempo de build das de tempo de execução. Após alterar variáveis, reimplante e confirme que o novo contêiner realmente carregou os novos valores.
Os domínios de Application no Dokploy são configurados dinamicamente pelo Traefik; projetos Docker Compose normalmente precisam ser reimplantados após alterar um domínio para que o Traefik leia as labels novamente.
Ordem de diagnóstico:
dig +short app.example.com
curl -I http://app.example.com
docker service ls
docker service ps 服务名
docker service logs 服务名 --tail 100
Concentre-se em confirmar quatro coisas:
- Se o DNS realmente aponta para a VPS atual;
- Se as portas 80/443 estão bloqueadas pelo grupo de segurança ou pelo UFW;
- Se a porta do contêiner está configurada com a porta real em que a aplicação escuta;
- Se o processo da aplicação escuta em
0.0.0.0.
Se você precisa entender certificados automáticos e a cadeia do proxy reverso, continue com o guia de HTTPS automático com Caddy. A implementação é diferente, mas a abordagem de diagnóstico de DNS, portas e escuta do upstream é a mesma.
"O contêiner está em execução" no painel não significa que os dados estão seguros. Você deve proteger separadamente pelo menos três tipos de dados:
- O PostgreSQL do próprio Dokploy e
/etc/dokploy; - Os bancos de dados de negócio;
- Os arquivos enviados ou dados SQLite em volumes nomeados do Docker.
Os backups do sistema do Dokploy exigem configurar primeiro um destino compatível com S3. Os backups do sistema empacotam o PostgreSQL do Dokploy e /etc/dokploy, e depois os enviam para o armazenamento de objetos. Os bancos de dados de negócio devem ter backups agendados separadamente; aplicações que usam volumes nomeados também devem ativar o Volume Backups.
Não coloque o destino dos backups no mesmo disco da VPS, ou os backups serão perdidos junto com o servidor se ele falhar. Faça um simulado de restauração pelo menos uma vez por trimestre para verificar credenciais, arquivos e etapas de restauração. Você pode aplicar diretamente a lista de verificação de simulados de backup e restauração em VPS.
O comando oficial para atualizar para a versão mais recente é:
curl -sSL https://dokploy.com/install.sh | sh -s update
Em produção, não execute uma atualização assim que a vir. Primeiro conclua os backups do sistema e do banco de dados, leia as notas da versão e escolha uma janela de baixo tráfego para atualizar. As publicações de aplicações devem ter health checks configurados; somente com eles o Docker Swarm tem uma base confiável para parar uma versão defeituosa ou executar uma reversão.
Além disso, garanta que:
- O login SSH use apenas chave, desativando o login remoto por senha e por senha de root;
- O domínio do painel tenha HTTPS ativado e a porta 3000 não fique exposta por muito tempo;
- As permissões dos membros da equipe sejam limitadas e a conta de administrador não seja compartilhada;
- Os bancos de dados não sejam mapeados diretamente para a internet pública;
- Imagens e caches de build não utilizados sejam limpos periodicamente, mas sem apagar por engano dados ainda usados pelos Volumes;
- Alertas sejam configurados para falhas de disco, memória, certificados e backups.
| Opção | Posicionamento principal | Mais adequado para |
|---|---|---|
| Dokploy | PaaS auto-hospedado, implantação com Git, Traefik, Swarm | Vários projetos, implantação contínua, servidores remotos |
| Coolify | PaaS auto-hospedado, gestão de aplicações e bancos de dados | Quem quer um painel de implantação tudo-em-um maduro |
| Portainer | Interface de gestão de Docker/Swarm | Contêineres já existentes que precisam de operação visual |
| Docker Compose | Orquestração declarativa de contêineres | Poucos serviços, poucas mudanças, manter a simplicidade |
O Portainer é mais um gerenciador de contêineres, enquanto o Dokploy e o Coolify são mais plataformas de implantação. Se você quer gerenciar diretamente Stacks, contêineres, redes e logs, leia o tutorial do painel de gestão Docker Portainer.
Não é recomendado. A recomendação oficial é de pelo menos 2 GB de memória e 30 GB de disco; com 1 GB é fácil travar ou ocorrer OOM durante os builds do Docker.
Não necessariamente sobrescreve a configuração, mas se as portas 80, 443 e 3000 estiverem ocupadas, a instalação falhará ou haverá conflitos de roteamento. Se você já tem um site em produção, prefira uma VPS nova.
O fluxo de instalação oficial atual usa Docker Swarm, portanto, ao diagnosticar, você deve verificar docker service, não apenas docker compose ps.
Sim, mas primeiro verifique o certificado de origem e o roteamento com DNS only, e depois ative o proxy para localizar problemas com mais facilidade. Não use o Cloudflare para mascarar erros de porta ou certificado da origem.
Não há resposta absoluta. Se você já usa um deles de forma estável, migrar costuma trazer menos benefícios do que melhorar backups, monitoramento e reversão. Para projetos novos, compare primeiro a integração com Git, os servidores remotos, os métodos de backup e as permissões de equipe, e depois valide com uma VPS de teste.
O que mais atrai no Dokploy não é a "instalação com um clique", mas reunir Git, builds, contêineres, domínios, certificados, bancos de dados e backups em um processo de publicação repetível. A abordagem realmente adequada para produção é: começar com uma VPS limpa de pelo menos 2 GB/30 GB, resolver primeiro as portas e o DNS, depois implantar as aplicações e, por fim, completar os backups externos, os health checks e o controle de acesso.
Se você pretende executar vários projetos a longo prazo, escolha diretamente 4 GB de memória e disco NVMe, e faça um simulado de restauração do Dokploy a partir de um backup no S3 antes de colocar seu primeiro negócio no ar.