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