Files
proxmox/scripts/setup-beta-path.sh
defiQUG cb47cce074 Complete markdown files cleanup and organization
- Organized 252 files across project
- Root directory: 187 → 2 files (98.9% reduction)
- Moved configuration guides to docs/04-configuration/
- Moved troubleshooting guides to docs/09-troubleshooting/
- Moved quick start guides to docs/01-getting-started/
- Moved reports to reports/ directory
- Archived temporary files
- Generated comprehensive reports and documentation
- Created maintenance scripts and guides

All files organized according to established standards.
2026-01-06 01:46:25 -08:00

146 lines
4.8 KiB
Bash
Executable File

#!/usr/bin/env bash
# Set up /beta/ path for SolaceScanScout testing
# Usage: ./setup-beta-path.sh
set -euo pipefail
IP="${IP:-192.168.11.140}"
DOMAIN="${DOMAIN:-explorer.d-bis.org}"
PASSWORD="${PASSWORD:-L@kers2010}"
# Colors
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
CYAN='\033[0;36m'
NC='\033[0m'
log_info() { echo -e "${BLUE}[INFO]${NC} $1"; }
log_success() { echo -e "${GREEN}[✓]${NC} $1"; }
log_warn() { echo -e "${YELLOW}[WARN]${NC} $1"; }
log_error() { echo -e "${RED}[ERROR]${NC} $1"; }
log_step() { echo -e "${CYAN}[STEP]${NC} $1"; }
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
FRONTEND_FILE="$PROJECT_ROOT/explorer-monorepo/frontend/public/index.html"
if [ ! -f "$FRONTEND_FILE" ]; then
log_error "Frontend file not found: $FRONTEND_FILE"
exit 1
fi
echo "════════════════════════════════════════════════════════"
echo "Set up Beta Path for SolaceScanScout"
echo "════════════════════════════════════════════════════════"
echo ""
log_step "Step 1: Creating beta directory..."
sshpass -p "$PASSWORD" ssh -o StrictHostKeyChecking=no root@"$IP" \
"mkdir -p /var/www/html/beta && chmod 755 /var/www/html/beta"
log_success "Beta directory created"
log_step "Step 2: Deploying SolaceScanScout to beta path..."
sshpass -p "$PASSWORD" scp -o StrictHostKeyChecking=no \
"$FRONTEND_FILE" \
root@"$IP":/var/www/html/beta/index.html
log_success "Files deployed to /beta/"
log_step "Step 3: Configuring nginx for /beta/ path..."
sshpass -p "$PASSWORD" ssh -o StrictHostKeyChecking=no root@"$IP" << 'NGINX_CONFIG'
# Check if nginx config exists
NGINX_CONF="/etc/nginx/sites-available/explorer"
if [ ! -f "$NGINX_CONF" ]; then
# Find the actual nginx config file
NGINX_CONF=$(ls /etc/nginx/sites-enabled/* 2>/dev/null | head -1)
if [ -z "$NGINX_CONF" ]; then
NGINX_CONF="/etc/nginx/sites-available/default"
fi
fi
# Backup config
cp "$NGINX_CONF" "${NGINX_CONF}.backup.$(date +%Y%m%d_%H%M%S)"
# Check if beta location already exists
if grep -q "location /beta" "$NGINX_CONF"; then
echo "Beta location already exists, updating..."
# Remove existing beta location block
sed -i '/location \/beta/,/^[[:space:]]*}/d' "$NGINX_CONF"
fi
# Add beta location block before the main location block
# Find the main location / block and insert before it
if grep -q "location / {" "$NGINX_CONF"; then
# Insert beta location before main location
sed -i '/location \/ {/i\
# Beta path for SolaceScanScout testing\
location /beta {\
alias /var/www/html/beta;\
index index.html;\
try_files $uri $uri/ /beta/index.html;\
}\
' "$NGINX_CONF"
else
# Append to end of server block
sed -i '/server {/a\
# Beta path for SolaceScanScout testing\
location /beta {\
alias /var/www/html/beta;\
index index.html;\
try_files $uri $uri/ /beta/index.html;\
}\
' "$NGINX_CONF"
fi
# Test nginx configuration
if nginx -t 2>/dev/null; then
echo "Nginx configuration is valid"
systemctl reload nginx
echo "Nginx reloaded successfully"
else
echo "ERROR: Nginx configuration test failed"
echo "Restoring backup..."
cp "${NGINX_CONF}.backup."* "$NGINX_CONF" 2>/dev/null || true
exit 1
fi
NGINX_CONFIG
if [ $? -eq 0 ]; then
log_success "Nginx configured for /beta/ path"
else
log_error "Failed to configure nginx"
exit 1
fi
log_step "Step 4: Verifying beta path..."
sleep 2
if curl -k -sI "https://$DOMAIN/beta/" 2>&1 | grep -qi "HTTP.*200"; then
log_success "Beta path is accessible!"
# Check if it shows SolaceScanScout
if curl -k -s "https://$DOMAIN/beta/" 2>&1 | grep -qi "SolaceScanScout"; then
log_success "SolaceScanScout is live at beta path!"
else
log_warn "Beta path accessible but may not show SolaceScanScout - check manually"
fi
else
log_warn "Beta path may not be accessible - check nginx configuration"
fi
echo ""
log_success "════════════════════════════════════════════════════════"
log_success "Beta Path Setup Complete!"
log_success "════════════════════════════════════════════════════════"
echo ""
log_info "Beta URL: https://$DOMAIN/beta/"
log_info "Production URL: https://$DOMAIN/ (unchanged)"
echo ""
log_info "To test:"
log_info " curl -k https://$DOMAIN/beta/"
log_info " or visit: https://$DOMAIN/beta/ in your browser"
echo ""