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

118 lines
3.1 KiB
Bash
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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