【Dify・Cloudflare・GitHub】Quick TunnelsでDifyを公開しGitHubから自動でRAGに取り込んでみた
はじめに
今回、ローカルで立ち上げたDifyにGiHubで管理している記事(.mdファイル)をRAGのソースとしてアップロードをする実装を行いました。
localhost:80
で立ち上がる為、GiHubからPOSTすることができませんでした。
そこで、Cloudflare Quick Tunnels
を使用することで、URLを取得することができ、GiHubからリクエストを送ることができるようになります。
その実装方法をご紹介します。
前提
- Difyがローカルで立ち上がるようになっていること
- GitHubにファイルが存在していること
Dify側の設定
GitHubと連携するため、
- APIキー
- ナレッジdatasetID
- API サーバーURL(こちらはCloudflare Quick Tunnelsを使用します)
格納するためのナレッジベースを作成
一旦、空のナレッジベースを作成しておきましょう。
ナレッジのAPIキーの取得
以下の箇所から、APIキーを作成します。
datasetIDの取得
こちらは、先ほど作成したナレッジベースのURLに記載があります。
http://localhost/datasets/{ここがdatasetIDです}/documents
これでDify側の設定は完了です。
Cloudflare Quick Tunnelsの設定
Cloudflare Quick Tunnelsとは
Cloudflare Quick Tunnels は、ローカルのパソコンやサーバーで動いているサービスを、インターネットに一時的に公開できる仕組みです。
専用ツール cloudflared を実行すると、Cloudflare が安全な通り道(トンネル)を作り、ランダムなURLを発行してくれます。
この方法ならポート開放やDNSの設定は不要で、すぐに外部からアクセスできるようになります。
アカウントの設定も必要ありません。
Cloudflaredをインストール
Cloudflaredをインストールします。
# macOS
brew install cloudflared
# Windows
winget install --id Cloudflare.cloudflared
トンネルを開始
cloudflared tunnel --url http://localhost:80
# 出力例:
# 2024-01-01 12:00:00 INF +------------------------------------------------------------+
# 2024-01-01 12:00:00 INF | Your quick tunnel has been created! Visit it at: |
# 2024-01-01 12:00:00 INF | https://random-words-here.trycloudflare.com |
# 2024-01-01 12:00:00 INF +------------------------------------------------------------+
この出力されたURLを使用します。
GitHubの設定
環境変数の設定
該当リポジトリのsetting
のSecrets and variables
のActions
を開きます。
Repository secrets
に環境変数として、先ほど入手した 下記を入力します。
- APIキー
- ナレッジdatasetID
- API サーバーURL(Cloudflare Quick Tunnelsで取得したURL)
コードに設定
Actions
タブに移動します。
New workflow
を押下します。
set up a workflow yourself
を押下して、独自のコードを入力します。
以下のコードは、接続テストのためのコードです。
name: Test Dify Connection
on:
workflow_dispatch:
jobs:
test-connection:
runs-on: ubuntu-latest
steps:
- name: Test Dify API Connection
env:
DIFY_API_KEY: ${{ secrets.DIFY_API_KEY }}
DIFY_API_URL: ${{ secrets.DIFY_API_URL }}
DIFY_DATASET_ID: ${{ secrets.DIFY_DATASET_ID }}
run: |
echo "🔍 Testing Dify API connection..."
# API接続テスト
response=$(curl -s -o /dev/null -w "%{http_code}" \
-H "Authorization: Bearer $DIFY_API_KEY" \
"$DIFY_API_URL/datasets/$DIFY_DATASET_ID")
if [ $response -eq 200 ]; then
echo "✅ Successfully connected to Dify API!"
# Dataset情報を取得
curl -s -H "Authorization: Bearer $DIFY_API_KEY" \
"$DIFY_API_URL/datasets/$DIFY_DATASET_ID" | \
python3 -m json.tool
else
echo "❌ Failed to connect. HTTP Status: $response"
exit 1
fi
実行
APIが通るかGitHub上でテストしてみましょう。
Run workflow
を押下します。
緑のマークがつけば成功です!
おわりに
今回は、Cloudflare Quick Tunnels を使ってローカルで動かしている Dify を外部からアクセス可能にし、GitHub のファイルを自動で取り込む流れをご紹介しました。
Quick Tunnels はアカウント不要・設定最小限で使えるため、開発中の検証や短期的な外部接続にはとても便利です。
ローカル開発の効率化やデモ環境構築の一手段として、ぜひ活用してみてください。
Discussion