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:

  1. Conecte sua conta do provedor Git no painel do Coolify
  2. Selecione o repositório que deseja implantar
  3. Configure as variáveis de ambiente e o tipo de build
  4. 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