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 .envdocker-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/tcp4.アクセス方法
管理画面へのアクセス
下記URLにアクセスしユーザー名とパスワードを設定します
# Local environment
http://localhost/install
# Server environment
http://your_server_ip/installWebインターフェースへのアクセス
# Local environment
http://localhost
# Server environment
http://your_server_ip5. よくある疑問とトラブルシューティング
インストール時のエラーと解決策
セルフホスティング導入時に発生しがちなエラーとその解決方法を以下にまとめます。
• 環境変数の不備: .envファイルの設定漏れや誤記が原因の場合、公式ドキュメントを再確認し修正
• ポート競合: 他のサービスとポートが衝突している場合、docker-compose.yml内でポート設定を見直す
6. まとめ
Dify セルフホスティングの総括
Difyのセルフホスティングは、セキュリティとカスタマイズ性を重視する企業にとって非常に魅力的な選択肢です。Docker Composeを活用することで、比較的容易に導入・運用が可能となります。
今後のアップデートやコミュニティ情報
Difyは日々進化しており、公式サイトやGitHubリポジトリ、ユーザーフォーラムなどで最新情報が共有されています。定期的にアップデートをチェックし、コミュニティと連携することで、より安定した運用と新機能の恩恵を受けられるでしょう。
