ponshu-room-lite/tools/synology/funnel-auto-start.sh

118 lines
3.1 KiB
Bash
Raw Permalink Normal View History

#!/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より安定性が低い
- ⚠️ ログ管理が手動
- ⚠️ ヘルスチェック機能がない