ローカルデプロイに関するFAQ
1. ローカル展開の初期化後、パスワードが間違っている場合のリセット方法は?
Docker Composeで展開した場合、次のコマンドを使用してパスワードをリセットできます:
メールアドレスと新しいパスワードを2回入力してください。
2. ローカル展開ログで「ファイルが見つかりません」というエラーを修正する方法は?
このエラーは、展開方法の変更や api/storage/privkeys
ディレクトリの削除によって発生する可能性があります。このファイルは大規模モデルキーの暗号化に使用されるため、損失は不可逆です。次のコマンドを使用して暗号化キーペアをリセットできます:
Docker Compose デプロイ
ソースコードの起動
apiディレクトリに移動し、次のコマンドを実行します:
プロンプトに従ってリセットしてください。
3. インストール後にログインできない、またはログインした後に401エラーが表示される場合は?
これは、ドメイン/URLを変更したため、フロントエンドとバックエンドの間でクロスドメインの問題が発生している可能性があります。クロスドメインとアイデンティティの問題には、次の構成が関係しています:
CORS クロスドメイン構成
CONSOLE_CORS_ALLOW_ORIGINS
コンソールCORSポリシー。デフォルトは*で、すべてのドメインがアクセス可能です。 2.
WEB_API_CORS_ALLOW_ORIGINS
WebAPP CORSポリシー。デフォルトは*で、すべてのドメインがアクセス可能です。
4. 起動後にページが読み込まれ続け、CORSエラーが表示される場合は?
これは、ドメイン/URLを変更したため、フロントエンドとバックエンドの間でクロスドメインの問題が発生している可能性があります。docker-compose.yml
内の次の構成項目を新しいドメインに更新してください:
CONSOLE_API_URL
: コンソールAPIのバックエンドURL CONSOLE_WEB_URL
: コンソールWebのフロントエンドURL SERVICE_API_URL
: サービスAPIのURL APP_API_URL
: WebApp APIのバックエンドURL APP_WEB_URL
: WebAppのURL
詳細については、環境変数を参照してください。
5. 展開後のバージョンアップ方法は?
イメージから開始した場合は、最新のイメージを取得し、アップグレードを完了させてください。ソースコードから開始した場合は、最新のコードを取得してから始め、アップグレードを完了させます。
ソースコードの更新については、apiディレクトリに移動し、次のコマンドを実行してデータベース構造を最新バージョンにマイグレートします:
flask db upgrade
6. Notionを使用してインポート時に環境変数を設定する方法は?
Notion 統合構成アドレス**。**プライベート展開を行う場合は、次の構成を設定してください:
NOTION_INTEGRATION_TYPE
:この値は(public/internal)に設定する必要があります。Notion の OAuth リダイレクトアドレスは https のみをサポートするため、ローカル展開には Notion の内部統合を使用してください。NOTION_CLIENT_SECRET
: Notion OAuth クライアントシークレット(パブリック統合タイプ用)。NOTION_CLIENT_ID
: OAuth クライアントID(パブリック統合タイプ用)。NOTION_INTERNAL_SECRET
: Notion内部統合シークレット。NOTION_INTEGRATION_TYPE
が internalの場合、この変数を設定してください。
7. ローカル展開バージョンでスペースの名前を変更する方法は?
データベースのtenants
テーブルを直接修正してください。
8. アプリケーションへのアクセスドメインを変更するには?
docker_compose.yaml
内のAPP_WEB_URL
構成項目を見つけて、新しいドメインに変更してください。
9. データベースのマイグレーションが発生した場合にバックアップすべき内容は?
データベース、構成されたストレージ、ベクトルデータベースのデータをバックアップしてください。Docker Composeを使用して展開した場合は、dify/docker/volumes
ディレクトリ内のすべてのデータを直接バックアップします。
10. OpenLLMをローカルで起動する際にDocker展開のDifyが127.0.0.1を使用してローカルポートにアクセスできない理由は?
127.0.0.1はコンテナ内のアドレスです。Difyの構成されたサーバーアドレスは、ホストのローカルネットワークIPアドレスである必要があります。
11. ローカル展開バージョンのデータセットでドキュメントをアップロードする際のサイズと数量制限を解決する方法は?
公式Webサイトの環境変数を参照してください。
12. ローカル展開バージョンでメール経由でメンバーを招待する方法は?
ローカル展開バージョンでは、メールを通じてメンバーを招待できます。メールアドレスを入力し、招待を送信すると、ページに招待リンクが表示されます。招待リンクをコピーしてユーザーに転送してください。ユーザーはそのリンクを開き、メール経由でログインし、パスワードを設定してスペースにアクセスできます。
13. ローカル展開バージョンで「Can't load tokenizer for 'gpt2」というエラーが発生した場合はどうすればよいですか?
設定に関しては、公式Webサイトの環境変数や関連するIssueを参照してください。
14. ローカル展開バージョンでポート80の競合を解消する方法
ポート80が使用中の場合、ポート80を占有しているサービスを停止するか、docker-compose.yamlでポートマッピングを変更し、ポート80を別のポートにマッピングしてください。通常、ApacheやNginxがこのポートを占有しているため、これらのサービスを停止することで解決できます。
15. テキスト読み上げ中に「[openai] Error: ffmpeg is not installed」というエラーが発生した場合の対処方法
OpenAI TTSはオーディオストリームの分割を実装しているため、ソースコード展開にはffmpegのインストールが必要です。詳細な手順は以下の通りです:
Windows:
FFmpeg公式Webサイトを訪れ、事前にコンパイルされたWindows用の共有ライブラリをダウンロードします。
FFmpegフォルダをダウンロードして展開し、"ffmpeg-20200715-51db0a4-win64-static"のようなフォルダが生成されます。
展開したフォルダを任意の場所に移動します。例:C:\Program Files\。
FFmpegのbinディレクトリの絶対パスをシステムの環境変数に追加します。
コマンドプロンプトを開き、"ffmpeg -version"と入力します。FFmpegのバージョン情報が表示されれば、インストールが成功しています。
Ubuntu:
ターミナルを開きます。
次のコマンドを入力してFFmpegをインストールします:
sudo apt-get update
、次にsudo apt-get install ffmpeg
を入力します。インストールが成功したかどうかを確認するために、"ffmpeg -version"と入力します。
CentOS:
まず、EPELリポジトリを有効にします。ターミナルで次を入力します:
sudo yum install epel-release
次に、次のコマンドを入力します:
sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
yumパッケージを更新します。入力:
sudo yum update
最後に、FFmpegをインストールします。入力:
sudo yum install ffmpeg ffmpeg-devel
インストールが成功したかどうかを確認するために、"ffmpeg -version"と入力します。
Mac OS X:
ターミナルを開きます。
Homebrewをまだインストールしていない場合は、次のコマンドを入力してインストールできます:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Homebrew を使用して FFmpeg をインストールします。入力:
brew install ffmpeg
インストールが成功したかどうかを確認するために、"ffmpeg -version"と入力します。
16. ローカル展開中のNginx設定ファイルのマウントエラーを解消する方法
完全なプロジェクトをダウンロードし、dockerに移動し、docker-compose up -d
を実行してください。
17. ベクトルデータベースを他のベクトルデータベースに移行する方法
Weaviate から他のベクトルデータベースにベクトルデータベースを移行する場合、データを移行する必要があります。以下はその手順です:
ローカルソースコードから始める場合は、.envファイル内の環境変数を移行したいベクトルデータベースに変更してください。例:
VECTOR_STORE=qdrant
docker-composeから始める場合は、
docker-compose.yaml
ファイル内の環境変数を移行したいベクトルデータベースに変更し、apiとworkerの両方を修正する必要があります。例:
以下のコマンドを実行してください
テスト済みのターゲット データベース:
qdrant
milvus
analyticdb
18. SSRF_PROXYが必要な理由とは?
コミュニティエディションの docker-compose.yaml
では、一部のサービスに SSRF_PROXY
と HTTP_PROXY
環境変数が設定されています。これらは全て、ssrf_proxy
コンテナを指しており、SSRF攻撃を防ぐために利用されています。SSRF攻撃について詳しく学びたい方は、こちらの記事をご覧ください。
不必要なリスクを避けるために、SSRF攻撃の可能性があるすべてのサービスにプロキシを設定し、Sandboxのようなサービスがプロキシを通じてのみ外部ネットワークにアクセスできるようにしています。これにより、データとサービスのセキュリティが強化されます。デフォルトでは、このプロキシはローカルリクエストをインターセプトしませんが、squid
構成ファイルを変更することで、プロキシの動作をカスタマイズできます。
プロキシの動作をカスタマイズする方法は?
プロキシの動作は docker/volumes/ssrf_proxy/squid.conf
にある squid
構成ファイルを編集することでカスタマイズできます。例えば、ローカルネットワークが 192.168.101.0/24
セグメントにアクセスできる場合でも、192.168.101.19
にある機密データには、ローカル展開のDifyユーザーがアクセスしてほしくない場合、以下のように squid.conf
にルールを追加できます。
これは一例に過ぎません。必要に応じてプロキシの動作を自由にカスタマイズできます。アップストリームプロキシやキャッシュの設定が必要な場合は、詳細については squid構成ドキュメント をご覧ください。
19. 作成したアプリをテンプレートとして設定する方法は?
現時点では、作成したアプリをテンプレートとして設定する機能はサポートされていません。既存のテンプレートは、Difyの公式がクラウドバージョンユーザー向けに提供しているもので、参考用となっています。クラウドバージョンをご利用の場合は、アプリをワークスペースに追加したり、変更後にカスタマイズして独自のアプリを作成できます。コミュニティバージョンを使用していて、チーム向けにさらに多くのアプリテンプレートが必要な場合は、有料の技術サポートを受けるために弊社ビジネスチームにお問い合わせください:business@dify.ai
20. 502 Bad Gateway
このエラーは、Nginxがサービスを誤った場所に転送しているために発生します。まず、対象のコンテナが実行中であることを確認し、以下のコマンドを管理者権限で実行してください:
出力の中から以下の2行を見つけてください:
これらのIPアドレスをメモしておきます。次に、Difyソースコードを保存しているディレクトリに移動し、dify/docker/nginx/conf.d
を開いて、http://api:5001
を http://172.19.0.7:5001
に、http://web:3000
を http://172.19.0.5:3000
に置き換え、Nginxコンテナを再起動するか、構成を再読み込みします。
なお、これらのIPアドレスは 例 ですので、独自のIPアドレスを取得するためにコマンドを実行する必要があります。また、関連するコンテナを再起動する際には、IPアドレスの再設定が必要になることがあります。
21. コンテンツ セキュリティ ポリシーを有効にするにはどうすればよいですか?
.env
構成ファイルでCSP_WHITELIST
パラメータを見つけて、製品の使用に関連するすべての URL や API リクエスト アドレスなど、許可できるドメイン名を入力します。 この動きは、潜在的な XSS 攻撃を減らすのに役立ちます。 CSP に関する推奨事項の詳細については、コンテンツ セキュリティ ポリシー を参照してください。
22. APIサービスのポート番号を変更する方法
API サービスのポートは、Dify プラットフォームで使用されるポートと一致します。docker-compose.yaml
ファイルの nginx
設定を変更することで、実行中のポートを再指定することができます。
23. ファイルをローカルストレージからクラウドストレージに移行する方法
ファイルをローカルストレージからクラウドストレージ(例:Alibaba Cloud OSS)に移行するには、'upload_files'と'privkeys'ディレクトリからデータを移行する必要があります。以下の手順に従って操作してください:
ストレージ設定を構成する
ローカルソースコードデプロイメントの方法:
.env
ファイルでストレージ設定を更新しますSTORAGE_TYPE=aliyun-oss
を設定しますAlibaba Cloud OSSの認証情報を設定します
Docker Composeデプロイメントの方法:
docker-compose.yaml
ファイルでストレージ設定を更新しますSTORAGE_TYPE: aliyun-oss
を設定しますAlibaba Cloud OSSの認証情報を設定します
移行コマンドを実行する
ローカルソースコードの場合:
Docker Composeの場合:
Last updated