メインコンテンツへスキップ
見出し画像

Difyデータ引継ぎしつつクリーンインストールしてみた ~重大な変更があるみたいなのでやり直してみた~

    こんにちはRcatです。
    結構前にDify使ってみたという記事を書きましたが、設定の変更をするついでに今回、ずっとほったらかしたDifyをアップデートしていこうと思います。

    次回はこちらとうとうバージョン1.0ですね。
    バージョン1.0にて少々仕様が変わっているので、これから見るという方はこちらがおすすめ

    最新版の確認

    とりあえず使ってたバージョンが0.6.9だったので最新版がいくつなのか確認しました。
    この記事を書いている時点では0.7.3のようです。
    変更ログはこちらから確認できます。

    https://github.com/langgenius/dify/releases

    なんか変わってる?

    リリースノートを見るとリファクタリングされたと書いてあります。
    以下の画像はChromeで日本語に訳した状態です。

    画像

    細かい確認も面倒なので、今回は新しく作り直すことにしました。
    なお、最終的にAPIのキーを含めチャットボットとかはそのままの状態になりましたので、やり直しかよと思わなくて大丈夫です。

    新しく環境を作る(チャットボットなどは引き継ぎ出来た)

    前回のDifyを止める

    まず最初に、前回起動したディレクトリに移動後停止させてください。

    $cd <旧Difyのディレクトリ>/docker
    $docker compose down

    新しくDifyのコンテナを作る

    というわけで新しいフォルダを作ってリポジトリをクローンしましょう。

    $mkdir Dify_073
    $cd Dify_073
    $git clone https://github.com/langgenius/dify.git
    $cd dify/docker

    新要素! 環境変数を変更する

    さて、変更ログに書いてあった警告がこの部分ですね。
    どうも、直接Dockerのファイルを書き換えなくても設定を変更することができ、今後アップグレード時に特に何も考えなくても設定を引き継げるようにするためのものらしいですね。
    つまり最初はちょっとめんどくさいけど、後がめちゃくちゃ楽ですね。
    読み進めていくと".env"というファイルを作っておけばいいみたいです。

    以下の画像が私のディレクトリです。
    ".env.example"というデフォルトファイルがあるので、これをコピーして".env"を作成します。

    画像

    .envの中身を変更する

    かなり長いテキストファイルでぶっちゃけ全然分かりません。
    しかし、一番大事なところだけはわかります。そうポート番号です。

    ポート番号の変更

    ポート番号は以下の部分で変更することができます。この場合714行目ですね。私の場合は適当に2万5000番台を使ってみました。一応空いてるらしいので。

    画像

    ちなみになんでこの設定がポート番号なのか分かったかというと、ドッカーの設定が以下のようになっていたからです。
    ここと同じ変数名を探したところ、上の設定に行き当たったわけですね。実際に起動してみて、これで正解だったことはわかっています。

    画像

    セキュリティキーの変更

    ちょっと何を言っているのかよく分かりませんが、多分クッキーを暗号化するための秘密鍵だと思います。これがデフォルトだと、ないとは思いますがクッキーが流出した時に復号されてしまいます。
    オリジナルに書き換えましょう。
    親切なことにどうすれば生成できるかコマンド書いてくれているので、その通りに実行して表示されるセキュリティキーを入れましょう。

    画像

    申し訳ありませんが、これ以外は分からないので設定はここだけにします。
    細かい説明はたくさん書いてあるので、Google翻訳でパッと見全部見てみましたが、手が出せそうな設定はこのくらいでした。

    データを引き継ぐ

    次に一番大事なデータの引き継ぎをします。
    Difyのコンテナは、データをフォルダに同期させてくれています。そのため、このフォルダごとコピーしてしまえば良いというわけですね。

    保存場所の確認と準備

    データの保存場所は以下になります。
    dify/docker/volumes
    新しくクローンしてきたものにもこのフォルダがあり、中身が入っているので一旦全て消してください。このやり方で合っているか分かりませんが、私の場合はうまくいきました。

    データをコピーする

    以下のコマンドでデータをコピーします。
    所有者がルートになっているのでルート権限が必要です。

    $cd <新Difyのvolumesフォルダ>
    $sudo cp -R <旧Difyのvolumesフォルダ>/* ./

    コンテナを起動する

    環境変数の書き換えとデータのコピーが済んだらコンテナを立ち上げます。

    $docker compose up
    または
    $docker compose up -d

    私はついバックグラウンドの-dを忘れてしまうので、Ctrl+Zとgbを使って後ろに持ってってます…

    新しい環境にアクセスする

    というわけでローカルIPアドレスを打ち込んでアクセスしてみましょう。
    上の設定でポート番号を変更した場合はそのポート番号で入ります。

    はい、うまくいきました。
    バージョンが最新になっており、かつチャットボットなどの設定が全て保持されています。
    この後、実際に稼働させましたが、今まで使っていたプログラムも問題なくAIにアクセスできています。うまくアップデートできたみたいです。

    画像

    まとめ

    今回はDifyのアップデートを行いました。
    普通ならいちいち作り直さなくてもいいのかもしれませんが、今回は設定ファイルの辺りに重大な変更があったため、コンテナを作り直しを行いました。
    今回の経験でボリュームのフォルダさえ保持しておけば、チャットボットや設定を保持することができるというのがわかったのが収穫だと思います。
    それでは良いAIライフを。またお会いしましょう。


    最後に

    利用規約

    情報や作品の活用時は事前に利用規約をご確認ください。

    コメントについて

    利用規約のガイドラインを確認の上コメントしてください


     
     
    モノづくりが趣味。 "売ってないなら自分で作ればいいじゃない"をコンセプトに、機械/電気/AI/プログラム/ネットワーク 全部やります。 記事執筆はAI不使用。 ご連絡や利用規約はプロフィール記事参照。

    あなたへのおすすめ