172 lines
5.2 KiB
Bash
Executable file
172 lines
5.2 KiB
Bash
Executable file
#!/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'"
|
|
|