Xserver VPSのDifyアプリイメージセットアップ+α
2024/8/9にXserverからお手軽Dify環境がリリースされたので、それに伴う設定の備忘録。
サマリー
ドメインはXserverドメインを利用した
Xserver VPSのDifyアプリイメージを新規契約
パケットフィルターは一応戻した
同じXserver VPS上にfirecrawlも入れてみた
※2024/8/27修正
USE_DB_AUTHENTICATION の記述が間違っていたので修正
※2024/9/15追記
beta版のときの対応について追記
※2024/10/4追記
新しくbeta版使いたいときの対応について追記
事前準備
ドメイン取得
Xserverドメインで適当に取得。
Xserverドメイン:ネームサーバー設定
ドメイン適用先サービス > Xserver VPS
[設定を変更する]
証明書取得用メールアドレス
何でもいいから決めておく。
Xserver VPS
Xserver VPS 契約
公式のマニュアルを参考に設定していく。
https://vps.xserver.ne.jp/ > お申し込み > アカウント設定
初めての場合は、公式マニュアルの「2.Difyをインストール」から
アプリケーション > Dify
rootパスワード設定
<任意の文字列> ※メモっておくSSH Key
初めての場合は
キーを作成する > 登録方法:自動生成 > 名前:<任意の文字列>[確認画面へ進む]
秘密鍵をダウンロード後確認後、インストール完了
(OSは Ubuntu 固定?)
Xserver VPS:パケットフィルターの設定(OFFにする)
https://secure.xserver.ne.jp/xapanel/xvps/index > 当該サーバーの[VPS管理]
サーバー > パケットフィルター設定
OFFにする > [変更する]
Difyセットアップ
Xserver VPS:コンソールログイン
https://secure.xserver.ne.jp/xapanel/xvps/index > 当該サーバーの[VPS管理]
[コンソール]
ログイン
login: root <enter>
Password: (上で設定したパスワード)<enter>
※Password入力時はキーを打っても画面は動かないが入力はされている
セットアップ
setup.sh <自分で取得したドメイン> <証明書取得用メールアドレス>
Let's Encryptからの証明書更新情報やその他のニュースの受け取り確認
【メッセージ】…..(Y)es/(N)o:
受け取る場合は「Y」、不要な場合は「N」を入力し <enter>セットアップ完了
SSL証明書更新
ssl_update.sh <自分で取得したドメイン> <証明書取得用メールアドレス>
証明書更新確認
【メッセージ】…..1: 既存の証明書を使用 / 2: 更新または差し替え
2 を押して <enter>更新完了
アップデート
update.sh
アップデート完了
DNS&パケットフィルター設定
Xserver VPS:ドメインの追加
[+ドメインの追加]
ドメイン:<自分で取得したドメイン>
[確認画面へ進む] > [設定を追加する]
Xserver VPS:DNSレコード設定の追加
当該ドメイン名 > [選択する]
[DNSレコード設定の追加]
ホスト名:(空のまま)
種別:A
内容:(サーバーのIPアドレス)[確認画面へ進む] > [設定を追加する]
Xserver VPS:パケットフィルターの設定(ONにする)
https://secure.xserver.ne.jp/xapanel/xvps/index > 当該サーバーの[VPS管理]
サーバー > パケットフィルター設定
[+パケットフィルター設定を追加する]
フィルター:手動で設定
プロトコル:TCP
ポート番号:443
許可する送信元IPアドレス:すべて許可
メモ:https
[追加する]ONにする(推奨) > [変更する]
※なんらかの不具合が出るようであれば、OFFに戻してください。
ここまで来たら、とりあえず
https://<自分で取得したドメイン>
でDifyの最新版にhttpsでアクセスできると思います。
他のサイトを参考に、管理者設定やら、いろいろ済ませてください。
firecrawl
以下のサイトを参考に同じ Xserver VPS 上に構築。
インストール先はホームディレクトリ。
Xserver VPS:コンソールログイン
こちらを参照
※sshでログインできる人はそれでもいいです。
リポジトリのコピー
念のためホームディレクトリに移動
$ cd ~
既存の Git リポジトリをコピー
$ git clone https://github.com/mendableai/firecrawl.git
環境変数構成ファイル .env の準備
firecrawl ディレクトリに移動
$ cd firecrawl
apps/api/ 内にある .env のサンプルをコピー
$ cp apps/api/.env.example .env
# .envがコピーされたかどうか確認
$ ls -a
環境変数構成ファイル .env の編集
コピーされた .env を任意のエディタ(viなど)で編集
USE_DB_AUTHENTICATION を false に変更
## To turn on DB authentication, you need to set up supabase.
USE_DB_AUTHENTICATION=false
TEST_API_KEY を設定
fc- で始まる任意の文字列に設定
TEST_API_KEY=<自分で設定したTEST_API_KEY>
コンテナの起動
5分ほどかかる
$ docker compose up -d
# 動作確認
$ curl -X GET http://localhost:3002/test
Dify:データソースの追加
Dify > 右上のアカウント > 設定
ワークスペース: データソース > ウェブサイト(によるFirecrewl) の [設定]
API Key:<自分で設定したTEST_API_KEY>
Base URL:http://<自分で取得したドメイン>:3002
※httpsではなくhttp。末尾のポート番号も忘れずに[保存] > アクティブになったらOK
Dify:ナレッジ作成で利用
Dify > ナレッジ > [+ナレッジを作成]
データソースの選択 > ウェブサイトから同期
Firecrawl を使っでウエブコンテンツを抽出を設定
- URLは必須
- 制限は取得するページの上限数………なんだろうけど、機能していない気がする(汗)※2024/8/25現在[次へ] > いろいろ設定して[保存して処理]
【firecrawl使用感】
スクレイピング実行時は、サーバーが結構重たくなる。
beta版を使う
並列処理の v0.8.0 が出る際、正式版が出る前にbeta版が出ていました。
beta版は Xserver VPS であらかじめ用意されている update.sh では対応しないため、利用の際は手動で行う必要があります。※2024年9月現在
beta版に切り替えて使う手順
(v0.7.2 が最新の正式版のときに、v0.8.0-beta1 に切り替えた際の事例)
sshまたはコンソールに接続後、
# ディレクトリ移動
$ cd ~/dify/docker
# リモートリポジトリの最新の履歴を取得
$ git fetch --all
$ git checkout 0.8.0-beta1
# いちおうmain以外の別のブランチを作って切り替えておく
$ git switch -c beta-branch
# イメージの取得&再起動
$ docker compose down
$ docker compose pull
$ docker compose up -d
正式版に戻して使う手順
(v0.8.0-beta1 利用中に、正式版の v0.8.0 が出たときの事例)
sshまたはコンソールに接続後、
# ブランチの一覧確認
$ git branch
# mainブランチに戻す
$ git checkout main
# 今のブランチの確認
$ git branch --contains
# Xserverのアップデートスクリプトを実行
$ update.sh
その後もう一回beta版が来た時の手順(0.10.0-betaのときの例)
# ディレクトリ移動
$ cd ~/dify/docker
# リモートリポジトリの最新の履歴を取得
$ git fetch --all
# 該当するブランチに移動
$ git checkout release/0.10.0-beta
# 前に作ったbeta用ブランチを削除する
$ git branch -D beta-branch
# いちおうmain以外の別のブランチを作って切り替えておく
$ git switch -c beta-branch
# イメージの取得&再起動
$ docker compose down
$ docker compose pull
$ docker compose up -d
(git checkout と git switch の使い方をいまいち理解してないかも…)