Lizard で SvelteKit をデプロイする
Lizard 向けの SvelteKit サーバーをビルドするには、@sveltejs/adapter-node を使用します。これにより build/ が生成され、port 3000 で node build によって起動されます。adapter は明示的にインストールして設定してください。adapter-auto をまだ使用している scaffold では、Node のデプロイ先は確立されません。
まずは、このレシピで使用する設定とファイルを含む完全なソース例から始めてください。
adapter を設定する
npm install --save-dev @sveltejs/adapter-nodesvelte.config.js では、既存の preprocess やその他の設定はそのままにしつつ、kit.adapter を Node adapter に設定します。
import adapter from '@sveltejs/adapter-node';
export default {
kit: { adapter: adapter() },
};使用する予定のデプロイ adapter だけを残してください。特に、未使用の @sveltejs/adapter-static 依存関係があると、設定で adapter-node を import していても、現在の detector では static の経路が選ばれることがあります。
| 設定 | 値 |
|---|---|
| ビルド | npm run build、通常は vite build |
| Output | build/ |
| ランタイム | node build |
| Host and port | HOST=0.0.0.0、PORT=3000 |
| サービスポート | 3000 |
本番サーバーをテストする
npm ci
npm run build
HOST=0.0.0.0 PORT=3000 ORIGIN=http://localhost:3000 node buildサーバーレンダリングされたページを開き、アプリに form action がある場合は送信してください。このガイドで使用する検出では、adapter のデフォルト出力パスをそのまま維持してください。
デプロイして公開 origin を設定する
CLI setup の後:
lizard init --name sveltekit-app
lizard add --service web
lizard up --service web --port 3000
lizard ps --jsonORIGIN には、デプロイ出力にある正確な公開 HTTPS origin を、パスなしで設定します。たとえば、このプレースホルダーを実際の URL に置き換えます。
lizard secrets set ORIGIN=https://YOUR_PUBLIC_HOST --service web訪問者が使用する origin がカスタムドメインであれば、代わりにそちらを使用してください。変数変更後に forms を再確認してください。複数の許可された origins や proxy 由来の URL を使う場合は、SvelteKit Nodeサーバーガイド を読み、信頼する proxy headers を意図的に設定してください。
検証とトラブルシュート
lizard logs --build --service web --json と lizard logs --service web --json で build と runtime のログを確認します。内部ルートを直接開き、form を送信し、存在しないルートをリクエストしてください。
forms で cross-site submission error が報告される場合は、セキュリティチェックを無効にする前に ORIGIN を確認してください。node build がサーバーを見つけられない場合は、有効な adapter と出力パスを確認してください。lizardpack の経路を使うには、service command overrides は未設定のままにしてください。
Static SvelteKit サイト
必要なすべてのページを prerender できるアプリでは、@sveltejs/adapter-static、そのデフォルトの build/ 出力、および service port 80 を使用できます。その出力では server actions や request-time endpoints は実行できません。必要な routes に対して prerendering を設定してください。パッケージをインストールするだけでは不十分です。
@sveltejs/adapter-static をインストールし、svelte.config.js の adapter import を置き換えます。
import adapter from '@sveltejs/adapter-static';
export default {
kit: { adapter: adapter() },
};すべての routes を生成できるサイトでは、これを src/routes/+layout.js に追加します。
export const prerender = true;
export const trailingSlash = 'always';未使用のデプロイ adapter は dependencies から削除してください。npm run build を実行し、build/ に必要な各ページが含まれていることを確認します。デフォルト出力では、service command overrides は未設定のままにし、port 80 で新しい service をデプロイしてください。新しい build は生成された HTML を配信し、存在しないページには HTTP 404 を返します。nginx に server レシピの port 3000 を再利用しないでください。
生成された HTML routes と SPA fallback のどちらを選ぶかは、静的ルートと404エラー を参照してください。フレームワークのオプションと制限については、SvelteKit静的アダプター を参照してください。
2026年9月9日のデプロイ確認とその制限については、テスト済みバージョンとクラウド結果 を参照してください。