SvelteKit アプリをデプロイする
このステップバイステップガイドでは、Railway に SvelteKit アプリをデプロイする方法を紹介します。クイックセットアップ、アダプター構成、ワンクリックデプロイ、その他のデプロイ戦略について解説します。
著者: AIイノベーションズ 阿部隼也(X / Twitter)SvelteKit アプリをデプロイする
SvelteKit は、Svelte を使用して堅牢で高性能な Web アプリケーションを迅速に開発するためのフレームワークです。
このガイドでは、4 つの方法で Railway に SvelteKit アプリをデプロイする手順を説明します。
それでは、SvelteKit アプリを作成しましょう。
SvelteKit アプリの作成
注: すでにローカルまたは GitHub に SvelteKit アプリがある場合は、この章をスキップして「SvelteKit アプリを Railway にデプロイする」へ進んでください。
新しい SvelteKit アプリを作成するには、Node がインストールされていることを確認してください。
ターミナルで以下を実行し、Vite を使用して新しい SvelteKit アプリを作成します。
npx sv create svelteapp
プロンプトは次のとおりです。
SvelteKit demo
テンプレートを選択します。- TypeScript で型チェックを追加します。
- Prettier、ESLint、Tailwind CSS を追加します。
- Tailwind CSS のプラグインは不要です。Enter キーで次へ進みます。
- 依存関係のインストールにはパッケージマネージャーとして
npm
を選択します。
svelteapp
ディレクトリに新しい SvelteKit アプリが作成されます。
SvelteKit アプリをローカルで実行
ディレクトリに cd
し、以下を実行して Vite の開発サーバーを起動します。
npm run dev
ブラウザで http://localhost:5173
を開き、アプリを確認します。/sverdle
ルートにアクセスするとデモゲームをプレイできます。
デプロイのための SvelteKit アプリの準備
まず、SvelteKit の Node アダプターを有効にします。
SvelteKit のアダプターは、ビルドされたアプリを入力として受け取り、デプロイ用の成果物を生成するプラグインです。各デプロイプラットフォームでプロジェクトを実行するために使用します。
Node アダプターをアプリに追加します。ターミナルで以下を実行します。
npm i -D @sveltejs/adapter-node
インストール後、アダプターをアプリの svelte.config.js
に追加します。
svelte.config.js
ファイルは次のようになります。
import adapter from '@sveltejs/adapter-node';
import { vitePreprocess } from '@sveltejs/vite-plugin-svelte';
/** @type {import('@sveltejs/kit').Config} */
const config = {
// プリプロセッサの詳細については、https://svelte.dev/docs/kit/integrations を参照してください
preprocess: vitePreprocess(),
kit: {
// adapter-autoは一部の環境のみをサポートしています。リストについては https://svelte.dev/docs/kit/adapter-auto を参照してください。
// お使いの環境がサポートされていない場合、または特定の環境に決定した場合は、アダプターを切り替えてください。
// アダプターの詳細については、https://svelte.dev/docs/kit/adapters を参照してください。
adapter: adapter()
}
};
export default config;
次に、package.json
に start スクリプトを追加します。
Svelte はプロジェクトを build
ディレクトリにビルドします。サーバーは既定で build/index.js
のエントリポイント実行で起動します。
package.json
を開き、node build/index.js
を start に設定します。
{
"name": "svelteapp",
"version": "0.0.1",
"type": "module",
"scripts": {
"dev": "vite dev",
"build": "vite build",
"start": "node build/index.js",
"preview": "vite preview",
"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
"check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
"format": "prettier --write .",
"lint": "prettier --check . && eslint ."
},
"devDependencies": {
"@fontsource/fira-mono": "^5.0.0",
"@neoconfetti/svelte": "^2.0.0",
"@sveltejs/adapter-auto": "^3.0.0",
"@sveltejs/adapter-node": "^5.2.9",
"@sveltejs/kit": "^2.0.0",
"@sveltejs/vite-plugin-svelte": "^4.0.0",
"@types/eslint": "^9.6.0",
"autoprefixer": "^10.4.20",
"eslint": "^9.7.0",
"eslint-config-prettier": "^9.1.0",
"eslint-plugin-svelte": "^2.36.0",
"globals": "^15.0.0",
"prettier": "^3.3.2",
"prettier-plugin-svelte": "^3.2.6",
"prettier-plugin-tailwindcss": "^0.6.5",
"svelte": "^5.0.0",
"svelte-check": "^4.0.0",
"tailwindcss": "^3.4.9",
"typescript": "^5.0.0",
"typescript-eslint": "^8.0.0",
"vite": "^5.0.3"
}
}
package.json
これでデプロイの準備は完了です。
SvelteKit アプリを Railway にデプロイする
Railway は、セットアップや好みに応じて、SvelteKit アプリをデプロイする複数の方法を提供します。
テンプレートからワンクリックデプロイ
最速で始めたい場合は、このオプションが最適です。
下のボタンから開始します。
デプロイ後はテンプレートから Eject して、ご自身の GitHub アカウントにリポジトリをコピーすることを強くおすすめします。
注: コミュニティが作成した各種 Svelte アプリのテンプレートも選べます。
CLI からデプロイ
- Railway CLI のインストール
- CLI をインストールし、Railway アカウントで認証します。
- Railway プロジェクトの初期化
- SvelteKit アプリのディレクトリで以下を実行します。
railway init
- プロンプトに従ってプロジェクト名を設定します。
- 作成後、表示されるリンクからブラウザで開きます。
- SvelteKit アプリのディレクトリで以下を実行します。
- アプリケーションのデプロイ
- 以下でデプロイします。
railway up
- アプリのファイルをスキャン・圧縮して Railway にアップロードします。ターミナルにリアルタイムのデプロイログが表示されます。
- 完了後、View logs でサービスが正常に稼働していることを確認します。
- 以下でデプロイします。
- 公開 URL の設定
- 新しいサービスの設定タブ → Networking に移動します。
- Generate Domain をクリックして公開 URL を作成します。
GitHub リポジトリからデプロイ
SvelteKit アプリを GitHub から直接 Railway にデプロイする手順です。
- Railway で新しいプロジェクトを作成
https://railway.app/dashboard
にアクセスし、新しいプロジェクトを作成します。
- GitHub からデプロイ
- Deploy from GitHub repo を選び、リポジトリを選択します。
- Railway アカウントが GitHub に未連携の場合は、連携を求められます。
- Deploy from GitHub repo を選び、リポジトリを選択します。
- アプリのデプロイ
- Deploy をクリックして開始します。
- デプロイ完了後、アプリ用の Railway サービスが作成されます(既定では非公開)。
- デプロイの確認
- 完了したら View logs でサーバーの稼働を確認します。
- 公開 URL の設定
- 設定タブ → Networking に移動します。
- Generate Domain をクリックして公開 URL を作成します。
Dockerfile を使う
- SvelteKit アプリのルートに
Dockerfile
を作成します。 Dockerfile
に以下を追加します。# Node の alpine 公式イメージを使用 # https://hub.docker.com/_/node FROM node:lts-alpine # アプリディレクトリを作成して移動 WORKDIR /app # ファイルをコンテナにコピー COPY package*.json ./ # 依存関係をインストール RUN npm ci # ローカルコードをコンテナにコピー COPY . ./ # アプリのビルド RUN npm run build # アプリの提供 CMD ["npm", "run", "start"]
- CLI または GitHub からデプロイします。
Railway は Dockerfile
を自動検出し、それを使ってアプリをビルド・デプロイします。
注: Railway は、パブリックおよびプライベートの Docker イメージからのデプロイもサポートしています。
このガイドでは、Railway の主なデプロイ方法を紹介しました。セットアップに適したアプローチを選び、SvelteKit アプリをシームレスにデプロイしましょう。
次のステップ
Railway での体験を最大限に活用するために、以下もご参照ください。
PR