- 公開日:
自分専用DifyにFirecrawlもセルフホスト
- Authors
- Name
この記事はVPSでお安く自分専用のDifyを持つ方法の続きだ。
Difyは、WebクローラーであるJina ReaderまたはFirecrawlと連携することで簡単にRAGを実現できる。
Firecrawlもオープンソースでセルフホストできる。そこでDifyをインストールしたVPSにFirecrawlもインストールし、こちらもお安く実現してみた。
その手順を紹介する。
Firecrawlのセットアップ
Firecrawlをgit clone
Firecrawlのオープンソースプロジェクトをgit cloneする。
バージョン v1.0.0
執筆時点(2024年10月4日)でmainブランチをCloneしたところ、正常に動作しなかった。そこでタグv1.0.0を使うことにする。
安定版については都度、確認されたい。
git clone https://github.com/mendableai/firecrawl.git -b v1.0.0
cd firecrawlFirecrawlの.envを用意
環境変数ファイルの雛形apps/api/.env.exampleを元に.envファイルを用意する。
cp apps/api/.env.example .env.envを編集し、次の2点を変更する。
USE_DB_AUTHENTICATION=false
TEST_API_KEY=fc-my-firecrawl # 任意のキー(先頭のfc-は必須)USE_DB_AUTHENTICATIONは、詳しくわかっていないがユーザー管理をするSupabaseと連携するためのようだ。少なくとも今回は自分専用なので利用しない。
TEST_API_KEYは後ほどDifyで指定するAPIキーである。複雑なものを指定してもよいが、fc-という接頭辞は必須らしい。
Firecrawlを起動
Docker ComposeでFirecrawlを起動する。
docker compose up -d --build筆者の環境では初回のビルドに5分ほどかかった。気長に待とう。
起動が完了し、少し待ってから次のようにテストレスポンスが得られたら起動は成功である。
curl -X GET http://localhost:3002/test
# 出力
Hello, world!Firecrawlを登録する
DifyとFirecrawlのネットワーク接続
DifyとFirecrawlは異なるDocker Composeプロジェクトで動作しているので、このままではスムーズに接続できない。
次のコマンドで両者をネットワーク接続し、DifyのapiコンテナとworkerコンテナからFirecrawlのapiコンテナをfirecrawlとして参照可能にする。
docker network connect --link firecrawl-api-1:firecrawl firecrawl_backend docker-api-1
docker network connect --link firecrawl-api-1:firecrawl firecrawl_backend docker-worker-1接続元について
Difyは多くのコンテナから構成されている。筆者の予想ではapiとworkerからFirecrawlを参照できればよいと踏んで動作もしたが、もしかしたら過不足があるかもしれない。
Firecrawlの設定
DifyのWeb画面を開き、右上のメニューから設定 - 設定メニューからデータソース - Firecrawlについての設定ボタンを押す。

API KeyとBase URLを指定し、保存ボタンを押す。

API Keyは先ほど.envファイルに指定したfc-から始まるキーだ。
Base URLは、http://firecrawl:3002とする。

Firecrawlがアクティブになれば連携完了である。
ウェブサイトをクロールしてベクトルデータベースにコンテンツを格納し、RAGを実現できるようになった。