AI VPS Guide

DifyをVPSでセルフホストする方法

更新日  情報の最終確認日

目次
  1. 必要なスペック
  2. なぜメモリが必要なのか
  3. 手順(公式のDocker Compose)
  4. 公開するときの重要な注意
  5. ConoHa VPSのテンプレートを使う場合
  6. ConoHa VPSのプランで考える

Difyは、LLMを使ったアプリを作るためのプラットフォームです。セルフホストにすると、自分のVPSで常時動かせます。ただし、Difyは多くのコンテナを同時に動かす構成なので、VPSのメモリ選びがほかのツールより重要です。この記事は、Dify公式ドキュメントとConoHa公式ドキュメントの記載を確認してまとめたものです。

必要なスペック

  • Dify公式の最小システム要件は、CPU 2コア以上・RAM 4GiB以上。
  • Dify公式によれば、Linuxで必要なのは Docker 19.03以上、Docker Compose 2.24.0以上。
  • Dify公式によれば、DifyにはDocker Compose 2.24.0以降が必要(docker compose version で確認)。
  • ConoHa公式の最小システム要件(Dify):CPU 2コア以上・メモリ 最小4GB/推奨8GB以上・ディスク 20GB以上。

ConoHa側は、最小に加えて推奨も示しています。

なぜメモリが必要なのか

  • Dify公式によれば、依存コンポーネントは weaviate・db_postgres・redis・nginx・ssrf_proxy・agent_ssrf_proxy・sandbox・local_sandbox。

アプリ本体に加えて、データベースやキャッシュ、ベクトルデータベース、サンドボックスなどをまとめて動かすので、メモリを多く使います。

手順(公式のDocker Compose)

一:Difyを取得する

git clone --branch "$(curl -s https://api.github.com/repos/langgenius/dify/releases/latest | jq -r .tag_name)" https://github.com/langgenius/dify.git

git、curl、jqが必要です。足りない場合は、インストールしてから再実行します。

二:環境ファイルを用意する

cd dify/docker
cp .env.example .env

三:コンテナを起動する

docker compose up -d

四:状態を確認する

docker compose ps

五:管理者アカウントを作る

Dify公式によれば、サーバー環境では、ブラウザで http://サーバーのIP/install を開いて管理者アカウントを作る。

公開するときの重要な注意

VPSで動かすと、インターネットから届く状態になります。ConoHa公式によれば、Difyは管理者アカウントの作成を終えるまで誰でもアクセスできる状態のため、作成は速やかに行う必要がある。外から届く状態にしたら、すぐに管理者アカウントを作るのが鉄則です。HTTPSの設定も、ConoHa公式は強く推奨しています。

ConoHa VPSのテンプレートを使う場合

  • ConoHaのDifyテンプレートで開放するポートは、80(HTTP・必須)、443(HTTPS・推奨)、22(SSH・任意)。

サービスの起動とHTTPSの有効化は、次のコマンドです。

/root/dify-start.sh
/root/dify-enable-https.sh -e <メールアドレス>

コマンド中の <メールアドレス> は例を示す仮の部分です。ご自身の値に置き換えてから実行してください。

ConoHa VPSのプランで考える

推奨のメモリ量が大きい点に注意が必要です。料金ページのプランは、メモリ4GBの次が12GB(間の容量のプランはない)。

メモリCPUSSD時間単価月額上限(税込)
512MB1コア30GB1.3円751円
1GB2コア100GB1.9円1,065円
2GB3コア100GB3.7円2,033円
4GB4コア100GB6.6円3,608円
12GB6コア100GB13.2円7,348円

【編集部の見解】ConoHaが示す推奨に届かせるには、メモリ4GBのプランでは足りず、次の12GBのプランを検討する形になります。まず最小要件のプランで動作を確かめ、足りなければ上げる、という進め方もあります。

確認した公式情報

この記事の数値・要件・コマンドは、次の公式ページの記載を確認してまとめています(取得日は、当サイトがそのページを取得した日です)。

この記事は、上記の公式情報を確認してまとめたものです。筆者が実際にサーバーを構築して動作を検証した内容ではありません。公式ドキュメントは更新されるため、作業の前に最新の記載をご確認ください。