tools
This commit is contained in:
parent
564cf93cad
commit
bccb4146d3
8 changed files with 710 additions and 0 deletions
80
tools/deploy/check-nginx.sh
Executable file
80
tools/deploy/check-nginx.sh
Executable file
|
|
@ -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"
|
||||
|
||||
101
tools/deploy/deploy-vscode-nginx.sh
Executable file
101
tools/deploy/deploy-vscode-nginx.sh
Executable file
|
|
@ -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"
|
||||
|
||||
70
tools/deploy/find-code-domain-conflicts.sh
Normal file
70
tools/deploy/find-code-domain-conflicts.sh
Normal file
|
|
@ -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!"
|
||||
|
||||
92
tools/deploy/fix-code-domain-conflict.sh
Executable file
92
tools/deploy/fix-code-domain-conflict.sh
Executable file
|
|
@ -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!"
|
||||
|
||||
81
tools/deploy/fix-nginx-duplicates.sh
Executable file
81
tools/deploy/fix-nginx-duplicates.sh
Executable file
|
|
@ -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"
|
||||
|
||||
172
tools/deploy/fix-vscode-server.sh
Executable file
172
tools/deploy/fix-vscode-server.sh
Executable file
|
|
@ -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'"
|
||||
|
||||
38
tools/deploy/test-vscode-final.sh
Executable file
38
tools/deploy/test-vscode-final.sh
Executable file
|
|
@ -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"
|
||||
|
||||
76
tools/deploy/test-vscode-from-server.sh
Executable file
76
tools/deploy/test-vscode-from-server.sh
Executable file
|
|
@ -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!"
|
||||
|
||||
Loading…
Reference in a new issue