diff --git a/tools/deploy/check-nginx.sh b/tools/deploy/check-nginx.sh new file mode 100755 index 0000000..eefdc9c --- /dev/null +++ b/tools/deploy/check-nginx.sh @@ -0,0 +1,80 @@ +#!/bin/bash + +# Script to check and reload nginx + +set -e + +SERVER_IP="147.45.152.129" +SERVER_USER="root" + +echo "๐Ÿ”ง Checking and reloading nginx..." +echo "" + +ssh "$SERVER_USER@$SERVER_IP" << 'ENDSSH' + set -e + + echo "๐Ÿ“Š Checking nginx status..." + if /usr/sbin/nginx -v 2>&1; then + echo "โœ… nginx is installed" + else + echo "โŒ nginx is NOT installed" + exit 1 + fi + + echo "" + echo "๐Ÿ“Š Testing nginx configuration..." + /usr/sbin/nginx -t + + echo "" + echo "๐Ÿ“Š Checking nginx service status..." + systemctl status nginx --no-pager || true + + echo "" + echo "๐Ÿ”„ Reloading nginx..." + systemctl reload nginx + + echo "โœ… nginx reloaded" + + echo "" + echo "๐Ÿ“Š Checking if nginx is running..." + systemctl is-active nginx && echo "โœ… nginx is active" || echo "โŒ nginx is not active" + + echo "" + echo "๐Ÿ“Š Checking vscode.mnemo-cards.online nginx config..." + if [ -f /etc/nginx/sites-enabled/vscode.mnemo-cards.online ]; then + echo "โœ… vscode nginx config is enabled" + elif [ -f /etc/nginx/sites-available/vscode.mnemo-cards.online ]; then + echo "โš ๏ธ vscode nginx config exists but not enabled" + echo "Enabling it..." + ln -sf /etc/nginx/sites-available/vscode.mnemo-cards.online /etc/nginx/sites-enabled/ + /usr/sbin/nginx -t && systemctl reload nginx + echo "โœ… Enabled and reloaded" + else + echo "โŒ vscode nginx config not found" + fi + + echo "" + echo "๐Ÿ“Š Checking code.mnemo-cards.online DNS resolution..." + if host code.mnemo-cards.online &> /dev/null; then + host code.mnemo-cards.online + else + echo "โš ๏ธ DNS resolution failed for code.mnemo-cards.online" + fi + + if host vscode.mnemo-cards.online &> /dev/null; then + host vscode.mnemo-cards.online + else + echo "โš ๏ธ DNS resolution failed for vscode.mnemo-cards.online" + fi + +ENDSSH + +echo "" +echo "โœ… Done!" +echo "" +echo "๐ŸŒ Now test these URLs in your browser:" +echo " https://vscode.mnemo-cards.online/" +echo " https://code.mnemo-cards.online/" +echo "" +echo "๐Ÿ”‘ Password: AGktOidxrah1KVC0" + diff --git a/tools/deploy/deploy-vscode-nginx.sh b/tools/deploy/deploy-vscode-nginx.sh new file mode 100755 index 0000000..e596f3b --- /dev/null +++ b/tools/deploy/deploy-vscode-nginx.sh @@ -0,0 +1,101 @@ +#!/bin/bash + +# Script to deploy VSCode nginx configuration to the server + +set -e + +SERVER_IP="147.45.152.129" +SERVER_USER="root" +SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" +PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)" +VSCODE_NGINX_CONF="$PROJECT_ROOT/mnemo_cards_web_v2/deploy/vscode-nginx.conf" + +echo "๐Ÿš€ Deploying VSCode nginx configuration..." +echo "Server: $SERVER_IP" +echo "Config file: $VSCODE_NGINX_CONF" +echo "" + +# Check if config file exists +if [ ! -f "$VSCODE_NGINX_CONF" ]; then + echo "โŒ Config file not found: $VSCODE_NGINX_CONF" + exit 1 +fi + +echo "๐Ÿ“ค Uploading nginx configuration..." +scp "$VSCODE_NGINX_CONF" "$SERVER_USER@$SERVER_IP:/tmp/vscode-nginx.conf" + +echo "" +echo "โš™๏ธ Installing configuration on server..." + +ssh "$SERVER_USER@$SERVER_IP" << 'ENDSSH' + set -e + + echo "๐Ÿ“‹ Moving config to nginx sites-available..." + mv /tmp/vscode-nginx.conf /etc/nginx/sites-available/vscode.mnemo-cards.online + + echo "๐Ÿ”— Creating symbolic link in sites-enabled..." + ln -sf /etc/nginx/sites-available/vscode.mnemo-cards.online /etc/nginx/sites-enabled/vscode.mnemo-cards.online + + echo "โœ… Configuration installed" + + echo "" + echo "๐Ÿ“Š Checking nginx configuration syntax..." + /usr/sbin/nginx -t + + echo "" + echo "๐Ÿ”„ Reloading nginx..." + systemctl reload nginx + + echo "โœ… nginx reloaded successfully" + + echo "" + echo "๐Ÿ“Š Checking SSL certificates..." + if [ -d "/etc/letsencrypt/live/vscode.mnemo-cards.online" ]; then + echo "โœ… Let's Encrypt certificates found" + ls -la /etc/letsencrypt/live/vscode.mnemo-cards.online/ + else + echo "โš ๏ธ Let's Encrypt certificates not found" + echo "You may need to obtain certificates with:" + echo " sudo certbot certonly --standalone -d vscode.mnemo-cards.online" + fi + + echo "" + echo "๐Ÿ“Š Checking rate limiting zones in main nginx config..." + if grep -q "vscode_general" /etc/nginx/nginx.conf; then + echo "โœ… Rate limiting zones are configured" + else + echo "โš ๏ธ Rate limiting zones not found in main config" + echo "Adding rate limiting zones..." + + # Backup current config + cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.backup + + # Add rate limiting zones in http block + sed -i '/http {/a\ # Rate limiting zones for VSCode Server\n limit_req_zone $binary_remote_addr zone=vscode_general:10m rate=100r/m;\n limit_req_zone $binary_remote_addr zone=vscode_login:10m rate=5r/m;' /etc/nginx/nginx.conf + + echo "โœ… Rate limiting zones added" + + echo "" + echo "๐Ÿ“Š Testing updated configuration..." + /usr/sbin/nginx -t + + echo "" + echo "๐Ÿ”„ Reloading nginx again..." + systemctl reload nginx + fi + +ENDSSH + +echo "" +echo "โœ… Done!" +echo "" +echo "๐ŸŒ VSCode Server should now be accessible at:" +echo " https://vscode.mnemo-cards.online/" +echo " https://code.mnemo-cards.online/ (same service)" +echo "" +echo "๐Ÿ”‘ Password: AGktOidxrah1KVC0" +echo "" +echo "๐Ÿ“ If you get SSL errors, you may need to obtain certificates:" +echo " ssh root@$SERVER_IP" +echo " sudo certbot certonly --standalone -d vscode.mnemo-cards.online -d code.mnemo-cards.online" + diff --git a/tools/deploy/find-code-domain-conflicts.sh b/tools/deploy/find-code-domain-conflicts.sh new file mode 100644 index 0000000..faf9081 --- /dev/null +++ b/tools/deploy/find-code-domain-conflicts.sh @@ -0,0 +1,70 @@ +#!/bin/bash + +# Script to find and resolve conflicts with code.mnemo-cards.online domain + +set -e + +SERVER_IP="147.45.152.129" +SERVER_USER="root" + +echo "๐Ÿ” Finding conflicts for code.mnemo-cards.online..." +echo "" + +ssh "$SERVER_USER@$SERVER_IP" << 'ENDSSH' + set -e + + echo "๐Ÿ“Š Searching for code.mnemo-cards.online in all nginx configs..." + echo "" + + # Find all files containing code.mnemo-cards.online + echo "=== Files in sites-available ===" + grep -r "code.mnemo-cards.online" /etc/nginx/sites-available/ 2>/dev/null || echo "None found" + + echo "" + echo "=== Files in sites-enabled ===" + ls -la /etc/nginx/sites-enabled/ | grep -E "(code|forgejo)" + + echo "" + echo "=== Checking forgejo config ===" + if [ -f /etc/nginx/sites-available/forgejo ]; then + echo "Found forgejo config. Checking server_name:" + grep "server_name" /etc/nginx/sites-available/forgejo || true + fi + + echo "" + echo "๐Ÿ”ง Solution: code.mnemo-cards.online is likely used by Forgejo" + echo "We should remove it from Forgejo config and keep it only in vscode config" + echo "" + + read -p "Do you want to remove code.mnemo-cards.online from Forgejo config? (y/n) " -n 1 -r + echo + if [[ $REPLY =~ ^[Yy]$ ]]; then + echo "Updating Forgejo config..." + + # Backup forgejo config + cp /etc/nginx/sites-available/forgejo /etc/nginx/sites-available/forgejo.backup + + # Remove code.mnemo-cards.online from server_name + sed -i 's/code\.mnemo-cards\.online//g' /etc/nginx/sites-available/forgejo + sed -i 's/server_name /server_name /g' /etc/nginx/sites-available/forgejo + + echo "โœ… Updated forgejo config" + + echo "" + echo "Testing nginx config..." + /usr/sbin/nginx -t + + echo "" + echo "Reloading nginx..." + systemctl reload nginx + + echo "โœ… Done!" + else + echo "Skipping..." + fi + +ENDSSH + +echo "" +echo "โœ… Complete!" + diff --git a/tools/deploy/fix-code-domain-conflict.sh b/tools/deploy/fix-code-domain-conflict.sh new file mode 100755 index 0000000..9d2a24f --- /dev/null +++ b/tools/deploy/fix-code-domain-conflict.sh @@ -0,0 +1,92 @@ +#!/bin/bash + +# Script to automatically fix code.mnemo-cards.online domain conflict + +set -e + +SERVER_IP="147.45.152.129" +SERVER_USER="root" + +echo "๐Ÿ”ง Fixing code.mnemo-cards.online domain conflict..." +echo "" + +ssh "$SERVER_USER@$SERVER_IP" << 'ENDSSH' + set -e + + echo "๐Ÿ“Š Searching for code.mnemo-cards.online in nginx configs..." + echo "" + + # Find all files containing code.mnemo-cards.online + echo "Files containing code.mnemo-cards.online:" + grep -l "code.mnemo-cards.online" /etc/nginx/sites-available/* 2>/dev/null | sort | uniq || echo "None found" + + echo "" + echo "=== Current server_name in forgejo config ===" + if [ -f /etc/nginx/sites-available/forgejo ]; then + grep "server_name" /etc/nginx/sites-available/forgejo | head -5 || true + fi + + echo "" + echo "๐Ÿ”ง Removing code.mnemo-cards.online from Forgejo config..." + + if [ -f /etc/nginx/sites-available/forgejo ]; then + # Backup forgejo config + cp /etc/nginx/sites-available/forgejo /etc/nginx/sites-available/forgejo.backup.$(date +%Y%m%d_%H%M%S) + + # Remove code.mnemo-cards.online from server_name lines + # This will remove it but keep other domains + sed -i 's/code\.mnemo-cards\.online//g' /etc/nginx/sites-available/forgejo + + # Clean up any double spaces + sed -i 's/ */ /g' /etc/nginx/sites-available/forgejo + + # Clean up trailing spaces on server_name lines + sed -i '/server_name/s/ *;/;/g' /etc/nginx/sites-available/forgejo + + echo "โœ… Updated forgejo config" + + echo "" + echo "=== New server_name in forgejo config ===" + grep "server_name" /etc/nginx/sites-available/forgejo | head -5 || true + else + echo "โš ๏ธ Forgejo config not found" + fi + + echo "" + echo "๐Ÿ“Š Testing nginx configuration..." + if /usr/sbin/nginx -t 2>&1; then + echo "โœ… nginx config is valid" + + echo "" + echo "๐Ÿ”„ Reloading nginx..." + systemctl reload nginx + echo "โœ… nginx reloaded" + else + echo "โŒ nginx config is invalid, restoring backup..." + if [ -f /etc/nginx/sites-available/forgejo.backup.$(date +%Y%m%d_%H%M%S) ]; then + cp /etc/nginx/sites-available/forgejo.backup.$(date +%Y%m%d_%H%M%S) /etc/nginx/sites-available/forgejo + echo "โœ… Backup restored" + fi + exit 1 + fi + +ENDSSH + +echo "" +echo "โœ… Done! Testing URLs..." +echo "" + +# Wait a bit for nginx to fully reload +sleep 2 + +# Test the URLs +echo "Testing vscode.mnemo-cards.online..." +curl -I https://vscode.mnemo-cards.online 2>&1 | head -3 || echo "โš ๏ธ Could not reach vscode.mnemo-cards.online" + +echo "" +echo "Testing code.mnemo-cards.online..." +curl -I https://code.mnemo-cards.online 2>&1 | head -3 || echo "โš ๏ธ Could not reach code.mnemo-cards.online" + +echo "" +echo "โœ… Complete!" + diff --git a/tools/deploy/fix-nginx-duplicates.sh b/tools/deploy/fix-nginx-duplicates.sh new file mode 100755 index 0000000..98b56b6 --- /dev/null +++ b/tools/deploy/fix-nginx-duplicates.sh @@ -0,0 +1,81 @@ +#!/bin/bash + +# Script to find and fix duplicate nginx configurations + +set -e + +SERVER_IP="147.45.152.129" +SERVER_USER="root" + +echo "๐Ÿ” Finding and fixing duplicate nginx configurations..." +echo "" + +ssh "$SERVER_USER@$SERVER_IP" << 'ENDSSH' + set -e + + echo "๐Ÿ“Š Searching for vscode.mnemo-cards.online in nginx configs..." + echo "" + + # Find all nginx config files that mention vscode.mnemo-cards.online + echo "Files containing vscode.mnemo-cards.online:" + grep -r "vscode.mnemo-cards.online" /etc/nginx/sites-enabled/ 2>/dev/null | cut -d: -f1 | sort | uniq || echo "None found in sites-enabled" + + echo "" + grep -r "vscode.mnemo-cards.online" /etc/nginx/sites-available/ 2>/dev/null | cut -d: -f1 | sort | uniq || echo "None found in sites-available" + + echo "" + echo "๐Ÿ“Š Listing all enabled sites..." + ls -la /etc/nginx/sites-enabled/ + + echo "" + echo "๐Ÿ”ง Removing duplicates and old configs..." + + # Remove any old or duplicate configs + if [ -f /etc/nginx/sites-enabled/vscode ]; then + echo "Removing old 'vscode' config..." + rm -f /etc/nginx/sites-enabled/vscode + fi + + if [ -f /etc/nginx/sites-enabled/code.mnemo-cards.online ]; then + echo "Removing 'code.mnemo-cards.online' (duplicate of vscode)..." + rm -f /etc/nginx/sites-enabled/code.mnemo-cards.online + fi + + # Check if there are multiple vscode configs + VSCODE_CONFIGS=$(ls /etc/nginx/sites-enabled/vscode* 2>/dev/null | wc -l) + if [ "$VSCODE_CONFIGS" -gt 1 ]; then + echo "โš ๏ธ Found multiple vscode configs:" + ls -la /etc/nginx/sites-enabled/vscode* + + echo "" + echo "Keeping only vscode.mnemo-cards.online..." + find /etc/nginx/sites-enabled/ -name "vscode*" ! -name "vscode.mnemo-cards.online" -delete + fi + + echo "" + echo "โœ… Cleanup complete" + + echo "" + echo "๐Ÿ“Š Current enabled sites:" + ls -la /etc/nginx/sites-enabled/ + + echo "" + echo "๐Ÿ“Š Testing nginx configuration..." + /usr/sbin/nginx -t + + echo "" + echo "๐Ÿ”„ Reloading nginx..." + systemctl reload nginx + + echo "โœ… nginx reloaded successfully" + +ENDSSH + +echo "" +echo "โœ… Done!" +echo "" +echo "๐ŸŒ Testing URLs..." +curl -I https://vscode.mnemo-cards.online/ 2>&1 | head -5 || echo "โš ๏ธ Could not reach vscode.mnemo-cards.online" +echo "" +curl -I https://code.mnemo-cards.online/ 2>&1 | head -5 || echo "โš ๏ธ Could not reach code.mnemo-cards.online" + diff --git a/tools/deploy/fix-vscode-server.sh b/tools/deploy/fix-vscode-server.sh new file mode 100755 index 0000000..a308fe6 --- /dev/null +++ b/tools/deploy/fix-vscode-server.sh @@ -0,0 +1,172 @@ +#!/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'" + diff --git a/tools/deploy/test-vscode-final.sh b/tools/deploy/test-vscode-final.sh new file mode 100755 index 0000000..4be63d7 --- /dev/null +++ b/tools/deploy/test-vscode-final.sh @@ -0,0 +1,38 @@ +#!/bin/bash + +# Final test of VSCode Server + +set -e + +echo "๐Ÿงช Final test of VSCode Server availability..." +echo "" + +echo "๐Ÿ“Š Test 1: Testing vscode.mnemo-cards.online from local machine..." +if curl -I -L -m 10 https://vscode.mnemo-cards.online/ 2>&1 | head -15; then + echo "โœ… vscode.mnemo-cards.online is accessible" +else + echo "โš ๏ธ Could not reach vscode.mnemo-cards.online from local machine" + echo "This might be a firewall or DNS issue on your local network" +fi + +echo "" +echo "๐Ÿ“Š Test 2: Testing code.mnemo-cards.online (should be Forgejo, not VSCode)..." +if curl -I -L -m 10 https://code.mnemo-cards.online/ 2>&1 | head -15; then + echo "โœ… code.mnemo-cards.online is accessible (this is Forgejo/Git)" +else + echo "โš ๏ธ Could not reach code.mnemo-cards.online" +fi + +echo "" +echo "๐Ÿ“Š Test 3: Testing from server itself..." +ssh root@147.45.152.129 'curl -I https://vscode.mnemo-cards.online 2>&1 | head -10' + +echo "" +echo "โœ… Testing complete!" +echo "" +echo "๐Ÿ“ Summary:" +echo " - https://vscode.mnemo-cards.online/ โ†’ VSCode Server" +echo " - https://code.mnemo-cards.online/ โ†’ Forgejo (Git)" +echo "" +echo "๐Ÿ”‘ VSCode password: AGktOidxrah1KVC0" + diff --git a/tools/deploy/test-vscode-from-server.sh b/tools/deploy/test-vscode-from-server.sh new file mode 100755 index 0000000..ff383fc --- /dev/null +++ b/tools/deploy/test-vscode-from-server.sh @@ -0,0 +1,76 @@ +#!/bin/bash + +# Script to test VSCode server from the server itself + +set -e + +SERVER_IP="147.45.152.129" +SERVER_USER="root" + +echo "๐Ÿงช Testing VSCode server from the server itself..." +echo "" + +ssh "$SERVER_USER@$SERVER_IP" << 'ENDSSH' + set -e + + echo "๐Ÿ“Š Step 1: Checking if nginx is listening on port 443..." + ss -tuln | grep ':443' || echo "โš ๏ธ Nothing listening on port 443" + + echo "" + echo "๐Ÿ“Š Step 2: Checking if code-server is listening on port 8443..." + ss -tuln | grep ':8443' || echo "โš ๏ธ Nothing listening on port 8443" + + echo "" + echo "๐Ÿ“Š Step 3: Testing local connection to code-server..." + curl -I http://127.0.0.1:8443 2>&1 | head -10 + + echo "" + echo "๐Ÿ“Š Step 4: Testing nginx proxy to code-server (HTTP)..." + curl -I -H "Host: vscode.mnemo-cards.online" http://127.0.0.1 2>&1 | head -10 + + echo "" + echo "๐Ÿ“Š Step 5: Testing HTTPS connection locally..." + curl -I -k https://127.0.0.1 -H "Host: vscode.mnemo-cards.online" 2>&1 | head -10 + + echo "" + echo "๐Ÿ“Š Step 6: Checking SSL certificates..." + if [ -d "/etc/letsencrypt/live/vscode.mnemo-cards.online" ]; then + echo "โœ… Certificate directory exists" + ls -la /etc/letsencrypt/live/vscode.mnemo-cards.online/ + + echo "" + echo "Certificate details:" + openssl x509 -in /etc/letsencrypt/live/vscode.mnemo-cards.online/fullchain.pem -noout -text | grep -A2 "Subject:" + openssl x509 -in /etc/letsencrypt/live/vscode.mnemo-cards.online/fullchain.pem -noout -text | grep -A2 "Not After" + else + echo "โŒ Certificate directory not found" + fi + + echo "" + echo "๐Ÿ“Š Step 7: Checking nginx error logs..." + echo "Last 20 lines of nginx error log:" + tail -20 /var/log/nginx/error.log + + echo "" + echo "๐Ÿ“Š Step 8: Checking firewall status..." + if command -v ufw &> /dev/null; then + echo "UFW status:" + ufw status + else + echo "UFW not installed" + fi + + echo "" + echo "๐Ÿ“Š Step 9: Checking iptables..." + iptables -L -n | grep -E "(443|REJECT|DROP)" || echo "No blocking rules found for port 443" + + echo "" + echo "๐Ÿ“Š Step 10: Testing external connection..." + echo "Attempting to connect to vscode.mnemo-cards.online from the server..." + curl -I https://vscode.mnemo-cards.online 2>&1 | head -10 + +ENDSSH + +echo "" +echo "โœ… Test complete!" +