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.

以上。

参考資料

2026年7月6日月曜日

Mailpit でメール送信機能の確認をする

Dify のメール送信機能のテストを使用と思ったのだけど、昨今メール機能の確認には Mailpit が使われているらしい。

久しぶりに SMTP サーバーと喋るか。

という事で Mailpit でメール送信を確認してみます。

前提

  • Docker インストール済み

Mailpit の起動

docker run --rm -p 1025:1025 -p 8025:8025 axllent/mailpit
  • -p 1025:1025 は SMTP サーバーのポート
  • -p 8025:8025 は Web UI のポート

Mailpit の Web UI にアクセス

Web ブラウザで以下の URL にアクセスします。

http://localhost:8025

ここで、 Mailpit が送信依頼を受けたメールの内容を確認することができます。

メールを送信してみる

メール送信プログラムを書くのも面倒なので、 netcat コマンドで SMTP サーバーに接続してメールを送信してみます。

$ nc -C localhost 1025
220 a2baad3a9a5a Mailpit ESMTP Service ready
EHLO mikoto2000.example.com
250-a2baad3a9a5a greets mikoto2000.example.com
250-SIZE 52428800
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 SMTPUTF8
MAIL FROM: <mikoto2000@mikoto2000.example.com>
250 2.1.0 Ok
RCPT TO: <mikoto2000@mikoto2000.example.com>
250 2.1.5 Ok
DATA
354 Start mail input; end with <CR><LF>.<CR><LF>
Subject: THIS IS A TEST MAIL

This is a test mail.
.
250 2.0.0 Ok: queued as 6LRwlqUzQIvOiY33VSVRu3
QUIT
221 2.0.0 a2baad3a9a5a Mailpit ESMTP Service closing transmission channel

これで、メール送信依頼が Mailpit に送信されました。

Web UI でメールの内容を確認し、依頼通りの内容となっていることを確認。良さそう。

良い感じなので使って入れればと思いました。

参考資料

2026年6月13日土曜日

Dify のツールプラグインを作成する

前提

  • OS: Ubuntu 24.04 on WSL2
  • Dify CLI: 0.6.1

環境構築

Dify CLI をダウンロードし、パスを通す。

curl -L https://github.com/langgenius/dify-plugin-daemon/releases/download/0.6.1/dify-plugin-linux-amd64 -o dify
chmod +x dify
sudo mv dify /usr/local/bin/

プラグインプロジェクトの作成

mkdir ~/project
cd ~/project
dify plugin init

ウィザードが始まるので、それにしたがって入力する。 今回は、 file-outputer という名前のプラグインを作成することにする。

cd file-outputer

プラグインプロジェクトの設定

cp .env.example .env
vim .env
  1. Dify 環境にログインし、右上の「プラグイン」アイコン -> デバッグアイコン(虫のようなもの)をクリック
  2. ポップアップウィンドウで「APIキー」と「ホストアドレス」が表示されるので、これを .env ファイルの DIFY_API_KEYDIFY_HOST にそれぞれコピーする

Dify プロジェクト用仮想環境の構築

python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
pip install -r requirements.txt

プラグイン実行

以下コマンドを実行すると、 DIFY_HOST で指定した Dify 環境にプラグインが接続され、インストールされる。

python3 -m main

実装

詳細は省略。

mikoto2000/dify-file-outputer: Dify のファイルアウトプット用ツールプラグイン。 を参考にしてください。

パッケージ化

cd ..
dify plugin package file-outputer

これで、 file-outputer.difypkg というファイルが生成される。

パッケージ化したプラグインのインストール

野良パッケージインストールのため、署名検証を OFF にする

Dify の docker/.env に以下を追加または変更。

FORCE_VERIFYING_SIGNATURE=false

コンテナ再起動。

docker compose down
docker compose up -d

インストール

Dify の Web UI で以下を実施。

  1. 右上の プラグイン アイコンを開く
  2. プラグインをインストールする をクリック
  3. ローカルパッケージファイル を選択
  4. 作成した .difypkg をアップロード
  5. インストール をクリック

これで、ワークフローからツールが使えるようになる。

以上。

参考資料