mnemo_cards/tools/deploy/deploy-vscode-nginx.sh

102 lines
3.2 KiB
Bash
Raw Normal View History

2025-11-19 19:32:48 +00:00
#!/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"