/ scripts / diagnose-dev.sh
diagnose-dev.sh
  1  #!/bin/bash
  2  set -e
  3  
  4  echo "============================"
  5  echo "🩺 FOLD STACK DIAGNOSTICS"
  6  echo "============================"
  7  
  8  echo ""
  9  echo "📁 Current Directory:"
 10  pwd
 11  
 12  echo ""
 13  echo "📦 Docker Compose File Check: docker-compose.dev.yml"
 14  if grep -q "^services:" docker-compose.dev.yml; then
 15    echo "✅ docker-compose.dev.yml looks valid."
 16  else
 17    echo "⚠️  Missing 'services:' in docker-compose.dev.yml — check formatting."
 18  fi
 19  
 20  echo ""
 21  echo "📋 Containers Status:"
 22  docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
 23  
 24  echo ""
 25  echo "🪵 Nginx Logs (last 20 lines):"
 26  docker logs nginx_dev --tail=20 2>/dev/null || echo "⚠️  Nginx container not found."
 27  
 28  echo ""
 29  echo "🪵 Flame Dashboard Logs (last 20 lines):"
 30  docker logs flame_dashboard_dev --tail=20 2>/dev/null || echo "⚠️  Flame container not found."
 31  
 32  echo ""
 33  echo "🪵 Forgejo Logs (last 50 lines):"
 34  docker logs forgejo_dev --tail=50 2>/dev/null || echo "⚠️  Forgejo container not found."
 35  
 36  echo ""
 37  echo "🪵 Ghost Logs (last 20 lines):"
 38  docker logs ghost_dev --tail=20 2>/dev/null || echo "⚠️  Ghost container not found."
 39  
 40  echo ""
 41  echo "🪵 Trilium Logs (last 20 lines):"
 42  docker logs trilium_dev --tail=20 2>/dev/null || echo "⚠️  Trilium container not found."
 43  
 44  echo ""
 45  echo "🪵 HedgeDoc Logs (last 20 lines):"
 46  docker logs hedgedoc_dev --tail=20 2>/dev/null || echo "⚠️  HedgeDoc container not found."
 47  
 48  echo ""
 49  echo "🪵 MailHog Logs (last 20 lines):"
 50  docker logs mailhog_dev --tail=20 2>/dev/null || echo "⚠️  MailHog container not found."
 51  
 52  echo ""
 53  echo "🪵 Nextcloud Logs (last 20 lines):"
 54  docker logs nextcloud_dev --tail=20 2>/dev/null || echo "⚠️  Nextcloud container not found."
 55  
 56  echo ""
 57  echo "🪵 Rclone Logs (last 20 lines):"
 58  docker logs rclone_dev --tail=20 2>/dev/null || echo "⚠️  Rclone container not found."
 59  
 60  echo ""
 61  echo "🪵 Git-Sync Logs (last 20 lines):"
 62  docker logs git_sync_dev --tail=20 2>/dev/null || echo "⚠️  Git-Sync container not found."
 63  
 64  echo ""
 65  echo "🌐 Port Bindings:"
 66  docker compose --env-file .env.dev -f docker-compose.dev.yml port nginx 80 || echo "❌ Nginx not exposing port 80"
 67  docker compose --env-file .env.dev -f docker-compose.dev.yml port flame_dashboard 5005 || echo "❌ Flame Dashboard not exposing port 5005"
 68  docker compose --env-file .env.dev -f docker-compose.dev.yml port ghost 2368 || echo "❌ Ghost not exposing port 2368"
 69  docker compose --env-file .env.dev -f docker-compose.dev.yml port forgejo 3000 || echo "❌ Forgejo not exposing port 3000"
 70  docker compose --env-file .env.dev -f docker-compose.dev.yml port trilium 8080 || echo "❌ Trilium not exposing port 8080"
 71  docker compose --env-file .env.dev -f docker-compose.dev.yml port hedgedoc 3000 || echo "❌ HedgeDoc not exposing port 3000"
 72  docker compose --env-file .env.dev -f docker-compose.dev.yml port mailhog 8025 || echo "❌ MailHog not exposing port 8025"
 73  docker compose --env-file .env.dev -f docker-compose.dev.yml port nextcloud 80 || echo "❌ Nextcloud not exposing port 80"
 74  
 75  echo ""
 76  echo "🔒 Forgejo Volume Permissions:"
 77  ls -ld ./volumes/forgejo || echo "❌ Missing volumes/forgejo"
 78  ls -la ./volumes/forgejo || echo "⚠️  Contents not accessible"
 79  
 80  echo ""
 81  echo "🔒 Trilium Volume Permissions:"
 82  ls -ld ./volumes/trilium || echo "❌ Missing volumes/trilium"
 83  ls -la ./volumes/trilium || echo "⚠️  Contents not accessible"
 84  
 85  echo ""
 86  echo "🔒 HedgeDoc Volume Permissions:"
 87  ls -ld ./volumes/hedgedoc/uploads || echo "❌ Missing volumes/hedgedoc/uploads"
 88  ls -la ./volumes/hedgedoc/uploads || echo "⚠️  Contents not accessible"
 89  
 90  echo ""
 91  echo "🔒 Nextcloud Volume Permissions:"
 92  ls -ld ./volumes/nextcloud/html || echo "❌ Missing volumes/nextcloud/html"
 93  ls -la ./volumes/nextcloud/html || echo "⚠️  Contents not accessible"
 94  ls -ld ./volumes/nextcloud/data || echo "❌ Missing volumes/nextcloud/data"
 95  ls -la ./volumes/nextcloud/data || echo "⚠️  Contents not accessible"
 96  
 97  echo ""
 98  echo "🔒 Flame Volume Permissions:"
 99  ls -ld ./volumes/flame || echo "❌ Missing volumes/flame"
100  ls -la ./volumes/flame || echo "⚠️  Contents not accessible"
101  
102  echo ""
103  echo "🧠 Entrypoint Script Check (forgejo-entrypoint.sh):"
104  head -n 10 scripts/forgejo-entrypoint.sh || echo "⚠️  Missing entrypoint script"
105  
106  echo ""
107  echo "📜 Environment Variables (.env.dev):"
108  if [ -f .env.dev ]; then
109    cat .env.dev | grep -v '^#'
110  else
111    echo "⚠️  .env.dev not found."
112  fi
113  
114  echo ""
115  echo "✅ All checks completed."
116  echo "If you're still seeing issues, review logs above or run:"
117  echo "  docker compose logs -f [service]"