#!/bin/bash # Script to diagnose and fix VSCode Server (code-server) issues # This script checks if code-server is installed, running, and configured for auto-start set -e SERVER_IP="147.45.152.129" SERVER_USER="root" echo "🔧 Diagnosing and fixing VSCode Server..." echo "Server: $SERVER_IP" echo "" ssh "$SERVER_USER@$SERVER_IP" << 'ENDSSH' set -e echo "📊 Step 1: Checking if code-server is installed..." if command -v code-server &> /dev/null; then echo "✅ code-server is installed" code-server --version || true else echo "❌ code-server is NOT installed" echo "Installing code-server..." curl -fsSL https://code-server.dev/install.sh | sh echo "✅ code-server installed" fi echo "" echo "📊 Step 2: Checking if code-server is listening on port 8443..." if netstat -tuln | grep ':8443' &> /dev/null || ss -tuln | grep ':8443' &> /dev/null; then echo "✅ Something is listening on port 8443" netstat -tuln | grep ':8443' || ss -tuln | grep ':8443' else echo "⚠️ Nothing is listening on port 8443" fi echo "" echo "📊 Step 3: Checking code-server systemd service..." if [ -f /etc/systemd/system/code-server.service ] || [ -f /lib/systemd/system/code-server@.service ]; then echo "✅ code-server service file exists" # Check service status if systemctl is-active --quiet code-server || systemctl is-active --quiet code-server@root; then echo "✅ code-server service is running" systemctl status code-server --no-pager || systemctl status code-server@root --no-pager || true else echo "❌ code-server service is NOT running" fi # Check if enabled if systemctl is-enabled --quiet code-server 2>/dev/null || systemctl is-enabled --quiet code-server@root 2>/dev/null; then echo "✅ code-server service is enabled (will start on boot)" else echo "⚠️ code-server service is NOT enabled (will not start on boot)" fi else echo "❌ code-server service file does NOT exist" fi echo "" echo "📊 Step 4: Checking code-server configuration..." if [ -f ~/.config/code-server/config.yaml ]; then echo "✅ code-server config exists" echo "Current config:" cat ~/.config/code-server/config.yaml else echo "⚠️ code-server config not found at default location" fi echo "" echo "🔧 Step 5: Fixing code-server setup..." # Create or update config echo "Creating/updating code-server configuration..." mkdir -p ~/.config/code-server cat > ~/.config/code-server/config.yaml << 'EOF' bind-addr: 127.0.0.1:8443 auth: password password: AGktOidxrah1KVC0 cert: false EOF echo "✅ Configuration updated" echo "" echo "📊 Step 6: Creating/updating systemd service..." # Create systemd service cat > /tmp/code-server.service << 'EOF' [Unit] Description=code-server After=network.target [Service] Type=simple Environment=PASSWORD=AGktOidxrah1KVC0 ExecStart=/usr/bin/code-server --bind-addr 127.0.0.1:8443 --auth password WorkingDirectory=/root Restart=always RestartSec=10 User=root [Install] WantedBy=multi-user.target EOF sudo mv /tmp/code-server.service /etc/systemd/system/code-server.service sudo chmod 644 /etc/systemd/system/code-server.service echo "✅ Service file created" echo "" echo "🔄 Step 7: Enabling and starting service..." sudo systemctl daemon-reload sudo systemctl enable code-server sudo systemctl restart code-server echo "" echo "⏳ Waiting for service to start..." sleep 3 echo "" echo "📊 Step 8: Final status check..." systemctl status code-server --no-pager || true echo "" echo "📊 Step 9: Checking if port 8443 is now listening..." if netstat -tuln | grep ':8443' &> /dev/null || ss -tuln | grep ':8443' &> /dev/null; then echo "✅ Service is listening on port 8443" netstat -tuln | grep ':8443' || ss -tuln | grep ':8443' else echo "❌ Port 8443 is still not listening" echo "Checking logs:" journalctl -u code-server -n 50 --no-pager || true fi echo "" echo "📊 Step 10: Testing nginx configuration..." if command -v nginx &> /dev/null; then echo "Testing nginx config..." sudo nginx -t echo "" echo "Reloading nginx..." sudo systemctl reload nginx echo "✅ nginx reloaded" else echo "⚠️ nginx not found" fi ENDSSH echo "" echo "✅ Done!" echo "" echo "🌐 Testing URLs..." echo " https://vscode.mnemo-cards.online/" echo " https://code.mnemo-cards.online/" echo "" echo "📝 If still not working, check:" echo " 1. DNS records for vscode.mnemo-cards.online and code.mnemo-cards.online" echo " 2. SSL certificates" echo " 3. Firewall rules" echo "" echo "🔍 Check logs:" echo " ssh root@$SERVER_IP 'journalctl -u code-server -f'" echo "" echo "🔍 Check nginx logs:" echo " ssh root@$SERVER_IP 'tail -f /var/log/nginx/error.log'"