Openship: a alternativa open source para Coolify e Vercel que faz deploy no seu próprio servidor

Openship é uma plataforma de implantação open source (Apache 2.0) que faz o mesmo que Vercel ou Coolify em um servidor que você controla: constrói seu app, o implanta, atribui um domínio e emite o certificado HTTPS.

Em 27 de setembro de 2026, o projeto publicou a v0.8.0, seu maior lançamento até agora. Os apps e os bancos de dados já podem escalar em vários de seus próprios servidores, e o servidor MCP cresceu para que um agente de programação como Claude Code opere suas implantações dentro dos limites que você define. Em 28 de setembro de 2026, o repositório soma 13.300 estrelas e 1.200 forks no GitHub, cerca de três meses depois de seu primeiro release candidate.

O que é Openship?

Openship é um PaaS auto-hospedado: um plano de controle (control plane) que pega uma origem e percorre todo o caminho até produção. Essa origem pode ser um repo do GitHub, uma pasta local ou um artefato já compilado. O pipeline tem cinco passos:

  1. Detecta. Lê seu package.json, a configuração do framework, os lockfiles e qualquer docker-compose.yml. Com isso deduz a stack, o gerenciador de pacotes, os comandos de build e inicialização, e a porta. Você não precisa de nenhum arquivo de configuração; um openship.json sobrescreve o que deduza quando quiser controle.
  2. Constrói. Gera uma imagem Docker ou um lançamento sem contêiner (bare). A configuração resolvida fica congelada em um snapshot, então os redeploys e os rollbacks executam exatamente o que foi implantado.
  3. Executa. O app roda como contêiner publicado apenas em loopback, nunca em uma porta pública, ou como processo supervisionado do host.
  4. Roteia e assegura. Uma edge do OpenResty escreve a rota de reverse proxy para seu domínio e emite um certificado do Let’s Encrypt. Isso ocorre depois que o app já está ativo. Por isso um problema de DNS ou de certificado aparece como “ação necessária” em vez de quebrar a implantação.
  5. Push-to-deploy. Um webhook do GitHub executa novamente o pipeline em cada push para a branch que você segue. Em um monorepo, reconstrói apenas os serviços que esse push tocou.

Ao redor desse pipeline, Openship gerencia várias coisas que normalmente são serviços separados:

  • Bancos de dados: Postgres, MySQL, MongoDB e Redis.
  • Domínios: Let’s Encrypt automático, incluindo wildcards.
  • CDN.
  • E-mail: um servidor SMTP integrado com DKIM, SPF e DMARC.
  • Backups: programados, com restauração em um clique.
  • Monitoramento: logs ao vivo, métricas de contêineres e geografia de visitantes.

O projeto afirma que seu monitoramento adiciona cerca de 1,4 µs por requisição e zero escritas no banco de dados por requisição. É uma cifra do próprio projeto.

Suporta Node, Python, Go, Rust, PHP, Ruby, Java, .NET, Docker e monorepos. Você também pode implantar seus arquivos do Docker Compose tal como estão.

O que traz Openship 0.8?

A v0.8.0 adiciona clusters. Você conecta servidores, até mesmo de provedores diferentes, através de uma rede privada que você já tenha ou uma rede WireGuard que Openship configura para você. Depois, Openship instala k3s por baixo e une esses servidores em um cluster. Sobre esse cluster você pode:

  • Executar um app ou um worker com entre 1 e 100 réplicas. Mudar o número de réplicas reutiliza a imagem ativa sem reconstruir. Kubernetes substitui as instâncias caídas e envia o tráfego para as que continuam saudáveis.
  • Executar PostgreSQL standalone ou em cluster, com réplicas, recuperação do primário e endpoints separados de leitura/escrita e de apenas leitura.
  • Executar Redis standalone ou como cluster com shards.
  • Montar volumes compartilhados que instâncias em servidores diferentes podem ler e escrever.

O lançamento também adiciona um SDK para Node.js (o pacote openship, Node 22 ou superior) e releaseCommands. São comandos, por exemplo migrações de banco de dados, que são executados após o build e antes de ativar a nova versão. Se um falhar, a nova versão não é ativada.

As notas do lançamento são explícitas sobre o que ainda não inclui:

  • Auto-scaling baseado em CPU ou tráfego.
  • Scaling de apps do Compose.
  • Aprovisionamento automático de servidores.
  • Adicionar servidores a um cluster em execução.

As réplicas são definidas manualmente.

Openship é grátis?

Sim, o auto-hospedagem é grátis e o README indica que não há cobrança. O código é Apache 2.0, então você pode usá-lo, modificá-lo e redistribuí-lo, até mesmo dentro de produtos comerciais e de código fechado. A opção de pagamento é Openship Cloud, um serviço gerenciado com sandboxes e auto-scaling para quem não quer operar nada.

Openship, Coolify ou Dokploy?

Os três resolvem o mesmo problema: um PaaS auto-hospedado no seu próprio VPS. Se você já usa um dos outros, testar Openship não o obriga a começar do zero. Seu assistente de migração pode adotar stacks do Docker que já rodam sob Coolify, Dokploy ou Dokku. Traz as variáveis de ambiente e as rotas, e desde a v0.8.0 também faz a transferência de domínios, reutilizando os certificados existentes.

O que Openship coloca sobre a mesa:

  • Cinco formas de gerenciar o mesmo backend: app de desktop, dashboard web, CLI, REST API e um endpoint MCP para agentes de IA.
  • Um plano de controle que não precisa estar sempre ligado: em modo desktop, Openship roda na sua máquina apenas enquanto o app está aberto e opera seus servidores por SSH.
  • E-mail próprio: um servidor SMTP integrado, sem depender de Mailgun ou SES.
  • Clusters desde a v0.8.0: réplicas, além de Postgres e Redis em cluster, sobre seus próprios servidores.

Nada disso é necessariamente exclusivo. Compare-o com a versão do Coolify ou Dokploy que você já tem em produção antes de migrar.

E frente a Vercel?

A diferença principal é quem opera a infraestrutura. Vercel é uma plataforma gerenciada. Openship roda no seu VPS, em bare metal ou em um homelab; a documentação menciona Hetzner, DigitalOcean, Linode e OVH. Suas apps são contêineres Docker padrão, então você pode movê-las entre provedores.

Se você vem do Vercel, a documentação descreve openship.json como o equivalente de vercel.json ou railway.toml. Além disso, as regras de roteamento de um vercel.json existente (URLs limpas, redirecionamentos e headers) são preservadas ao fazer deploy.

O Openship funciona no Windows ou macOS?

Parcialmente. A app de desktop funciona no macOS (Apple Silicon e Intel), Windows e Linux, mas é apenas um plano de controle. Opera servidores remotos por SSH ou Openship Cloud, e não hospeda apps públicas no seu laptop. Na v0.6.5 o projeto marcou o deploy no próprio desktop como “em breve”, e as notas da v0.8.0 não mencionam isso.

Para um servidor self-hosted, depende do sistema operacional:

  • Linux com Docker usa o “modo Compose”: a stack completa, que hospeda suas apps na mesma máquina.
  • macOS, Windows ou Linux sem Docker usam o “modo bare”: um plano de controle leve e sempre ativo que faz deploy para outros servidores ou para Openship Cloud.

Como instalar o Openship?

Primeiro você precisa decidir onde o plano de controle será executado. Depois, tudo mais funciona da mesma forma.

Uso individual: a app de desktop

Baixe o build para sua plataforma a partir da última release no GitHub: .dmg para macOS, .zip para Windows, .AppImage para Linux. Abra, conecte um servidor por SSH ou Openship Cloud, e faça deploy. Não requer login nem expõe nada publicamente, porque o plano de controle só é executado enquanto a app estiver aberta.

No Linux:

chmod +x Openship.AppImage && ./Openship.AppImage

Equipes ou servidor sempre ativo: self-hosted

Você precisa de um servidor sempre ativo para push-to-deploy, para dar acesso a um time ou para hospedar apps na mesma máquina. Instale a CLI, que inclui a API e o dashboard, e execute o assistente interativo:

curl -fsSL https://get.openship.io | sh   # ou: npm i -g openship (requer Node 22+)
openship                                   # configuração guiada, depois o painel de controle

O assistente cria o primeiro administrador, conecta seu domínio e instala o Openship como serviço de inicialização. Em máquinas headless ou de CI, pule o assistente:

openship up
openship up --public-url https://openship.example.com

Uma instância self-hosted sempre requer login.

Fazer deploy de um projeto

cd seu-projeto
openship init
openship deploy

Como conectar o Openship ao Claude Code por MCP?

Openship expõe um endpoint MCP em /api/mcp de sua instância, com a mesma rota no self-hosted e no Openship Cloud. Funciona com Claude Code, Codex, Cursor, VS Code, Claude Desktop, Windsurf e Zed. É um endpoint sem estado de HTTP Streamable que só aceita POST. Se você quer entender o que implica um servidor MCP sem estado, explicamos em MCP se torna sem estado.

No Claude Code, conectá-lo é um único comando:

claude mcp add --transport http openship https://<seu-host>/api/mcp

Uma janela do navegador se abre onde você escolhe o que o agente pode fazer. As opções são somente leitura ou controle total, sobre todos os recursos ou apenas sobre projetos, servidores e repositórios específicos. A partir daí, o agente pode listar projetos, lançar deployments, ler logs e adicionar domínios, sempre dentro desse escopo.

O interessante é o modelo de segurança. Cada chamada a uma ferramenta passa pelas mesmas verificações de autorização e permissões por recurso que um request normal à API, então MCP não é uma porta de fundo mais frouxa. As rotas de tokens, autenticação e gestão de MCP nunca podem se tornar ferramentas, então um agente não pode emitir novas credenciais para si mesmo. Além disso, cada ferramenta tem indicadores que a marcam como somente leitura ou destrutiva, para que o cliente te avise antes de executar uma chamada destrutiva.

Se você se interessa pelo aspecto de segurança de dar ferramentas a um agente, abordamos isso em MCP Gateway: a próxima grande categoria de segurança para agentes.

O que revisar antes de usar em produção?

  • Ritmo de mudanças. Em 28 de setembro de 2026, o projeto tem 14 releases em cerca de três meses. Isso indica desenvolvimento ativo, e também que detalhes desta nota podem mudar em breve.
  • Atualizar para a 0.8.0. A release executa migrações de banco de dados. Antes de atualizar, faça um backup do banco e guarde a chave de criptografia da instância (BETTER_AUTH_SECRET).
  • Instalação manual com Docker Compose. Monta o socket do Docker do host dentro do contêiner da API, o que lhe dá privilégios de nível de host. Use-a apenas em um host confiável; a CLI e a app de desktop são as rotas recomendadas.
  • Histórico de segurança. O projeto tem um processo de advisories privados com política de safe harbor, e várias releases incluíram correções de problemas reportados externamente. Mantenha sua instância atualizada.