Pular para o conteúdo
use-cases / onboard-developer-one-link / hero
SNAPSHOTS · CONTAINER COPY

Faça o onboarding de um dev com um link

Tire um snapshot do seu baseline de desenvolvedor uma vez. A partir daí, cada nova pessoa contratada recebe uma URL. Ela clica em qualquer notebook que tiver e está em um contêiner novo, clone do baseline — codebase, dependências, vars de env, banco com seed, VSCode no navegador. Escrevendo código em cinco minutos. Não configurando.

use-cases / onboard-developer-one-link / mechanism

Como uma URL vira um notebook funcional

Os snapshots Hoody capturam um contêiner inteiro — arquivos no disco, contas de usuário, arquivos de unidade systemd, banco com seed. O container copy clona esse snapshot em um contêiner novo por desenvolvedor. O link no e-mail é a rota para esse contêiner novo.

POST /api/v1/containers/[baseline_id]/copy4 PASSOS · UMA CHAMADA DE API
01

Snapshot do baseline uma vez

POST .../snapshots

Tire um snapshot nomeado do seu contêiner de referência — apelide-o de dev-baseline. Reexecute quando o baseline mudar.

02

Copia em cada nova contratação

POST .../copy [ source_snapshot ]

Uma chamada de API clona o snapshot em um contêiner novo dentro do projeto da nova pessoa contratada.

03

A URL deles é o contêiner

alex-laptop.containers.hoody.com

O contêiner já vem com uma URL pública desde o início. Cole no Slack. A pessoa clica. Está dentro.

04

Terminal, arquivos, navegador

ttyd · webview · ssh

O hoody_kit acende automaticamente os endpoints de terminal, navegador de arquivos e VSCode no navegador. Nada para instalar no notebook.

onboard-alex.sh
# 1. Snapshot the baseline (do this once, refresh when you upgrade Node)
curl -X POST "$API/api/v1/containers/$BASE/snapshots" \
  -H "Authorization: Bearer $TOKEN" \
  -d '[ "alias": "dev-baseline" ]'

# 2. Copy the snapshot into a fresh container for the new hire
curl -X POST "$API/api/v1/containers/$BASE/copy" \
  -H "Authorization: Bearer $TOKEN" \
  -d '[
    "target_project_id": "$ACME",
    "name": "alex-laptop",
    "source_snapshot": "dev-baseline",
    "copy_firewall_rules": true,
    "copy_network_rules": true
  ]'

# 3. The response carries the container URL. Email it. That's onboarding.
# => https://alex-laptop.containers.hoody.com

Dois POSTs e uma URL. O snapshot do baseline é o contrato; o container copy é o construtor; o subdomínio resultante é o que cai no e-mail de boas-vindas. Sem bastion para provisionar, sem repo de dotfiles para clonar, sem licença do Docker Desktop para negociar.

use-cases / onboard-developer-one-link / contrast

De um muro de passos a uma única frase

O README que costumava vir com cada repo carregava também os modos de falha. Metade das linhas eram contornos para o notebook que a nova pessoa contratada trouxe. A URL é mais curta porque o notebook não está mais na jogada — o ambiente está.

README.md · setup47 PASSOS
  • 01Instalar Xcode CLI tools
  • 02Instalar Homebrew
  • 03brew install node@20 pnpm postgres@15
  • 04Adicionar linhas de PATH ao .zshrc
  • 05createdb acme_dev
  • 06Clonar o repo de seed-data
  • 07Rodar o loader (leva 25 min)
  • 08Pedir o .env de staging em #devops
  • ...Mais 39 linhas que você vai errar
TEMPO MÉDIO ATÉ O PRIMEIRO COMMITDOIS DIAS
VIRA
o e-mail de boas-vindas · v21 LINHA

PARA: alex@acme.com · ASSUNTO: BEM-VINDA

Bem-vinda ao time. Abra isto quando estiver pronta para escrever código:

https://alex-laptop.containers.hoody.com

— infra@acme

TEMPO ATÉ O PRIMEIRO COMMITCINCO MINUTOS
use-cases / onboard-developer-one-link / dayone
PRIMEIRO DIA · A SEGUNDA DA ALEX

O README que tinha 47 passos virou uma linha: abra esta URL.

08:59 — notebook aberto, link no clipboard09:04 — primeiro commit empurrado
Primeiro commit, pelo relógioCINCO MINUTOS · ZERO INSTALAÇÕES
0108:59URL chega na caixa de entradasem setup de notebook
0209:00Abre a URL — já está dentroo contêiner é o workspace
0309:04Primeiro commit empurradoescrevendo código, não configurando
ARQUIVOSCodebase já clonado, branch em main
DEPSNode, pnpm, Postgres, Redis pré-instalados
DADOSBanco com seed carregado, .env de staging injetado
use-cases / onboard-developer-one-link / replaces

O que isso substitui

Cada um destes tenta entregar um ambiente funcional ao notebook de uma pessoa nova. Cada um custa setup, licença ou cola DIY. Uma URL de snapshot não custa nada disso — o ambiente já está rodando.

  • GitHub CodespacesCobrança por assento, devcontainer.json para manter
  • GitpodPreço por workspace, .gitpod.yml para debugar
  • DaytonaPlano de controle auto-hospedado para rodar
  • CoderTemplates e infraestrutura de provisionador para vigiar
  • Setup de devcontainerLicença Docker Desktop + dança VSCode por notebook
  • Desenvolvimento localDois dias de brew, paths, pedidos de .env em #devops
  • Documentos de onboarding47 passos que ficam desatualizados quando alguém atualiza o baseline
use-cases / onboard-developer-one-link / cta

Pare de mandar passos de setup no README. Mande uma URL.

use-cases / onboard-developer-one-link / related

Leia os outros