#!/bin/bash # Tailscale Funnel 自動起動スクリプト # 用途: Synology再起動時にFunnelを自動的に有効化 # 設定場所: Synologyタスクスケジューラ(起動時実行) # ログファイル LOG_FILE="/volume1/docker/tailscale/funnel-startup.log" echo "========================================" >> "$LOG_FILE" echo "$(date): Funnel自動起動スクリプト開始" >> "$LOG_FILE" # Tailscale起動確認(最大60秒待機) for i in {1..12}; do if tailscale status > /dev/null 2>&1; then echo "$(date): Tailscale起動確認" >> "$LOG_FILE" break fi echo "$(date): Tailscale起動待機中 ($i/12)..." >> "$LOG_FILE" sleep 5 done # Tailscaleが起動していない場合はエラー if ! tailscale status > /dev/null 2>&1; then echo "$(date): エラー - Tailscaleが起動していません" >> "$LOG_FILE" exit 1 fi # Funnel有効化(ポート8080, 3000, 5000) echo "$(date): Funnel有効化開始..." >> "$LOG_FILE" tailscale funnel --bg 8080 if [ $? -eq 0 ]; then echo "$(date): ✓ Funnel 8080 (Posimai Brain API) 有効化成功" >> "$LOG_FILE" else echo "$(date): ✗ Funnel 8080 有効化失敗" >> "$LOG_FILE" fi tailscale funnel --bg 3000 if [ $? -eq 0 ]; then echo "$(date): ✓ Funnel 3000 (Gitea) 有効化成功" >> "$LOG_FILE" else echo "$(date): ✗ Funnel 3000 有効化失敗" >> "$LOG_FILE" fi tailscale funnel --bg 5000 if [ $? -eq 0 ]; then echo "$(date): ✓ Funnel 5000 (Posimai API) 有効化成功" >> "$LOG_FILE" else echo "$(date): ✗ Funnel 5000 有効化失敗" >> "$LOG_FILE" fi # Funnel状態確認 echo "$(date): Funnel状態:" >> "$LOG_FILE" tailscale funnel status >> "$LOG_FILE" echo "$(date): Funnel自動起動スクリプト完了" >> "$LOG_FILE" echo "========================================" >> "$LOG_FILE" --- # 使用方法 ## 1. スクリプトをSynologyに配置 ```bash ssh admin@192.168.x.x sudo mkdir -p /volume1/docker/tailscale sudo nano /volume1/docker/tailscale/funnel-auto-start.sh # 上記のスクリプトをペースト # 実行権限付与 sudo chmod +x /volume1/docker/tailscale/funnel-auto-start.sh ``` ## 2. Synologyタスクスケジューラで設定 ### DSM Web UIから設定: 1. コントロールパネル → タスクスケジューラ 2. 「作成」→「トリガーされたタスク」→「ユーザー定義のスクリプト」 3. 設定: - タスク名: `Funnel自動起動` - ユーザー: `root` - イベント: `起動` - スクリプト: ```bash /volume1/docker/tailscale/funnel-auto-start.sh ``` ## 3. 動作確認 ### 手動実行テスト: ```bash sudo /volume1/docker/tailscale/funnel-auto-start.sh ``` ### ログ確認: ```bash cat /volume1/docker/tailscale/funnel-startup.log ``` ### Synology再起動テスト: ```bash sudo reboot # 再起動後、ログを確認 cat /volume1/docker/tailscale/funnel-startup.log ``` --- ## メリット - ✅ Dockerなしで動作 - ✅ Synology標準機能のみ使用 - ✅ 設定が簡単 ## デメリット - ⚠️ Docker Composeより安定性が低い - ⚠️ ログ管理が手動 - ⚠️ ヘルスチェック機能がない