メインコンテンツへスキップ
Enclave

ベアメタル / VPS デプロイ(Docker なし)

Node.js 20+ と nginx があれば動きます:バックエンドは npm ci + build 後に node か pm2 で常駐させ、フロントエンドは静的ファイルにビルドして nginx に渡します。リポジトリ付属の nginx 設定テンプレートはプレースホルダー 2 つを置換すればそのまま使えます。

Docker を導入したくない、あるいはプロセスや nginx を細かく制御したい人向けの手順です。フロントエンドとバックエンドは独立した 2 つのもの:バックエンドは 1 つの Node プロセス、フロントエンドは静的ファイルの集まりです。

  1. 1.ツールチェーンを揃える

    必要なのは Node.js 20+、pnpm 8.15.4(リポジトリの packageManager で固定されたバージョン。corepack enable で自動取得を推奨)、nginx(静的サイト配信 + HTTP リバースプロキシができる Web サーバーなら何でも可)。better-sqlite3 のコンパイルには python3、make、g++ が必要——Linux は build-essential をインストール、macOS は xcode-select --install を実行。

  2. 2.バックエンドを起動する(ポート 3000)

    リポジトリルートでまず pnpm install --frozen-lockfile(workspace パッケージ)。次に api/ に入り npm ci(api は npm + package-lock.json を使い、pnpm workspace には含まれません)、npm run build を実行し、node dist/main で起動(本番では pm2 start dist/main を推奨)。api/.env は事前に用意しておくこと。SQLite は DATABASE_PATH の位置に自動作成されます。curl http://127.0.0.1:3000/health が 200 を返せば OK。

  3. 3.フロントエンドをビルドして配信する(ポート 5180)

    pnpm --filter @yinjie/app build を実行すると成果物は apps/app/dist/ に出ます。リポジトリ付属の nginx テンプレートは apps/app/nginx/default.conf.template:その中の APP_API_UPSTREAM プレースホルダーを http://127.0.0.1:3000 に置換し、リッスンポートと静的ルートを実際の値に変更して、nginx -t が通ったらリロードすればそのまま使えます。テンプレートには /api、/socket.io のプロキシと SPA フォールバックが含まれています。

  4. 4.運用エンドポイントを確認する

    X-Admin-Secret ヘッダーを付けて /api/admin/stats にアクセスすると 200 + JSON が返るはずです。401 が返る場合はシークレットが間違っているか、リバースプロキシが X-Admin-Secret ヘッダーを落としています(対処は「リバースプロキシと HTTPS」を参照)。

関連する質問

  • Enclave はセルフホストできますか?難しいですか?
    できます。難易度は普通の web サービスを動かすのと同程度です。docker compose を使ったことがあれば、3 ステップで自分のインスタンスを持てます。リポジトリをクローンし、.env をコピーし、docker compose up するだけ。API・フロントエンド・データベース・ベクトルインデックスはすべて自分のマシン上で動きます。
  • Enclaveをセルフホストするには何が必要ですか?GPUは必要ですか?
    必ずしもGPUは必要ありません。クラウドモデルAPI(OpenAI、Anthropicなど)を使うなら、Dockerが動く普通のサーバーや家庭用マシンで十分です——推論はクラウドで行われ、本機はアプリとデータベースを動かすだけです。ローカルモデル(Ollama / vLLM)でオフライン推論をしたい場合にのみ、相応のVRAMと計算リソースが必要になります。
  • Enclaveはどんなデータベースを使いますか?自分で構築する必要がありますか?
    別途構築する必要はありません。Enclaveはデータベースとベクトルインデックスを内蔵しており、docker composeで立ち上げる際に一緒にローカルで動きます。ドキュメント・会話・記憶はすべて構造化されてその中に保存され、セルフホストモードではこれらのデータはあなた自身のマシン上にのみ存在します。

関連コンテンツ

セルフホスティングドキュメントへ戻る
共有XTelegramLINEWeibo
ベアメタル / VPS デプロイ(Docker なし) · Enclave