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