Fix TypeScript build errors
This commit is contained in:
139
scripts/fix-frontend-deployment.sh
Executable file
139
scripts/fix-frontend-deployment.sh
Executable file
@@ -0,0 +1,139 @@
|
||||
#!/usr/bin/env bash
|
||||
# Fix Frontend Deployment - Build and Deploy Frontend Application
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
||||
|
||||
# Source utilities
|
||||
source "$PROJECT_ROOT/dbis_core/scripts/utils/common.sh" 2>/dev/null || true
|
||||
|
||||
log_info "========================================="
|
||||
log_info "Fix Frontend Deployment"
|
||||
log_info "========================================="
|
||||
log_info ""
|
||||
|
||||
# Check if running on Proxmox host
|
||||
if command_exists pct; then
|
||||
FRONTEND_VMID="${VMID_DBIS_FRONTEND:-10130}"
|
||||
|
||||
log_info "Detected Proxmox host - fixing frontend in container $FRONTEND_VMID"
|
||||
log_info ""
|
||||
|
||||
# Check if container exists
|
||||
if ! pct status "$FRONTEND_VMID" &>/dev/null; then
|
||||
log_error "Container $FRONTEND_VMID not found"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Start container if not running
|
||||
if [ "$(pct status "$FRONTEND_VMID" 2>/dev/null | awk '{print $2}')" != "running" ]; then
|
||||
log_info "Starting container $FRONTEND_VMID..."
|
||||
pct start "$FRONTEND_VMID"
|
||||
sleep 5
|
||||
fi
|
||||
|
||||
log_info "Building frontend application..."
|
||||
log_info ""
|
||||
|
||||
# Install dependencies if needed
|
||||
log_info "Checking dependencies..."
|
||||
pct exec "$FRONTEND_VMID" -- bash -c "
|
||||
cd /opt/dbis-core/frontend || cd /opt/dbis-core/frontend || { echo 'Frontend directory not found'; exit 1; }
|
||||
|
||||
if [ ! -d 'node_modules' ]; then
|
||||
echo 'Installing dependencies...'
|
||||
npm install
|
||||
else
|
||||
echo 'Dependencies already installed'
|
||||
fi
|
||||
" 2>&1 | grep -vE "(perl: warning|locale:)" || {
|
||||
log_error "Failed to install dependencies"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Build the application
|
||||
log_info "Building frontend..."
|
||||
pct exec "$FRONTEND_VMID" -- bash -c "
|
||||
cd /opt/dbis-core/frontend
|
||||
npm run build
|
||||
" 2>&1 | tail -30 | grep -vE "(perl: warning|locale:)" || {
|
||||
log_error "Build failed - check errors above"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Verify build
|
||||
log_info "Verifying build..."
|
||||
if pct exec "$FRONTEND_VMID" -- test -f /opt/dbis-core/frontend/dist/index.html; then
|
||||
log_success "✅ Build successful!"
|
||||
else
|
||||
log_error "❌ Build failed - index.html not found"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Restart nginx
|
||||
log_info "Restarting nginx..."
|
||||
pct exec "$FRONTEND_VMID" -- systemctl restart nginx 2>&1 | grep -vE "(perl: warning|locale:)" || {
|
||||
log_warn "Nginx restart had issues, checking status..."
|
||||
pct exec "$FRONTEND_VMID" -- systemctl status nginx --no-pager -l || true
|
||||
}
|
||||
|
||||
# Verify nginx is running
|
||||
if pct exec "$FRONTEND_VMID" -- systemctl is-active --quiet nginx; then
|
||||
log_success "✅ Nginx is running"
|
||||
else
|
||||
log_error "❌ Nginx is not running"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
log_success ""
|
||||
log_success "Frontend deployment fixed!"
|
||||
log_info ""
|
||||
log_info "Frontend should now be accessible at:"
|
||||
log_info " http://${DBIS_FRONTEND_IP:-192.168.11.130}"
|
||||
log_info ""
|
||||
log_info "If you still see the placeholder message:"
|
||||
log_info " 1. Clear your browser cache (Ctrl+Shift+R or Cmd+Shift+R)"
|
||||
log_info " 2. Check browser console for errors"
|
||||
log_info " 3. Verify nginx is serving from: /opt/dbis-core/frontend/dist"
|
||||
|
||||
else
|
||||
# Running directly on the container
|
||||
log_info "Running directly on container - building frontend..."
|
||||
log_info ""
|
||||
|
||||
FRONTEND_DIR="${DBIS_CORE_PROJECT_ROOT:-/opt/dbis-core}/frontend"
|
||||
|
||||
if [ ! -d "$FRONTEND_DIR" ]; then
|
||||
log_error "Frontend directory not found: $FRONTEND_DIR"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cd "$FRONTEND_DIR"
|
||||
|
||||
# Install dependencies if needed
|
||||
if [ ! -d "node_modules" ]; then
|
||||
log_info "Installing dependencies..."
|
||||
npm install
|
||||
fi
|
||||
|
||||
# Build
|
||||
log_info "Building frontend..."
|
||||
npm run build
|
||||
|
||||
# Verify
|
||||
if [ -f "dist/index.html" ]; then
|
||||
log_success "✅ Build successful!"
|
||||
else
|
||||
log_error "❌ Build failed - index.html not found"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Restart nginx
|
||||
log_info "Restarting nginx..."
|
||||
systemctl restart nginx
|
||||
|
||||
log_success ""
|
||||
log_success "Frontend deployment fixed!"
|
||||
fi
|
||||
Reference in New Issue
Block a user