はじめに
2025年7月、Dify v1.6.0がリリースされました!
このアップデートでは、目玉となるMCP(Model Context Protocol)対応 を中心に、ワークフロー機能の強化、UI/UXの改善など、大きな進化が盛り込まれるとのこと。
本記事では、早速新しいバージョンを使うために、セルフホストのDify環境をv1.6.0へバージョンアップしてみます。
Dify v1.6.0 新機能概要
注目ポイント
🔷 新機能
◉ MCP(Model Context Protocol)対応
モデル連携の標準化により、複数LLMの統合がよりスムーズに。
🔷 主な強化点
◉ UI改善:トピックをドラッグ&ドロップで並び替え可能に。
◉ 設定強化:HTTPノードでSSL検証のオン/オフが選べるように。
◉ 分類機能:質問分類器でinstanceId指定が可能に。
◉ 安定性向上:バッチ処理とRedisの耐障害性を強化。
リリースノート
リリースノートに記載のある「Upgrade Guide」を参考にバージョンアップを行いました。
既存バージョン
v1.5.1
からアップグレードします。
セルフホストDify環境バージョンアップ手順
Difyを稼働させているLinuxサーバ上で実行したバージョンアップへの手順です。
リリースノートの「Upgrade Guide」には、Docker Compose によるサービスの管理と、Pythonソースコードによる直接運用の2つの方法が記載されていました。
今回は1つ目のやり方で実施しました。(2つ目のソースコードでの手順についても後半に記載しています。)
Docker Compose による手順
Docker Compose を使って構築されている Dify 環境を安全にアップグレードするための手順です。
1. docker-compose.yaml
のバックアップ
構成ファイルを変更する前に、現在の状態をバックアップしておきます。
トラブルが発生した場合にロールバック可能なように、タイムスタンプ付きでコピーを作成します。
cd docker
cp docker-compose.yaml docker-compose.yaml.$(date +%s).bak
2. 最新コードの取得
Gitで main
ブランチに切り替え、最新のリモートリポジトリからコードを取得します。
git checkout main
git pull origin main
3. サービスの停止
コンテナを停止・破棄します。ボリュームのデータは維持されたまま、アプリケーションコンテナが終了します。
docker compose down
4. ボリュームデータのバックアップ
永続化された volumes/
ディレクトリを .tgz
形式でバックアップします。
tar -cvf volumes-$(date +%s).tgz volumes
ただし、redis の
dump.rdb
など一部ファイルでPermission denied
エラーが発生しました。sudo
を使っても同様の結果になりましたが、今回の環境ではRedisは使用しておらず、また再構築時に自動生成されるようなので、バックアップはなしで進めました。
tar: volumes/redis/data/dump.rdb: Cannot open: Permission denied
...(中略)
5. サービスの再起動
停止していたサービスをバックグラウンドで起動します。
イメージが更新されていれば自動的にPullされます。
docker compose up -d
リリースノート「Upgrade Guide」の2つ目の方法についても記載します。
ソースコードによる手順
Dockerを使わず、直接ソースコードから起動する構成に対する更新手順です。
1. 稼働中のサービス(API / Worker / Web)の停止
手動またはスクリプトで実行中のプロセスを停止します。
例:
pkill -f "python api"
pkill -f "python worker"
pkill -f "npm run dev"
2. リリース対象ブランチへの切り替え
今回は 1.6.0
タグに対応するブランチに切り替えています。
git checkout 1.6.0
3. Python ライブラリの同期
uv
ツールを使って pyproject.toml
に基づく依存パッケージをインストールします。
cd api
uv sync
uv
はpip
より高速で、依存解決も正確に行えるツールです。インストールされていない場合は、この場でインストールします。
curl -Ls https://astral.sh/uv/install.sh | bash
4. データベースマイグレーションの実行
Flaskのマイグレーション機能を使って、DBスキーマのアップデートを行います。
uv run flask db upgrade
5. サービスの再起動
API、Worker、Webフロントを再起動します。
おわりに
無事バージョンアップできました!
早速v1.6.0
を試してみようと思います。