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]"