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 の両方のホストに同じプラグインを配布できるようにします。
使い方
- GitHub Action – リポジトリをフォークし、提供されたワークフローを有効化して実行し、生成されたアーティファクトをダウンロードします。README のスクリーンショットに UI の手順が示されています。
- Docker – イメージをビルドする(
docker build -t dify-plugin-repackaging .)して実行し、ローカルディレクトリをマウントして再パッケージ化された .difypkg ファイルをホストに表示させます。デフォルトのCMDは例付きの引数でplugin_repackaging.shを実行します。独自のパラメータに上書き可能です。 - 直接スクリプト – リポジトリをクローンして
./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/dnfでunzipをインストールします。 - 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 のデフォルトのセキュリティおよびサイズ制限を緩和します。
一般的なワークフロー
- 必要なプラグインを特定する(例:
langgenius agent 0.0.9)。 - 適切なソース(
market、github、またはlocal)でスクリプト(または Docker コンテナ)を実行する。 - スクリプトはマウントされたディレクトリに
.difypkgファイルを生成します。 - Dify UI で プラグイン管理 → ローカルパッケージファイル に移動し、生成されたファイルをアップロードする。
誰がこのツールを必要とするか – 特に、ARM サーバーでコミュニティプラグインを実行したい、または公式マーケットプレイスのバイナリが利用できない環境で自己ホスト型 Dify を拡張する開発者。
ライセンス / コミュニティ – リポジトリはオープンソース(README にライセンスは記載されていません)であり、スター履歴バッジが表示されており、一定のコミュニティ関心があることを示しています。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト