2026年7月23日木曜日

ローカルに建てた Dify を HTTPS 化する

ローカルに建てた Dify に、 https://dify.local/ でアクセスできるようにする。

前提

  • OS: Ubuntu 24.04 on WSL2
  • Docker: Docker version 29.6.1, build 8900f1d
  • Dify: v1.14.2
  • mkcert インストール済み

HTTP で起動確認

Dify ソースコード取得

git clone --branch 1.14.2 https://github.com/langgenius/dify.git
cd dify/docker

.env の準備

cp .env.example .env

dify 起動

docker compose up -d

動作確認

http://localhost にアクセス。 管理者アカウントの設定 ページが表示されれば OK.

HTTPS 化

一回 dify を落とす。

docker compose down

サーバー証明書と鍵の作成

# 鍵配置ディレクトリに移動
cd ./nginx/ssl

# mkcert で証明書と鍵を作成
mkcert dify.local

# 元のディレクトリに戻る
cd ../..

HTTPS 設定

.env の編集

テキストエディタで .env を開き、以下項目を編集する。

  • CONSOLE_API_URL=https://dify.local
  • CONSOLE_WEB_URL=https://dify.local
  • TRIGGER_URL=
  • FILES_URL=https://dify.local
  • INTERNAL_FILES_URL=http://dify.local
  • ENDPOINT_URL_TEMPLATE=https://dify.local/e/{hook_id}
  • NEXT_PUBLIC_SOCKET_URL=wss://dify.local
  • NGINX_SERVER_NAME=dify.local
  • NGINX_HTTPS_ENABLED=true
  • NGINX_SSL_CERT_FILENAME=dify.local.pem
  • NGINX_SSL_CERT_KEY_FILENAME=dify.local-key.pem

ホスト名関連の修正

前段の .env の編集で、 FILES_URL, INTERNAL_FILES_URLhttps://dify.local にしたので、 ブラウザと docker ネットワーク内から https://dify.local にアクセスできるようにする必要がある。

hosts ファイルの編集

管理者権限で C:\Windows\System32\drivers\etc\hosts を開き、以下エントリを追加する。

127.0.0.1 dify.local

これで、ブラウザで https://dify.local と入力すると、 127.0.0.1 にリクエストが流れる。

docker-compose.yaml の編集

以下サービスに、後述の extra_hosts の設定を追加する。

  • api
  • api_websocket
  • worker
  • worker_beat
  • web
  • plugin_daemon

extrahosts の設定は以下。

    extra_hosts:
      - "dify.local:host-gateway"

この設定で、各コンテナの hosts ファイルに dify.local で docker ホストにリクエストが流れる設定をしてくれる。

dify 再起動

docker compose up -d

dify 動作確認

http://dify.local にアクセス。 管理者アカウントの設定 ページが表示されれば OK.

以上。

参考資料

0 件のコメント:

コメントを投稿