|
| 1 | +#!/bin/bash |
| 2 | + |
| 3 | +# DevContainer diagnostic tool |
| 4 | +# DevContainer診断ツール |
| 5 | + |
| 6 | +echo "🔍 DevContainer 環境診断開始..." |
| 7 | +echo "" |
| 8 | + |
| 9 | +# System info |
| 10 | +echo "📊 システム情報:" |
| 11 | +echo " OS: $(lsb_release -d 2>/dev/null | cut -f2 || uname -a)" |
| 12 | +echo " Hostname: $(hostname)" |
| 13 | +echo " User: $(whoami)" |
| 14 | +echo " PWD: $(pwd)" |
| 15 | +echo "" |
| 16 | + |
| 17 | +# Check hostname resolution |
| 18 | +echo "🔧 ホスト名解決チェック:" |
| 19 | +HOSTNAME=$(hostname) |
| 20 | +if grep -q "127.0.0.1.*$HOSTNAME" /etc/hosts 2>/dev/null; then |
| 21 | + echo " ✅ /etc/hosts に $HOSTNAME が登録済み" |
| 22 | +else |
| 23 | + echo " ❌ /etc/hosts に $HOSTNAME が未登録" |
| 24 | + echo " 修正コマンド: echo '127.0.0.1 $HOSTNAME' | sudo tee -a /etc/hosts" |
| 25 | +fi |
| 26 | +echo "" |
| 27 | + |
| 28 | +# Check Tailscale installation |
| 29 | +echo "🦎 Tailscale インストールチェック:" |
| 30 | +if command -v tailscale >/dev/null 2>&1; then |
| 31 | + echo " ✅ Tailscale インストール済み" |
| 32 | + echo " バージョン: $(tailscale version --short 2>/dev/null || echo 'バージョン取得失敗')" |
| 33 | + |
| 34 | + # Check tailscaled daemon |
| 35 | + if pgrep -x tailscaled >/dev/null; then |
| 36 | + echo " ✅ tailscaled デーモン動作中" |
| 37 | + echo " PID: $(pgrep -x tailscaled)" |
| 38 | + else |
| 39 | + echo " ❌ tailscaled デーモン停止中" |
| 40 | + echo " 起動コマンド: sudo tailscaled --tun=userspace-networking --socks5-server=localhost:1055 &" |
| 41 | + fi |
| 42 | + |
| 43 | + # Check Tailscale status |
| 44 | + if sudo tailscale status >/dev/null 2>&1; then |
| 45 | + echo " ✅ Tailscale 接続確認済み" |
| 46 | + sudo tailscale status | head -3 | sed 's/^/ /' |
| 47 | + else |
| 48 | + echo " ⚠️ Tailscale 未接続または未認証" |
| 49 | + echo " 認証コマンド: sudo tailscale up --auth-key=YOUR_KEY" |
| 50 | + fi |
| 51 | +else |
| 52 | + echo " ❌ Tailscale 未インストール" |
| 53 | + echo " インストールコマンド: curl -fsSL https://tailscale.com/install.sh | sh" |
| 54 | +fi |
| 55 | +echo "" |
| 56 | + |
| 57 | +# Check environment file |
| 58 | +echo "🔧 環境設定チェック:" |
| 59 | +if [ -f ".env" ]; then |
| 60 | + echo " ✅ .env ファイル存在" |
| 61 | + source .env 2>/dev/null || true |
| 62 | + |
| 63 | + if [ -n "$TAILSCALE_AUTH_KEY" ] && [ "$TAILSCALE_AUTH_KEY" != "your-auth-key-here" ] && [ "$TAILSCALE_AUTH_KEY" != "tskey-auth-xxxxxxxxxxxxxxxxx" ]; then |
| 64 | + echo " ✅ TAILSCALE_AUTH_KEY 設定済み" |
| 65 | + echo " キー: ${TAILSCALE_AUTH_KEY:0:15}..." |
| 66 | + else |
| 67 | + echo " ⚠️ TAILSCALE_AUTH_KEY 未設定またはテンプレート値" |
| 68 | + echo " 設定コマンド: ./scripts/setup-tailscale.sh" |
| 69 | + fi |
| 70 | +else |
| 71 | + echo " ❌ .env ファイル不在" |
| 72 | + if [ -f ".env.template" ]; then |
| 73 | + echo " 作成コマンド: cp .env.template .env" |
| 74 | + fi |
| 75 | +fi |
| 76 | +echo "" |
| 77 | + |
| 78 | +# Check services |
| 79 | +echo "🚀 サービス状態チェック:" |
| 80 | + |
| 81 | +# OpenCode CLI |
| 82 | +if pgrep -f "opencode start" >/dev/null; then |
| 83 | + echo " ✅ OpenCode CLI 動作中" |
| 84 | + echo " PID: $(pgrep -f 'opencode start')" |
| 85 | +else |
| 86 | + echo " ❌ OpenCode CLI 停止中" |
| 87 | + echo " 起動コマンド: opencode start" |
| 88 | +fi |
| 89 | + |
| 90 | +# OpenChamber |
| 91 | +if pgrep -f "openchamber" >/dev/null; then |
| 92 | + echo " ✅ OpenChamber 動作中" |
| 93 | + echo " PID: $(pgrep -f 'openchamber')" |
| 94 | +else |
| 95 | + echo " ❌ OpenChamber 停止中" |
| 96 | + echo " 起動コマンド: npm run openchamber" |
| 97 | +fi |
| 98 | +echo "" |
| 99 | + |
| 100 | +# Network connectivity test |
| 101 | +echo "🌐 ネットワーク接続テスト:" |
| 102 | +if curl -s --max-time 3 http://localhost:4095/health >/dev/null 2>&1; then |
| 103 | + echo " ✅ OpenCode CLI (localhost:4095) 応答あり" |
| 104 | +else |
| 105 | + echo " ❌ OpenCode CLI (localhost:4095) 応答なし" |
| 106 | +fi |
| 107 | + |
| 108 | +if curl -s --max-time 3 http://localhost:3000 >/dev/null 2>&1; then |
| 109 | + echo " ✅ OpenChamber (localhost:3000) 応答あり" |
| 110 | +else |
| 111 | + echo " ❌ OpenChamber (localhost:3000) 応答なし" |
| 112 | +fi |
| 113 | +echo "" |
| 114 | + |
| 115 | +# Recommendations |
| 116 | +echo "💡 推奨アクション:" |
| 117 | +if ! grep -q "127.0.0.1.*$(hostname)" /etc/hosts 2>/dev/null; then |
| 118 | + echo " 1. ホスト名解決修正: echo '127.0.0.1 $(hostname)' | sudo tee -a /etc/hosts" |
| 119 | +fi |
| 120 | + |
| 121 | +if ! pgrep -x tailscaled >/dev/null && command -v tailscale >/dev/null 2>&1; then |
| 122 | + echo " 2. Tailscaled 起動: sudo tailscaled --tun=userspace-networking --socks5-server=localhost:1055 &" |
| 123 | +fi |
| 124 | + |
| 125 | +if [ ! -f ".env" ]; then |
| 126 | + echo " 3. 環境ファイル作成: cp .env.template .env" |
| 127 | +fi |
| 128 | + |
| 129 | +if [ -f ".env" ] && source .env 2>/dev/null && ([ -z "$TAILSCALE_AUTH_KEY" ] || [ "$TAILSCALE_AUTH_KEY" = "your-auth-key-here" ]); then |
| 130 | + echo " 4. Tailscale設定: ./scripts/setup-tailscale.sh" |
| 131 | +fi |
| 132 | + |
| 133 | +echo "" |
| 134 | +echo "🔍 診断完了 - 上記の推奨アクションを実行してください" |
0 commit comments