forked from syntaxbullet/AuroraBot-discord
62 lines
1.7 KiB
Bash
Executable File
62 lines
1.7 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Load environment variables
|
|
if [ -f .env ]; then
|
|
set -a
|
|
source .env
|
|
set +a
|
|
fi
|
|
|
|
if [ -z "$VPS_HOST" ] || [ -z "$VPS_USER" ]; then
|
|
echo "Error: VPS_HOST and VPS_USER must be set in .env"
|
|
echo "Please add them to your .env file:"
|
|
echo "VPS_USER=your-username"
|
|
echo "VPS_HOST=your-ip-address"
|
|
exit 1
|
|
fi
|
|
|
|
DASHBOARD_PORT=${DASHBOARD_PORT:-3000}
|
|
STUDIO_PORT=${STUDIO_PORT:-4983}
|
|
|
|
echo "🚀 Establishing secure tunnels to Aurora services..."
|
|
echo ""
|
|
echo "📊 Dashboard: http://localhost:$DASHBOARD_PORT"
|
|
echo "🔮 Studio: http://localhost:$STUDIO_PORT (https://local.drizzle.studio)"
|
|
echo ""
|
|
echo "Press Ctrl+C to stop all connections."
|
|
echo ""
|
|
|
|
# Function to open browser (cross-platform)
|
|
open_browser() {
|
|
sleep 2 # Wait for tunnel to establish
|
|
if command -v open &> /dev/null; then
|
|
# macOS
|
|
open "http://localhost:$DASHBOARD_PORT"
|
|
elif command -v xdg-open &> /dev/null; then
|
|
# Linux
|
|
xdg-open "http://localhost:$DASHBOARD_PORT"
|
|
elif command -v start &> /dev/null; then
|
|
# Windows (Git Bash)
|
|
start "http://localhost:$DASHBOARD_PORT"
|
|
fi
|
|
}
|
|
|
|
# Check if autossh is available for auto-reconnection
|
|
if command -v autossh &> /dev/null; then
|
|
echo "✅ Using autossh for automatic reconnection"
|
|
SSH_CMD="autossh -M 0 -o ServerAliveInterval=30 -o ServerAliveCountMax=3"
|
|
else
|
|
echo "💡 Tip: Install autossh for automatic reconnection (brew install autossh)"
|
|
SSH_CMD="ssh -o ServerAliveInterval=30 -o ServerAliveCountMax=3"
|
|
fi
|
|
|
|
# Open browser in background
|
|
open_browser &
|
|
|
|
# Start both tunnels
|
|
# -N means "Do not execute a remote command". -L is for local port forwarding.
|
|
$SSH_CMD -N \
|
|
-L $DASHBOARD_PORT:127.0.0.1:$DASHBOARD_PORT \
|
|
-L $STUDIO_PORT:127.0.0.1:$STUDIO_PORT \
|
|
$VPS_USER@$VPS_HOST
|