
Sessenta contêineres em um servidor
Uma caixa bare-metal executa dezenas a centenas de contêineres Hoody. KSM e BTRFS dedup fazem o custo marginal próximo a zero.
hoody-pipe já serve um formulário web de upload em cada caminho que ele controla. Arraste um arquivo na página, os bytes fluem pelo pipe e chegam ao stdin do seu script. Você escreveu zero linhas de código de upload.
Arraste um arquivo ou clique para enviar
qualquer tamanho · qualquer tiposem código de upload, sem bucket S3, sem URLs pré-assinadas
hoody-pipe roda uma UI web na raiz do caminho e um fallback sem JavaScript em /noscript. Ambos transmitem bytes multipart direto para quem estiver lendo o mesmo caminho. Seu script lê o pipe — é toda a fiação que existe.
https://pipe.hoody.com/uploadQualquer caminho que você não tenha reservado vira um pipe. A URL é a página de upload.
GET /upload — formulário de upload servido automaticamenteHoody serve o formulário para você: zona de drop, parser multipart, nonce CSP, tudo incluso. /noscript existe para navegadores restritos.
PUT /api/v1/pipe/upload (multipart/form-data)A primeira parte multipart é desempacotada e transmitida ao receptor. Sem staging no servidor, sem arquivos temporários.
curl …/api/v1/pipe/upload | python process.pyReceptor e remetente se conectam dentro de um TTL de 5 minutos. O script não sabe que está atrás de uma página web — ele apenas lê os bytes.
O pipe é o servidor de upload. Seu script é o receptor. Não há um terceiro processo — sem Lambda, sem API gateway, sem função de cola — entre a zona de drop e seu stdin.
Cada item abaixo é um dia normal de trabalho para construir um uploader pontual. O pipe já vem com tudo isso.
A UI do pipe renderiza uma área de arrastar e soltar, um fallback de clique-para-escolher e feedback de progresso. /noscript serve um formulário HTML puro para navegadores sem JS — mesmo caminho, sem código extra.
Quando o navegador faz POST de multipart/form-data, o servidor extrai a primeira parte e a transmite. Sem buffering do corpo, sem limpeza de arquivos temporários, sem biblioteca multipart de dez linhas.
O formulário vem com um nonce CSP novo. Tipos de conteúdo perigosos (text/html, image/svg+xml, application/javascript) são reescritos como text/plain antes de chegar até você. OPTIONS lida com o preflight cross-origin.
Rode seu script antes de alguém fazer upload, ou depois — o pipe segura a conexão por até 5 minutos de TTL até que ambos os lados estejam presentes. A contagem de receptores (n) é configurável até 256.
Lado a lado: o pipeline de upload que você teria construído, versus a URL que você aponta para seu script.
Você escreveu o script. O Hoody escreveu o formulário de upload.
process.py — lê stdin, faz o trabalho
while read chunk; do …a página, o formulário, o parser, a segurança
GET /upload — servido automaticamenteOs padrões que devs usam quando precisam de um upload de arquivo pontual. Cada um cobra um imposto de setup — buckets para provisionar, middleware para instalar, chaves de assinatura para rotacionar. O pipe é uma URL.
Escolha um caminho. Leia o pipe. O formulário de upload já está no ar nessa URL.