コンテンツにスキップ
use-cases / onboard-developer-one-link / hero
スナップショット · コンテナ コピー

1 つのリンクで開発者をオンボード

開発者ベースラインを 1 度スナップショットします。それ以降、新規入社者は全員 1 つの URL を取得します。手元のどんなノートパソコンでもクリックすれば、ベースラインのクローンである新しいコンテナの中にいます — コードベース、依存関係、環境変数、シードされたデータベース、ブラウザ内の VSCode。5 分でコードを書いています。セットアップではありません。

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

URL がどうやって動作するノートパソコンになるのか

Hoody スナップショットはコンテナ全体をキャプチャします — ディスク上のファイル、ユーザーアカウント、systemd ユニットファイル、シードされたデータベース。コンテナコピーがそのスナップショットを開発者ごとに新しいコンテナにクローンします。メールのリンクがその新しいコンテナへのルートです。

POST /api/v1/containers/[baseline_id]/copy4 ステップ · 1 回の API コール
01

ベースラインを 1 度スナップショット

POST .../snapshots

リファレンスコンテナの名前付きスナップショットを取得 — エイリアスを dev-baseline にします。ベースラインが変わったら再実行します。

02

新規入社者ごとにコピー

POST .../copy [ source_snapshot ]

1 回の API コールでスナップショットを新しい開発者のプロジェクト下の新しいコンテナにクローンします。

03

彼らの URL がコンテナ

alex-laptop.containers.hoody.com

コンテナは最初から公開 URL を持って出荷されます。Slack に貼り付けます。彼らはクリックします。中にいます。

04

ターミナル、ファイル、ブラウザ

ttyd · webview · ssh

hoody_kit がターミナル、ファイルブラウザ、ブラウザ内 VSCode のエンドポイントを自動的に起動します。ノートパソコンにインストールするものは何もありません。

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

2 つの POST と 1 つの URL。ベースラインスナップショットが契約、コンテナコピーがコンストラクター、結果のサブドメインがウェルカムメールに届くものです。プロビジョニングするバスティオンも、クローンする dotfiles リポジトリも、交渉する Docker Desktop ライセンスもありません。

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

ステップの壁から 1 つの文へ

すべてのリポジトリにかつて同梱されていた README には失敗モードも含まれていました。半分の行は、新規入社者がたまたま持ってきたノートパソコンへの回避策でした。ノートパソコンが画面から消え — 環境がそこにあるため、URL は短くなります。

README.md · setup47 STEPS
  • 01Xcode CLI ツールをインストール
  • 02Homebrew をインストール
  • 03brew install node@20 pnpm postgres@15
  • 04.zshrc に PATH 行を追加
  • 05createdb acme_dev
  • 06seed-data リポジトリをクローン
  • 07ローダーを実行 (25 分かかる)
  • 08#devops でステージングの .env を聞く
  • ...間違える 39 行がさらに
初回コミットまでの平均時間2 日
BECOMES
ウェルカムメール · v21 LINE

TO: alex@acme.com · SUBJECT: WELCOME

チームへようこそ。コードを書く準備ができたらこれを開いてください:

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

— infra@acme

初回コミットまでの時間5 分
use-cases / onboard-developer-one-link / dayone
DAY ONE · ALEX'S MONDAY

かつて 47 ステップだった README が、今や 1 行になりました: この URL を開いてください。

08:59 — ノートパソコンを開き、リンクをクリップボードに09:04 — 初回コミット完了
時計が示す初回コミット5 分 · インストール 0
0108:59URL が受信箱に届くノートパソコンのセットアップなし
0209:00URL を開く — もう中にいるコンテナがワークスペース
0309:04初回コミット完了設定ではなく、コードを書く
FILESコードベースは既にクローン済み、ブランチは main
DEPSNode、pnpm、Postgres、Redis 事前インストール済み
DATAシードデータベース読み込み済み、ステージング .env 注入済み
use-cases / onboard-developer-one-link / replaces

これが置き換えるもの

これらのそれぞれが新しい開発者のノートパソコンに動作する環境を届けようとしています。それぞれセットアップ、ライセンス、または DIY の接着剤がかかります。スナップショット URL はそのどれもかかりません — 環境はすでに動いています。

  • GitHub Codespacesシート単位の課金、メンテする devcontainer.json
  • Gitpodワークスペース単位の価格、デバッグする .gitpod.yml
  • Daytona実行するセルフホストコントロールプレーン
  • Coder世話するテンプレートとプロビジョナーインフラ
  • Devcontainer セットアップノートパソコンごとの Docker Desktop ライセンス + VSCode のダンス
  • ローカル開発2 日間の brew、パス、#devops での .env 依頼
  • オンボーディングドキュメント誰かがベースラインを更新した瞬間にずれる 47 ステップ
use-cases / onboard-developer-one-link / cta

README のセットアップ手順を出荷するのをやめてください。URL を出荷してください。

コンテナコピーガイドを読む
use-cases / onboard-developer-one-link / related

他のユースケースを読む