forked from syntaxbullet/aurorabot
Scripts: - remote.sh: remove unused open_browser() function - deploy-remote.sh: add DB backup before deploy, --skip-backup flag, step numbering - db-backup.sh: fix macOS compat (xargs -r is GNU-only), use portable approach - db-restore.sh: add safety backup before restore, SQL file validation, file size display - logs.sh: default to no-follow with --tail=100, order-independent arg parsing - docker-cleanup.sh: add Docker health check, colored output - test-sequential.sh: exclude *.integration.test.ts by default, add --integration flag - simulate-ci.sh: pass --integration flag (has real DB) Tests: - db.test.ts: fix mock path from ./DrizzleClient to @shared/db/DrizzleClient - server.settings.test.ts: rewrite mocks for gameSettingsService (old config/saveConfig removed) - server.test.ts: add missing config.lootdrop and BotClient mocks, complete DrizzleClient chain - indexes.test.ts: rename to indexes.integration.test.ts (requires live DB) Config: - package.json: test script uses sequential runner, add test:ci and db:restore aliases - deploy.yml: use --integration flag in CI (has Postgres service)
53 lines
1.7 KiB
Bash
Executable File
53 lines
1.7 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# =============================================================================
|
|
# Aurora Remote Tunnel Script
|
|
# =============================================================================
|
|
# Establishes secure SSH tunnels to remote Aurora services.
|
|
# Uses autossh for automatic reconnection if available.
|
|
#
|
|
# Usage: ./remote.sh
|
|
# =============================================================================
|
|
|
|
# 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 ""
|
|
|
|
# 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
|
|
|
|
# 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
|