2

Pitch: eu só queria um painel pra minha VPS, acabei escrevendo um PaaS

Saí da Railway porque precisava de mais estabilidade e não podia pagar mais por isso. Aluguei uma VPS, e de repente tudo era problema meu.

Fui procurar um painel. Os que resolveriam isso, tipo EasyPanel e Dokploy, têm free tier que não cobria o meu caso, e nenhum deles trazia de fábrica a peça que pra mim era essencial, que é um registry Docker próprio rodando na minha máquina.

Então construí o meu. Chama Cubeship.

O que ele é

Um PaaS que roda dentro da sua VPS, mais ou menos como o Dokploy ou o Coolify. Um comando numa máquina limpa, como root, e sobe tudo.

O instalador coloca o Docker se a VPS não tiver, sobe dois containers e imprime o endereço pra abrir e o token pra reivindicar a instância. Tudo que o Cubeship roda é container, o próprio daemon incluído, e nada mais é instalado no host.

A diferença que eu persegui é de ambição. Ele não quer simplificar só o seu deploy, quer ser a sua infraestrutura inteira:

  • Registry Docker embutido. O push é o deploy, e a imagem nunca sai da sua máquina.
  • Certificados Let's Encrypt emitidos e renovados sem configurar nada. Sem domínio ele se dá um endereço sslip.io, então HTTPS funciona numa caixa com cinco minutos de vida.
  • DNS gerenciado. Ele escreve os registros no seu Cloudflare ou Route 53.
  • Postgres, MySQL, MariaDB, Redis e MongoDB em um clique, e as variáveis de conexão chegam no ambiente do app sozinhas.
  • Backup agendado direto pra um bucket fora da máquina, sem passar pelo disco local, e restore na mesma tela. A instância faz backup dela mesma também.
  • Um segundo servidor e vira cluster. A máquina nova liga pra casa, não publica porta nenhuma, e todo domínio continua chegando numa única porta de entrada.

A meta de longo prazo é abstrair a VPS até você esquecer que está numa VPS.

A parte que eu mais gostei de escrever

O Cubeship tem um endpoint MCP, na mesma API e com a mesma chave. Você aponta o Claude Code, o Cursor ou o que você usar pra lá e ele cria o projeto, faz o deploy, lê o log, sobe um banco e liga no app. A instância inteira, sem abrir o dashboard.

Ele é stateless de propósito. O servidor é reconstruído por request, então as ferramentas fecham em cima do caller daquela chamada e nenhuma sessão é reaproveitada entre usuários.

E tem dois limites que eu escrevi de propósito e não pretendo mover:

  1. Nenhuma ferramenta do MCP lê ou define uma senha. O agente provisiona o banco, anexa no app e nunca vê a credencial, porque ela chega no container pelo ambiente.
  2. Nenhuma ferramenta mexe no teto de CPU e memória de um container. Isso fica com uma pessoa.

Dá pra deixar uma IA cuidando da sua infra sem entregar nenhum segredo seu.

Onde está

Foram 433 commits em nove dias, e cada uma dessas peças foi um problema que eu subestimei. Está na 0.6.0, Apache-2.0, e sem telemetria de nenhum tipo.

Site e documentação: https://cubeship.dev

Código: https://github.com/cubeshipd/cubeship

Se alguém aqui rodar o instalador numa VPS limpa, eu quero muito saber onde quebrou.

Carregando publicação patrocinada...