見出し画像

Dify セルフホスティング完全ガイド ~ Docker Compose を活用した導入方法

最新のWebサービスやAIツールとして注目される「Dify」を、自身の環境で安全に運用するためのセルフホスティング手法について、Docker Composeを利用した具体的な導入手順を中心に解説します。本記事では、Difyの概要からシステム要件、インストール手順、運用管理、トラブルシューティングまで、網羅的に解説します。


1. はじめに:Dify とは?

Dify の概要と特徴

Difyは、最新のAI技術を活用したWebサービスプラットフォームです。多彩なAPI連携やユーザーインターフェースを持ち、企業向けのカスタマイズや運用が可能です。クラウドサービスとして提供される一方で、セルフホスティングによりご自身の環境でのセキュアな運用を実現することができます。

セルフホスティングのメリットと背景

セルフホスティングを採用すれば、外部クラウドに頼らず、セキュリティとプライバシーを強化し、システムを柔軟にカスタマイズできます。

2. Dify セルフホスティング前提条件と環境準備

システム要件と推奨環境

Difyのセルフホスティングには、以下のシステム要件が必要です。
OS: Linux系OS(Ubuntu、CentOSなど)の最新バージョン
ハードウェア: 十分なCPU・メモリ、ストレージ容量の確保
ネットワーク: 安定したインターネット接続および内部ネットワーク環境
Docker/Docker Compose: 最新バージョンをインストール(Docker EngineとComposeプラグイン)

依存ソフトウェアと事前準備

セルフホスティング環境を整えるため、下記の準備を行います。
• DockerおよびDocker Composeのインストールと動作確認
• 必要なポートの開放(例:APIアクセス用ポート、管理用ポート)
• 環境変数の設定(例:DB接続情報、認証キー等)

3. Docker Compose を用いた Dify インストール手順

インストール前の準備手順

まず、Difyの公式リポジトリからセルフホスティング用のリソースをクローンします。

git clone https://github.com/langgenius/dify.git --branch 0.15.3

その後、プロジェクトルートにて必要な環境変数ファイル(.envなど)を用意し、各種設定を行います。

cd dify/docker

.envファイルの作成

cp .env.example .env

docker-compose.yml の設定とカスタマイズ

セルフホスティング環境を構築するためのdocker-compose.ymlファイルには、以下の主要サービスが含まれます。
APIサーバー: Difyのコア機能を提供するコンテナ
データベース: 永続化データを管理するためのDBコンテナ
その他補助サービス: 認証やキャッシュなどの補助機能

「各サービスの設定(ポート、ボリューム、環境変数など)を自身の環境に合わせて調整してください。」

コンテナの起動と動作確認

設定が完了したら、以下のコマンドでコンテナを起動します。

docker-compose up -d

起動後、各サービスのログを確認し、WebブラウザからDifyの管理画面やAPIエンドポイントにアクセスして、正しく動作しているか検証してください。

[+] Running 11/11
 ✔ Network docker_ssrf_proxy_network  Created                                                                 0.1s 
 ✔ Network docker_default             Created                                                                 0.0s 
 ✔ Container docker-redis-1           Started                                                                 2.4s 
 ✔ Container docker-ssrf_proxy-1      Started                                                                 2.8s 
 ✔ Container docker-sandbox-1         Started                                                                 2.7s 
 ✔ Container docker-web-1             Started                                                                 2.7s 
 ✔ Container docker-weaviate-1        Started                                                                 2.4s 
 ✔ Container docker-db-1              Started                                                                 2.7s 
 ✔ Container docker-api-1             Started                                                                 6.5s 
 ✔ Container docker-worker-1          Started                                                                 6.4s 
 ✔ Container docker-nginx-1           Started                                                                 7.1s

最後に起動状態をチェックします

docker compose ps

このように表示されたら無事立ち上がっています

NAME                  IMAGE                              COMMAND                   SERVICE      CREATED              STATUS                        PORTS
docker-api-1          langgenius/dify-api:0.6.13         "/bin/bash /entrypoi…"   api          About a minute ago   Up About a minute             5001/tcp
docker-db-1           postgres:15-alpine                 "docker-entrypoint.s…"   db           About a minute ago   Up About a minute (healthy)   5432/tcp
docker-nginx-1        nginx:latest                       "sh -c 'cp /docker-e…"   nginx        About a minute ago   Up About a minute             0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp
docker-redis-1        redis:6-alpine                     "docker-entrypoint.s…"   redis        About a minute ago   Up About a minute (healthy)   6379/tcp
docker-sandbox-1      langgenius/dify-sandbox:0.2.1      "/main"                   sandbox      About a minute ago   Up About a minute             
docker-ssrf_proxy-1   ubuntu/squid:latest                "sh -c 'cp /docker-e…"   ssrf_proxy   About a minute ago   Up About a minute             3128/tcp
docker-weaviate-1     semitechnologies/weaviate:1.19.0   "/bin/weaviate --hos…"   weaviate     About a minute ago   Up About a minute             
docker-web-1          langgenius/dify-web:0.6.13         "/bin/sh ./entrypoin…"   web          About a minute ago   Up About a minute             3000/tcp
docker-worker-1       langgenius/dify-api:0.6.13         "/bin/bash /entrypoi…"   worker       About a minute ago   Up About a minute             5001/tcp

4.アクセス方法

  • 管理画面へのアクセス

    • 下記URLにアクセスしユーザー名とパスワードを設定します

# Local environment
http://localhost/install

# Server environment
http://your_server_ip/install
  • Webインターフェースへのアクセス

# Local environment
http://localhost

# Server environment
http://your_server_ip

5. よくある疑問とトラブルシューティング

インストール時のエラーと解決策

セルフホスティング導入時に発生しがちなエラーとその解決方法を以下にまとめます。
環境変数の不備: .envファイルの設定漏れや誤記が原因の場合、公式ドキュメントを再確認し修正
ポート競合: 他のサービスとポートが衝突している場合、docker-compose.yml内でポート設定を見直す

6. まとめ

Dify セルフホスティングの総括

Difyのセルフホスティングは、セキュリティとカスタマイズ性を重視する企業にとって非常に魅力的な選択肢です。Docker Composeを活用することで、比較的容易に導入・運用が可能となります。

今後のアップデートやコミュニティ情報

Difyは日々進化しており、公式サイトやGitHubリポジトリ、ユーザーフォーラムなどで最新情報が共有されています。定期的にアップデートをチェックし、コミュニティと連携することで、より安定した運用と新機能の恩恵を受けられるでしょう。

参考URL: Dify公式ドキュメント


いいなと思ったら応援しよう!