Coolify: self-hosted Heroku para quem quer PaaS sem custo de cloud
1. O que é o Coolify e por que ele existe?
A promessa original do Heroku era simples: escreva seu código, faça um git push e pronto — sua aplicação está no ar. Com o tempo, porém, os custos do Heroku cresceram de forma agressiva. Um dyno básico a US$ 7/mês parece barato até você precisar de um banco de dados PostgreSQL (US$ 15/mês), Redis (US$ 15/mês) e escalar para dois dynos (US$ 14/mês). Rapidamente, um projeto simples custa US$ 50+/mês.
É nesse cenário que nasce o Coolify: uma plataforma self-hosted de deploy (PaaS) que roda no seu próprio servidor. Com ele, você obtém a mesma experiência de deploy simplificado do Heroku, mas sem pagar assinaturas mensais — apenas o custo do seu VPS.
O público-alvo do Coolify inclui desenvolvedores solo que querem hospedar múltiplos projetos pessoais, startups enxutas que precisam de controle total sobre a infraestrutura e times que desejam evitar o vendor lock-in de provedores de cloud. A ferramenta suporta deploy de aplicações Node.js, Python, PHP, Ruby, Go, Java, static sites, Docker Compose e mais.
2. Arquitetura e requisitos mínimos para rodar Coolify
A arquitetura do Coolify é surpreendentemente simples. Um servidor único roda Docker como motor de contêineres, um proxy reverso (Caddy ou Traefik) gerencia o roteamento e SSL, e um banco de dados SQLite ou PostgreSQL armazena o estado da plataforma.
Requisitos mínimos de hardware:
- VPS com 2 GB de RAM (4 GB recomendado para múltiplas aplicações)
- 2 vCPUs
- 20 GB de armazenamento SSD
- Sistema operacional Ubuntu 22.04 ou superior (ou Debian 11+)
Dependências essenciais:
- Docker e Docker Compose instalados
- Domínio próprio com DNS apontado para o IP do servidor
- Portas 80, 443 e 22 liberadas no firewall
- Acesso root ou sudo ao servidor
3. Instalação passo a passo do Coolify em uma VPS
A instalação do Coolify é feita através de um script oficial que automatiza todo o processo. Antes de executá-lo, certifique-se de que seu servidor está atualizado e que o Docker está instalado.
# Atualizar o sistema
sudo apt update && sudo apt upgrade -y
# Instalar Docker (se não estiver instalado)
curl -fsSL https://get.docker.com | sh
# Executar o script de instalação do Coolify
curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash
Após a execução, o script exibirá as credenciais de acesso ao painel web, geralmente acessível em http://seu-ip:8000. Durante o primeiro acesso, você configurará:
- Nome do servidor (ex:
coolify.meudominio.com) - Tipo de banco de dados (SQLite para testes, PostgreSQL para produção)
- Domínio base para as aplicações (ex:
*.apps.meudominio.com) - Chave de API para serviços externos (GitHub, GitLab, etc.)
# Variáveis de ambiente obrigatórias (configuradas automaticamente)
COOLIFY_APP_ID=seu-app-id
COOLIFY_SECRET_KEY=sua-chave-secreta
COOLIFY_DATABASE_URL=sqlite:///data/coolify.db
4. Deploy de aplicações: do Git ao domínio próprio
O Coolify se integra nativamente com GitHub, GitLab e Bitbucket. O fluxo de deploy é simples:
- Conecte sua conta do provedor Git no painel do Coolify
- Selecione o repositório que deseja implantar
- Configure as variáveis de ambiente e o tipo de build
- O Coolify configura automaticamente webhooks para deploy contínuo
Tipos de deploy suportados:
- Dockerfile: controle total sobre o ambiente
- Nixpacks: detecção automática de linguagem (Node.js, Python, etc.)
- Buildpacks: compatível com Heroku buildpacks
- Templates prontos: WordPress, Laravel, Next.js, etc.
Exemplo de configuração para uma aplicação Node.js:
# Configuração no painel do Coolify
Nome da aplicação: minha-api
Repositório: github.com/usuario/minha-api
Branch: main
Tipo de build: Nixpacks
Domínio: minha-api.apps.meudominio.com
# Variáveis de ambiente
NODE_ENV=production
DATABASE_URL=postgresql://usuario:senha@postgres:5432/meubanco
JWT_SECRET=seu-segredo-aqui
Após salvar, o Coolify clona o repositório, executa o build e faz o deploy automaticamente. Em cerca de 2 minutos, sua aplicação está disponível em https://minha-api.apps.meudominio.com com SSL automático.
5. Gerenciamento de serviços complementares (banco, cache, filas)
Um dos recursos mais úteis do Coolify é a adição de serviços com um clique. Você pode criar instâncias isoladas de:
- PostgreSQL — banco relacional padrão
- Redis — cache e filas
- MySQL/MariaDB — alternativa ao PostgreSQL
- MongoDB — banco NoSQL
- RabbitMQ — sistema de filas
- MinIO — armazenamento S3-compatible
Cada serviço é executado em seu próprio contêiner Docker, com volumes persistentes e rede isolada. A configuração pode ser exportada como YAML para versionamento:
# Exemplo de configuração YAML no Coolify
servicos:
postgres:
tipo: postgresql
versao: 16
recursos:
ram: 512m
cpu: 0.5
volumes:
- postgres-data:/var/lib/postgresql/data
variaveis:
POSTGRES_USER: app_user
POSTGRES_PASSWORD: senha_segura
POSTGRES_DB: minha_app
redis:
tipo: redis
versao: 7
recursos:
ram: 256m
6. Segurança, SSL e boas práticas de produção
O Coolify utiliza Caddy como proxy reverso padrão, que gera certificados SSL automaticamente via Let's Encrypt. Toda comunicação entre o usuário e sua aplicação é criptografada por padrão.
Boas práticas de segurança:
- Utilize senhas fortes para variáveis de ambiente
- Configure autenticação de dois fatores no painel do Coolify
- Isole projetos em redes Docker separadas
- Faça backup regular dos volumes e do banco de dados
Estratégia de backup automatizado:
# Script de backup via cron (adicione ao crontab)
0 3 * * * docker exec coolify-db pg_dump -U coolify coolify > /backups/coolify-$(date +\%Y\%m\%d).sql
0 4 * * * tar -czf /backups/volumes-$(date +\%Y\%m\%d).tar.gz /var/lib/docker/volumes/
7. Limitações reais do Coolify e quando evitar
Apesar de poderoso, o Coolify tem limitações importantes:
- Escalabilidade horizontal: não é Kubernetes. Para escalar, você precisa de um servidor maior ou múltiplas instâncias manuais
- Alta disponibilidade: sem balanceamento de carga ou failover automático
- Manutenção do host: você é responsável por atualizações de SO, Docker e segurança
- SLA: não há garantia de disponibilidade — depende da sua infraestrutura
Evite Coolify quando:
- Sua aplicação precisa de escalabilidade automática para múltiplas regiões
- Você não tem tempo ou conhecimento para administrar um servidor
- Requer SLA contratual com clientes (aplicações enterprise)
8. Comparação prática: Coolify vs. Heroku vs. Railway vs. Dokku
| Característica | Coolify | Heroku | Railway | Dokku |
|---|---|---|---|---|
| Custo mensal (2 apps + DB + Redis) | ~US$ 10 (VPS) | US$ 50+ | US$ 25+ | ~US$ 10 (VPS) |
| Tempo de setup | 30 min | 5 min | 10 min | 60 min |
| Controle sobre infraestrutura | Total | Limitado | Limitado | Total |
| SSL automático | Sim | Sim | Sim | Manual |
| Deploy por git push | Sim | Sim | Sim | Sim |
| Suporte a Docker Compose | Sim | Não | Parcial | Sim |
| Interface web | Excelente | Excelente | Boa | Básica |
Decisão baseada em escala:
- Projetos pessoais (1-5 apps): Coolify é a melhor relação custo-benefício
- Startups em crescimento (5-20 apps): Coolify ainda funciona, mas considere migrar para Railway se o tempo de setup for crítico
- Times pequenos com orçamento limitado: Coolify + VPS de US$ 20/mês substitui facilmente US$ 200/mês em Heroku
O Coolify não é uma bala de prata, mas para quem entende de administração básica de servidores e quer economizar centenas de dólares por mês, é uma ferramenta indispensável no arsenal DevOps.
Referências
- Documentação oficial do Coolify — Guia completo de instalação, configuração e deploy de aplicações
- Coolify GitHub Repository — Código-fonte aberto, issues e discussões da comunidade
- Coolify vs Heroku: Comparativo de custos — Análise detalhada de economia mensal para diferentes cenários
- Tutorial: Deploy de aplicação Node.js no Coolify — Passo a passo prático no DigitalOcean
- Coolify Community Forum — Fórum oficial com dúvidas, tutoriais e casos de uso reais