junjiem/dify-plugin-repackaging

Scripting tool for downloading Dify plugin package from Dify Marketplace and Github and repackaging [true] offline package.

Dify プラグインの再パッケージ化

何であるか – Dify AI プラットフォームのプラグイン(公式マーケットプレイス、GitHub、またはローカルの .difypkg ファイルから)をダウンロードし、異なる OS/アーキテクチャで実行される Dify インスタンスにインストールできるように再パッケージ化する小さなユーティリティです。

なぜ存在するか – Dify は、サーバーの正確なプラットフォームにビルドされたプラグインのみを受け入れます(例:many-linux 2014 x86_64)。このスクリプトは、元のパッケージを取得し、適切な manylinux タグで再ビルドする手順を自動化し、amd64 と arm64 の両方のホストに同じプラグインを配布できるようにします。

使い方

  1. GitHub Action – リポジトリをフォークし、提供されたワークフローを有効化して実行し、生成されたアーティファクトをダウンロードします。README のスクリーンショットに UI の手順が示されています。
  2. Docker – イメージをビルドする(docker build -t dify-plugin-repackaging .)して実行し、ローカルディレクトリをマウントして再パッケージ化された .difypkg ファイルをホストに表示させます。デフォルトの CMD は例付きの引数で plugin_repackaging.sh を実行します。独自のパラメータに上書き可能です。
  3. 直接スクリプト – リポジトリをクローンして ./plugin_repackaging.sh を実行します:
    • マーケットプレイス: ./plugin_repackaging.sh market <plugin-name> <plugin-version>
    • GitHub: ./plugin_repackaging.sh github <repo> <tag> <output-name>
    • ローカル: ./plugin_repackaging.sh local ./my_plugin.difypkg
    • 別のプラットフォームをターゲットにするには -p manylinux_2_17_x86_64(または manylinux_2_17_aarch64)を追加します。

前提条件

  • Linux(RPMベース)または macOS;RPMシステムでは yum/dnfunzip をインストールします。
  • Python 3.12.x(dify-plugin-daemon で使用されているバージョンと同じ)。
  • Docker(オプション):コンテナ化実行を好む場合。

重要な設定のカスタマイズ – 再パッケージ化されたプラグインを Dify サーバーにインストールするには、README が3つの .env 変更を推奨しています:

FORCE_VERIFYING_SIGNATURE=false   # 署名のないプラグインを許可
PLUGIN_MAX_PACKAGE_SIZE=524288000 # サイズ制限を 500 MiB に引き上げる
NGINX_CLIENT_MAX_BODY_SIZE=500M   # Nginx がより大きなアップロードを受け入れられるようにする

これらの設定は、Dify のデフォルトのセキュリティおよびサイズ制限を緩和します。

一般的なワークフロー

  1. 必要なプラグインを特定する(例:langgenius agent 0.0.9)。
  2. 適切なソース(marketgithub、または local)でスクリプト(または Docker コンテナ)を実行する。
  3. スクリプトはマウントされたディレクトリに .difypkg ファイルを生成します。
  4. Dify UI で プラグイン管理 → ローカルパッケージファイル に移動し、生成されたファイルをアップロードする。

誰がこのツールを必要とするか – 特に、ARM サーバーでコミュニティプラグインを実行したい、または公式マーケットプレイスのバイナリが利用できない環境で自己ホスト型 Dify を拡張する開発者。

ライセンス / コミュニティ – リポジトリはオープンソース(README にライセンスは記載されていません)であり、スター履歴バッジが表示されており、一定のコミュニティ関心があることを示しています。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト