140 lines
4.7 KiB
Bash
Executable File
140 lines
4.7 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Quick fix script for services slug page issues
|
|
# Fixes:
|
|
# 1. Backend ALLOWED_HOSTS (adds gnxsoft.com if missing)
|
|
# 2. Frontend standalone mode startup
|
|
# 3. Restarts services
|
|
|
|
# Colors for output
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
BLUE='\033[0;34m'
|
|
NC='\033[0m' # No Color
|
|
|
|
echo -e "${BLUE}=========================================="
|
|
echo "Fixing Services Slug Page Issues"
|
|
echo "==========================================${NC}"
|
|
echo ""
|
|
|
|
BACKEND_DIR="/var/www/GNX-WEB/backEnd"
|
|
FRONTEND_DIR="/var/www/GNX-WEB/frontEnd"
|
|
BACKEND_ENV="$BACKEND_DIR/.env"
|
|
|
|
# 1. Fix ALLOWED_HOSTS in backend .env
|
|
echo -e "${BLUE}[1/3] Fixing backend ALLOWED_HOSTS...${NC}"
|
|
if [ -f "$BACKEND_ENV" ]; then
|
|
# Check if gnxsoft.com is in ALLOWED_HOSTS
|
|
if grep -q "^ALLOWED_HOSTS=" "$BACKEND_ENV"; then
|
|
current_hosts=$(grep "^ALLOWED_HOSTS=" "$BACKEND_ENV" | cut -d'=' -f2-)
|
|
|
|
if echo "$current_hosts" | grep -q "gnxsoft.com"; then
|
|
echo -e "${GREEN}✓ gnxsoft.com already in ALLOWED_HOSTS${NC}"
|
|
else
|
|
echo -e "${YELLOW}Adding gnxsoft.com to ALLOWED_HOSTS...${NC}"
|
|
# Add gnxsoft.com if not present
|
|
if [[ "$current_hosts" == *"gnxsoft.com"* ]]; then
|
|
echo -e "${GREEN}✓ Already present${NC}"
|
|
else
|
|
# Remove any trailing spaces and add gnxsoft.com
|
|
new_hosts="${current_hosts},gnxsoft.com,www.gnxsoft.com"
|
|
sed -i "s|^ALLOWED_HOSTS=.*|ALLOWED_HOSTS=$new_hosts|" "$BACKEND_ENV"
|
|
echo -e "${GREEN}✓ Added gnxsoft.com and www.gnxsoft.com to ALLOWED_HOSTS${NC}"
|
|
fi
|
|
fi
|
|
else
|
|
echo -e "${YELLOW}ALLOWED_HOSTS not found. Adding...${NC}"
|
|
echo "ALLOWED_HOSTS=gnxsoft.com,www.gnxsoft.com,localhost,127.0.0.1" >> "$BACKEND_ENV"
|
|
echo -e "${GREEN}✓ Added ALLOWED_HOSTS${NC}"
|
|
fi
|
|
else
|
|
echo -e "${RED}✗ Backend .env file not found at $BACKEND_ENV${NC}"
|
|
exit 1
|
|
fi
|
|
|
|
echo ""
|
|
|
|
# 2. Fix frontend startup (standalone mode)
|
|
echo -e "${BLUE}[2/3] Fixing frontend startup for standalone mode...${NC}"
|
|
cd "$FRONTEND_DIR"
|
|
|
|
# Check if standalone mode is enabled
|
|
if grep -q '"output":\s*"standalone"' next.config.js 2>/dev/null || grep -q "output:.*'standalone'" next.config.js 2>/dev/null; then
|
|
echo -e "${GREEN}✓ Standalone mode detected${NC}"
|
|
|
|
# Check if standalone server exists
|
|
if [ ! -f ".next/standalone/server.js" ]; then
|
|
echo -e "${YELLOW}Standalone server not found. Rebuilding frontend...${NC}"
|
|
NODE_ENV=production npm run build
|
|
else
|
|
echo -e "${GREEN}✓ Standalone server exists${NC}"
|
|
fi
|
|
|
|
# Stop existing frontend if running
|
|
if pm2 list | grep -q "gnxsoft-frontend"; then
|
|
echo -e "${YELLOW}Stopping existing frontend...${NC}"
|
|
pm2 delete gnxsoft-frontend 2>/dev/null || true
|
|
sleep 2
|
|
fi
|
|
|
|
# Start with standalone server
|
|
echo -e "${BLUE}Starting frontend with standalone server...${NC}"
|
|
PORT=1087 NODE_ENV=production pm2 start node \
|
|
--name "gnxsoft-frontend" \
|
|
--cwd "$FRONTEND_DIR" \
|
|
-- \
|
|
".next/standalone/server.js"
|
|
|
|
echo -e "${GREEN}✓ Frontend started in standalone mode${NC}"
|
|
else
|
|
echo -e "${YELLOW}⚠ Standalone mode not detected. Using standard startup...${NC}"
|
|
|
|
# Stop existing frontend if running
|
|
if pm2 list | grep -q "gnxsoft-frontend"; then
|
|
echo -e "${YELLOW}Stopping existing frontend...${NC}"
|
|
pm2 delete gnxsoft-frontend 2>/dev/null || true
|
|
sleep 2
|
|
fi
|
|
|
|
# Start with npm start
|
|
PORT=1087 NODE_ENV=production pm2 start npm \
|
|
--name "gnxsoft-frontend" \
|
|
-- start
|
|
|
|
echo -e "${GREEN}✓ Frontend started in standard mode${NC}"
|
|
fi
|
|
|
|
echo ""
|
|
|
|
# 3. Restart backend to apply ALLOWED_HOSTS changes
|
|
echo -e "${BLUE}[3/3] Restarting backend to apply changes...${NC}"
|
|
if pm2 list | grep -q "gnxsoft-backend"; then
|
|
pm2 restart gnxsoft-backend
|
|
echo -e "${GREEN}✓ Backend restarted${NC}"
|
|
else
|
|
echo -e "${YELLOW}⚠ Backend not running in PM2${NC}"
|
|
fi
|
|
|
|
echo ""
|
|
|
|
# Save PM2 configuration
|
|
pm2 save
|
|
|
|
echo -e "${GREEN}=========================================="
|
|
echo "Fix Complete!"
|
|
echo "==========================================${NC}"
|
|
echo ""
|
|
echo -e "${BLUE}Summary of changes:${NC}"
|
|
echo " 1. ✓ Backend ALLOWED_HOSTS updated"
|
|
echo " 2. ✓ Frontend restarted in standalone mode"
|
|
echo " 3. ✓ Backend restarted"
|
|
echo ""
|
|
echo -e "${BLUE}Verification:${NC}"
|
|
echo " - Check frontend port: lsof -Pi :1087 -sTCP:LISTEN"
|
|
echo " - Check backend port: lsof -Pi :1086 -sTCP:LISTEN"
|
|
echo " - Test service page: curl -I https://gnxsoft.com/services/YOUR-SLUG"
|
|
echo " - View logs: pm2 logs gnxsoft-frontend --lines 20"
|
|
echo ""
|
|
|