Zeltro › Uma alternativa ao DDEV que compartilha os serviços entre todos os projetos

Procurando uma alternativa ao DDEV

O DDEV dá a cada projeto a própria pilha de serviços. O Zeltro dá a todos os projetos da máquina um único conjunto compartilhado (um Postgres, um MariaDB, um Redis), mais Python ao lado de PHP e Node, e um agente de IA que sabe onde está.

O DDEV é uma boa ferramenta. É maduro, bem documentado e, para um único site em Drupal ou WordPress, faz exatamente o que promete. Se ele está funcionando para você, nada nesta página é motivo para trocar.

As pessoas costumam procurar uma alternativa por um de três motivos: as pilhas de serviços por projeto vão se somando, o projeto não é em PHP, ou agora é um agente de IA que constrói, e o ambiente precisa estar em um lugar de onde ele não consiga se desviar.

Motivo um

As pilhas se somam

Cada projeto traz o próprio contêiner de banco de dados, e eles se multiplicam a cada projeto novo.

Motivo dois

Não só PHP

O projeto não é em PHP, e o DDEV dá o seu melhor com PHP.

Motivo três

Um agente constrói

Agora é um agente de IA que constrói, e o ambiente precisa estar em um lugar de onde ele não consiga se desviar.

Um conjunto de serviços, não um por projeto#

Esta é a diferença estrutural. O DDEV e o Lando dão a cada projeto o próprio contêiner de banco de dados. É um isolamento limpo, e também são sete contêineres de Postgres quando você tem sete projetos.

O Zeltro roda um zeltro-postgres, um zeltro-mariadb, um zeltro-redis, um zeltro-mongo e um zeltro-memcached, compartilhados por todos os projetos da máquina.

7contêineres de Postgres para sete projetos, um por pilha
~100 MBde memória para cada Postgres duplicado
1zeltro-postgres, compartilhado por todos os projetos
Pilhas por projeto Zeltro
Dez projetos Dez contêineres de banco de dados Um de cada
Memória Cerca de 100 MB por Postgres duplicado Uma instância
O projeto A lendo os dados do projeto B Configuração de rede manual Mesma rede, encontra pelo nome
Acessando um projeto localhost:3001, :3002, :3003 Um endereço atribuído para você

A rede compartilhada importa mais do que parece. Todos os projetos estão nela e se encontram pelo nome de dentro de qualquer contêiner, então um app Laravel pode consultar o banco de dados de outro projeto, ou buscar dados da API de outro projeto, sem nada configurado.

Configurações do Zeltro, aba Serviços: zeltro-mariadb, zeltro-redis, zeltro-memcached e phpMyAdmin rodando, cada um com seu endereço
Um único conjunto compartilhado de bancos de dados e ferramentas que todos os projetos usam, com cada projeto tendo o próprio banco de dados e o próprio usuário neles.

A contrapartida é real e vale dizer: serviços compartilhados significam versões compartilhadas. Se um projeto precisa do Postgres 14 e outro do 17, o isolamento por projeto é de fato o modelo melhor, e o DDEV é a ferramenta melhor para esse trabalho.

Python, não só PHP e Node#

O DDEV se descreve como um ambiente local de PHP e Node.js baseado em Docker, e isso é exato: ele é excelente em PHP. O Herd é macOS e PHP. O Laragon é Windows e centrado em PHP.

O Zeltro traz três imagens base, cada uma com nginx, supervisor e todos os drivers de banco de dados já compilados. Django, FastAPI e Flask ficam ao lado de Laravel e WordPress, sem precisar de outra ferramenta.

Imagem base

PHP 8.3

Laravel, WordPress, Drupal, October CMS.

Imagem base

Python 3

Django, FastAPI, Flask.

Imagem base

Node 22

Next.js, Express e as ferramentas de build de front end.

Sem arquivo de configuração por projeto#

O Lando tem o .lando.yml. O DDEV tem o .ddev/config.yaml. O Zeltro gera o arquivo compose para você e adapta um existente, se o projeto já tiver: os serviços de banco de dados embutidos são religados aos compartilhados automaticamente, e o original é guardado como docker-compose.upstream.yaml, para que nada se perca.

Seu projetoCom ou sem arquivo compose
zeltro setupEscreve ou adapta o arquivo compose
Serviços compartilhadosBancos de dados embutidos religados a eles
Nada se perdeOriginal guardado como docker-compose.upstream.yaml
zeltro new laravel my-app        # scaffold a new project
zeltro setup existing-project    # adapt one you already have
zeltro clone work-directly https://github.com/someone/repo

Feito para um agente trabalhar dentro#

Esta parte não tem equivalente nas ferramentas mais antigas, porque elas são de antes do problema. Deixado sozinho em uma pasta, um agente de programação com IA inventa a própria infraestrutura (as próprias portas, o próprio banco de dados embutido, o próprio arquivo compose) sem ter ideia de que existem outros doze projetos na máquina.

O Zeltro dá ao agente um ambiente fixo: runtimes conhecidos, serviços compartilhados, uma rede compartilhada e um AGENTS.md em cada projeto descrevendo a URL, o banco de dados e os comandos dele, para que uma sessão nova retome o projeto sem precisar redescobri-lo.

O app Zeltro com uma sessão do Claude Code ao lado da lista de projetos, que acabou de adicionar uma caixa de busca a um app de receitas e lista os arquivos que alterou
Um agente trabalhando dentro de um projeto, com os outros listados ao lado.

O que os usuários do DDEV costumam perguntar#

O DDEV existe há mais tempoTem mais usuários e mais documentação. O Zeltro é mais novo e evolui rápido, e acrescenta o que o DDEV nunca se propôs a fazer: agentes de IA trabalhando dentro dos seus projetos, um app de desktop e 214 apps prontos.

Compartilhar serviços é um risco?É uma escolha deliberada. Cada projeto continua com o próprio banco de dados e o próprio usuário; o que ele compartilha é o servidor, então dez projetos não significam dez contêineres de MariaDB, e nada disputa uma porta.

E Drupal, TYPO3 e Magento?O DDEV tem ferramentas consolidadas para esses CMSs. O Zeltro cobre Laravel, WordPress, Drupal, October CMS, Django, FastAPI e mais de cara, e qualquer coisa com um docker-compose.yaml também roda.

Nenhuma das duas ferramentas hospeda nadaIsso é outro trabalho e, se você preferir delegar, eu coloco projetos no ar como serviço.

Perguntas

Posso rodar o Zeltro e o DDEV na mesma máquina?

Em geral, sim: eles usam nomes de contêiner diferentes, e o Zeltro dá a cada projeto o próprio endereço em vez de ocupar portas comuns. O que vale observar é qualquer coisa que já esteja usando a porta 80. Se você está migrando, o caminho mais simples é parar um enquanto testa o outro.

O que acontece com o meu docker-compose.yaml existente?

O Zeltro adapta. Os serviços de banco de dados embutidos são removidos e o app é reapontado para os compartilhados, com as configurações de conexão gravadas no .env do projeto. O seu arquivo original é guardado como docker-compose.upstream.yaml, então você sempre pode ver como ele era no começo.

Funciona no Windows?

Pelo WSL2. O Zeltro é baseado em Docker e precisa de Linux por baixo. O Laragon continua sendo a melhor resposta se você quer especificamente uma pilha nativa do Windows, sem WSL2 (mais em alternativa ao Laragon; no Mac, veja a alternativa ao Laravel Herd).

Quais versões de banco de dados ele usa?

Uma instância compartilhada de cada: MariaDB, Postgres, MongoDB, Redis e Memcached. Se um projeto fixa uma versão principal antiga, esse é o único caso em que ferramentas por projeto como o DDEV ainda levam vantagem. A maioria dos projetos roda tranquila nas versões compartilhadas.

Quanto custa?

O app Zeltro é grátis para uso pessoal, projetos de hobby e aprendizado, sem conta. Uma empresa que usa o Zeltro, inclusive para trabalhos pagos para clientes, compra uma licença comercial vitalícia uma única vez, por US$99.99. A ferramenta de linha de comando zeltro é de código aberto (MIT). À parte, você paga a sua IA: uma assinatura que você já tem, uma chave de API cobrada por uso, ou nada com um modelo local.

Experimente o Zeltro no seu próprio computador

Grátis para uso pessoal, sem conta. Crie com a IA que você já paga e fique com o app, os dados e o código no seu próprio computador.

Instalar o Zeltro Por que trazer sua própria chave

Prefere não configurar você mesmo? Eu faço para você.

Verificado em 2026-09-28. Os outros produtos mudam com frequência: se algo aqui estiver desatualizado, avise a gente e a gente corrige.