コンテンツへスキップ
NotroTail

ビルドとデプロイ

Netlify・Vercel へのデプロイ方法と、ビルドキャッシュの仕組みを解説します。

notro-tail は Astro の静的ビルドをそのまま使うので、Astro をサポートするホスティングサービスならどこでもデプロイできます。

ローカルビルド

npm run build

ビルド成果物は apps/notro-tail/dist/ に出力されます。astro check による型チェックもビルド時に自動実行されます。

Netlify

リポジトリルートの netlify.toml を使えば最小設定でデプロイできます。

[build]
  base    = 'apps/notro-tail'
  command = 'npm run build'
  publish = 'dist'

[build.environment]
  NODE_VERSION = '22'

Netlify の「Environment variables」に NOTION_TOKENNOTION_DATASOURCE_ID を追加してください。

Vercel

Vercel では「Root Directory」を apps/notro-tail に設定し、環境変数を追加するだけで動作します。

キャッシュの仕組み

notro-tail は last_edited_time をダイジェストとして Content Collections のストアに保存します。前回ビルド以降に編集されたページだけ再取得するため、記事数が増えてもビルドが遅くなりにくい設計です。

再取得条件説明
last_edited_time が変わったNotion で編集された
プリサインド S3 URL が含まれる画像 URL が期限切れになる前に更新
ページが削除されたストアから削除

画像の最適化

Notion の画像は期限付き S3 プリサインド URL が使われます。notro-tail のカスタム画像サービスが X-Amz-* クエリパラメーターをキャッシュキーから除去するため、ビルドをまたいで Sharp のキャッシュが再利用されます。