#!/bin/bash # Script to fix backend server port conflict (8443 is used by code-server) # Backend should use port 8081 set -e SERVER_IP="147.45.152.129" SERVER_USER="root" echo "🔧 Fixing backend server port conflict..." echo "Backend will be moved from port 8443 to port 8081" echo "" ssh "$SERVER_USER@$SERVER_IP" << 'ENDSSH' set -e echo "📊 Step 1: Checking current port usage..." echo "Port 8443:" ss -tuln | grep 8443 || echo " Not in use" echo "" echo "Port 8081:" ss -tuln | grep 8081 || echo " Not in use" echo "" echo "🔧 Step 2: Updating backend systemd service to use port 8081..." # Backup current service file cp /etc/systemd/system/mnemo_cards_server.service /etc/systemd/system/mnemo_cards_server.service.backup.$(date +%Y%m%d_%H%M%S) # Update port from 8443 to 8081 sed -i 's/-p 8443/-p 8081/g' /etc/systemd/system/mnemo_cards_server.service echo "Updated service file:" cat /etc/systemd/system/mnemo_cards_server.service echo "" echo "🔧 Step 3: Checking nginx API configuration..." if [ -f /etc/nginx/sites-available/api ]; then echo "Current API nginx config proxy_pass:" grep "proxy_pass" /etc/nginx/sites-available/api | head -3 echo "" echo "Updating nginx to proxy to port 8081..." # Backup nginx config cp /etc/nginx/sites-available/api /etc/nginx/sites-available/api.backup.$(date +%Y%m%d_%H%M%S) # Update proxy_pass to use port 8081 and 127.0.0.1 (IPv4) instead of localhost (IPv6) sed -i 's|proxy_pass https://localhost:8443|proxy_pass http://127.0.0.1:8081|g' /etc/nginx/sites-available/api sed -i 's|proxy_pass http://localhost:8443|proxy_pass http://127.0.0.1:8081|g' /etc/nginx/sites-available/api sed -i 's|proxy_pass http://localhost:8081|proxy_pass http://127.0.0.1:8081|g' /etc/nginx/sites-available/api echo "Updated proxy_pass:" grep "proxy_pass" /etc/nginx/sites-available/api | head -3 else echo "⚠️ API nginx config not found" fi echo "" echo "📊 Step 4: Testing nginx configuration..." if /usr/sbin/nginx -t 2>&1; then echo "✅ nginx config is valid" else echo "❌ nginx config is invalid, restoring backup..." cp /etc/nginx/sites-available/api.backup.$(date +%Y%m%d_%H%M%S | sort -r | head -1) /etc/nginx/sites-available/api exit 1 fi echo "" echo "🔄 Step 5: Reloading systemd and nginx..." systemctl daemon-reload systemctl reload nginx echo "✅ Reloaded" echo "" echo "🚀 Step 6: Starting backend server..." systemctl restart mnemo_cards_server echo "" echo "⏳ Waiting for server to start..." sleep 5 echo "" echo "📊 Step 7: Checking backend server status..." systemctl status mnemo_cards_server --no-pager || true echo "" echo "📊 Step 8: Checking if port 8081 is now listening..." if ss -tuln | grep 8081; then echo "✅ Backend is listening on port 8081" else echo "⚠️ Backend is not listening on port 8081 yet" echo "Checking logs:" journalctl -u mnemo_cards_server -n 20 --no-pager fi ENDSSH echo "" echo "✅ Done!" echo "" echo "📝 Summary:" echo " - code-server: 127.0.0.1:8443 (VSCode)" echo " - backend: 0.0.0.0:8081 (API)" echo "" echo "🌐 URLs:" echo " - API: https://api.mnemo-cards.online:8081/" echo " - VSCode: https://vscode.mnemo-cards.online/"