131 lines
3.9 KiB
Bash
131 lines
3.9 KiB
Bash
#!/usr/bin/env bash
|
|
# Frontend Fix Script - Run this on Proxmox Host
|
|
|
|
set -e
|
|
|
|
VMID=10130
|
|
FRONTEND_DIR="/opt/dbis-core/frontend"
|
|
|
|
echo "========================================="
|
|
echo "Frontend Deployment Fix"
|
|
echo "========================================="
|
|
echo ""
|
|
|
|
# Check if pct command exists (Proxmox host)
|
|
if ! command -v pct &> /dev/null; then
|
|
echo "❌ ERROR: This script must be run on the Proxmox host"
|
|
echo " The 'pct' command is required to access containers"
|
|
echo ""
|
|
echo "Please SSH into your Proxmox host and run:"
|
|
echo " cd /home/intlc/projects/proxmox/dbis_core"
|
|
echo " ./scripts/run-frontend-fix.sh"
|
|
exit 1
|
|
fi
|
|
|
|
# Check container exists
|
|
if ! pct status $VMID &>/dev/null; then
|
|
echo "❌ ERROR: Container $VMID not found"
|
|
exit 1
|
|
fi
|
|
|
|
echo "✅ Container $VMID found"
|
|
echo ""
|
|
|
|
# Check if container is running
|
|
CONTAINER_STATUS=$(pct status $VMID 2>/dev/null | awk '{print $2}' || echo "stopped")
|
|
if [ "$CONTAINER_STATUS" != "running" ]; then
|
|
echo "Starting container $VMID..."
|
|
pct start $VMID
|
|
sleep 5
|
|
fi
|
|
|
|
echo "Container is running"
|
|
echo ""
|
|
|
|
# Step 1: Check if frontend directory exists
|
|
echo "Step 1: Checking frontend directory..."
|
|
if pct exec $VMID -- test -d "$FRONTEND_DIR"; then
|
|
echo "✅ Frontend directory exists: $FRONTEND_DIR"
|
|
else
|
|
echo "❌ Frontend directory not found: $FRONTEND_DIR"
|
|
echo " Please check the deployment configuration"
|
|
exit 1
|
|
fi
|
|
echo ""
|
|
|
|
# Step 2: Install dependencies
|
|
echo "Step 2: Installing dependencies..."
|
|
pct exec $VMID -- bash -c "cd $FRONTEND_DIR && npm install" 2>&1 | grep -vE "(perl: warning|locale:)" || {
|
|
echo "⚠️ npm install had warnings, continuing..."
|
|
}
|
|
echo "✅ Dependencies installed"
|
|
echo ""
|
|
|
|
# Step 3: Build frontend
|
|
echo "Step 3: Building frontend application..."
|
|
if pct exec $VMID -- bash -c "cd $FRONTEND_DIR && npm run build" 2>&1 | grep -vE "(perl: warning|locale:)"; then
|
|
echo "✅ Build completed"
|
|
else
|
|
echo "❌ Build failed - check errors above"
|
|
exit 1
|
|
fi
|
|
echo ""
|
|
|
|
# Step 4: Verify build
|
|
echo "Step 4: Verifying build..."
|
|
if pct exec $VMID -- test -f "$FRONTEND_DIR/dist/index.html"; then
|
|
echo "✅ index.html exists"
|
|
JS_COUNT=$(pct exec $VMID -- bash -c "ls -1 $FRONTEND_DIR/dist/*.js 2>/dev/null | wc -l" || echo "0")
|
|
echo "✅ Found $JS_COUNT JavaScript files"
|
|
else
|
|
echo "❌ Build verification failed - index.html not found"
|
|
exit 1
|
|
fi
|
|
echo ""
|
|
|
|
# Step 5: Restart nginx
|
|
echo "Step 5: Restarting nginx..."
|
|
if pct exec $VMID -- systemctl restart nginx 2>&1 | grep -vE "(perl: warning|locale:)"; then
|
|
echo "✅ Nginx restarted"
|
|
else
|
|
echo "⚠️ Nginx restart had issues, checking status..."
|
|
pct exec $VMID -- systemctl status nginx --no-pager -l | head -10 || true
|
|
fi
|
|
|
|
# Verify nginx is running
|
|
if pct exec $VMID -- systemctl is-active --quiet nginx; then
|
|
echo "✅ Nginx is running"
|
|
else
|
|
echo "❌ Nginx is not running"
|
|
exit 1
|
|
fi
|
|
echo ""
|
|
|
|
# Step 6: Verify nginx configuration
|
|
echo "Step 6: Verifying nginx configuration..."
|
|
NGINX_ROOT=$(pct exec $VMID -- bash -c "grep 'root' /etc/nginx/sites-available/dbis-frontend 2>/dev/null | head -1 | awk '{print \$2}' | tr -d ';'" || echo "")
|
|
if [ -n "$NGINX_ROOT" ]; then
|
|
echo "✅ Nginx root directory: $NGINX_ROOT"
|
|
if [ "$NGINX_ROOT" != "$FRONTEND_DIR/dist" ]; then
|
|
echo "⚠️ WARNING: Nginx root doesn't match expected path"
|
|
echo " Expected: $FRONTEND_DIR/dist"
|
|
echo " Found: $NGINX_ROOT"
|
|
fi
|
|
else
|
|
echo "⚠️ Could not read nginx configuration"
|
|
fi
|
|
echo ""
|
|
|
|
echo "========================================="
|
|
echo "✅ Frontend deployment fixed!"
|
|
echo "========================================="
|
|
echo ""
|
|
echo "Frontend should now be accessible at:"
|
|
echo " http://192.168.11.130"
|
|
echo ""
|
|
echo "Next steps:"
|
|
echo " 1. Clear your browser cache (Ctrl+Shift+R)"
|
|
echo " 2. Refresh the page"
|
|
echo " 3. You should see the React app, not the placeholder"
|
|
echo ""
|