ponshu-room-lite/docs/CLOUDFLARE_TUNNEL_SETUP.md

6.7 KiB
Raw Blame History

Cloudflare Tunnel セットアップガイド

概要

Tailscale Funnelの不安定性を解決するため、Cloudflare Tunnelを使用してSynology上のサービスを安全に公開します。

メリット

  • 完全無料Cloudflare無料プラン
  • 99.99%稼働率Cloudflareのグローバルインフラ
  • 自動HTTPSSSL証明書不要
  • DDoS保護付き
  • Synology再起動時も自動再接続
  • 知人に展開しても安心の安定性

前提条件

  1. Cloudflareアカウント無料
  2. ドメイン名既存ドメインまたはCloudflare Pagesの無料ドメイン
  3. Synology Docker環境

Step 1: Cloudflareアカウントとドメイン設定

1-1. Cloudflareアカウント作成

https://dash.cloudflare.com/sign-up

1-2. ドメイン追加

既存ドメインをCloudflareに追加、またはCloudflare Pagesで無料ドメイン取得

既存ドメインの場合:

  1. Cloudflareダッシュボード → 「Add a Site」
  2. ドメイン入力(例: example.com
  3. ネームサーバーをCloudflareに変更ドメイン registrarで設定

無料ドメインの場合:

  1. Cloudflare Pages → 「Create a project」
  2. 適当なプロジェクト作成 → xxx.pages.dev が発行される
  3. このサブドメインを使用可能

Step 2: Cloudflare Tunnel作成

2-1. Zero Trustダッシュボードへ移動

https://one.dash.cloudflare.com/

2-2. トンネル作成

  1. 左メニュー → 「Access」「Tunnels」
  2. 「Create a tunnel」をクリック
  3. トンネル名を入力(例: posimai-synology
  4. 「Save tunnel」

2-3. トークン取得

トンネル作成後、トンネルトークンが表示されます(後で使用)

eyJhIjoiNzQ5YmJhMGVhZjU5NDhhNWFkZGM3MTk3YTcxNTRmOGQiLCJ0IjoiOGE5YzEyMzQtNTY3OC05MGFiLWNkZWYtMTIzNDU2Nzg5MGFiIiwicyI6Ik5UQTBPVEl4TXpRdE5qY3lNUzAwTmpkbExXRTBNRFF0WkRJNU1qWTRNREkyWWpFMSJ9

このトークンをメモ(次のステップで使用)


Step 3: Synology Dockerでトンネル起動

3-1. SSH接続

ssh admin@192.168.x.x

3-2. Dockerコンテナ起動

sudo docker run -d \
  --name cloudflared-tunnel \
  --restart=unless-stopped \
  cloudflare/cloudflared:latest tunnel \
  --no-autoupdate run \
  --token eyJhIjoiNzQ5YmJhMGVhZjU5NDhhNWFkZGM3MTk3YTcxNTRmOGQiLCJ0IjoiOGE5YzEyMzQtNTY3OC05MGFiLWNkZWYtMTIzNDU2Nzg5MGFiIiwicyI6Ik5UQTBPVEl4TXpRdE5qY3lNUzAwTmpkbExXRTBNRFF0WkRJNU1qWTRNREkyWWpFMSJ9

注意: --token の後ろに先ほどメモしたトークンを貼り付け

3-3. 起動確認

sudo docker ps | grep cloudflared

以下のように表示されればOK:

CONTAINER ID   IMAGE                          STATUS
abc123def456   cloudflare/cloudflared:latest  Up 2 minutes

Step 4: Public Hostname設定サービス公開

4-1. Cloudflare Zero Trustダッシュボードに戻る

https://one.dash.cloudflare.com/「Tunnels」 → 先ほど作成したトンネルをクリック

4-2. Public Hostnamesタブ → 「Add a public hostname」

例1: Posimai Brain API

項目 設定値
Subdomain posimai-brain
Domain example.com(あなたのドメイン)
Path (空欄)
Type HTTP
URL localhost:8080Synology上のPosimai Brain APIポート

→ アクセス先: https://posimai-brain.example.com

例2: Gitea

項目 設定値
Subdomain gitea
Domain example.com
Path (空欄)
Type HTTP
URL localhost:3000

→ アクセス先: https://gitea.example.com

例3: Posimai APIFlask

項目 設定値
Subdomain posimai-api
Domain example.com
Path (空欄)
Type HTTP
URL localhost:5000

→ アクセス先: https://posimai-api.example.com

4-3. 保存して完了

「Save hostname」をクリック


Step 5: 動作確認

5-1. ブラウザでアクセス

https://posimai-brain.example.com/health

正常にレスポンスが返ればOK

5-2. Posimai Brain UIのAPI URLを変更

修正前:

const SYNOLOGY_API = 'https://posimai-lab.tail72e846.ts.net/brain/api';

修正後:

const SYNOLOGY_API = 'https://posimai-brain.example.com';

5-3. Vercel再デプロイ

cd /c/Users/maita/posimai-project/posimai-brain
vercel --prod

Step 6: 複数サービスの公開(オプション)

同じトンネルで複数サービスを公開可能:

サービス URL Synologyポート
Posimai Brain API https://posimai-brain.example.com localhost:8080
Gitea https://gitea.example.com localhost:3000
Posimai API (Flask) https://posimai-api.example.com localhost:5000
Ponshu Room Lite AI Proxy https://ponshu-ai.example.com localhost:8000

すべて同じトンネルで公開可能(追加コストなし)


トラブルシューティング

Q1. トンネルが起動しない

# ログ確認
sudo docker logs cloudflared-tunnel

# 再起動
sudo docker restart cloudflared-tunnel

Q2. 502 Bad Gateway

  • Synology上のサービスが起動しているか確認
  • ポート番号が正しいか確認(localhost:8080 など)

Q3. SSL証明書エラー

  • Cloudflareが自動でHTTPS証明書を発行するため、特に設定不要
  • ドメインのDNSがCloudflareを向いているか確認

Tailscale Funnelからの移行手順

移行前の確認

# 現在のTailscale Funnel設定を確認
tailscale funnel status

移行手順

  1. Cloudflare Tunnel設定完了
  2. Posimai Brain UIのAPI URL変更上記参照
  3. Vercel再デプロイ
  4. 動作確認後、Tailscale Funnelを停止
    tailscale funnel off
    

ロールバック方法

万が一問題があれば、元のTailscale Funnel設定に戻せます:

tailscale funnel on 8080

まとめ

メリット

  • Synology再起動時も自動再接続--restart=unless-stopped
  • 無料で複数サービス公開可能
  • Cloudflareの高速CDN経由でアクセス
  • DDoS保護、WAFWeb Application Firewall付き
  • 知人に展開しても安心の安定性

デメリット

  • Cloudflareアカウント設定が必要初回のみ1時間程度
  • ドメイン設定が必要(既存ドメインまたは無料ドメイン)

次のステップ

  1. Cloudflareアカウント作成
  2. トンネルトークン取得
  3. Synology Dockerで起動
  4. 動作確認
  5. Posimai Brain UI修正 & 再デプロイ

不明点があればサポートします!