OverviewFilesCommitsIssuesDocsReleasesPeers

wirecore / wirecore-relay / start-relay.sh

88 lines · bash ref:
#!/bin/bash

# Wirecore Relay - Start Script
# Starts the relay server on port 9000 using Node v22
#
# Usage:
#   ./start-relay.sh              # Start with bridge enabled (default)
#   ./start-relay.sh local        # Start in local-only mode (no bridge)

set -e

cd "$(dirname "$0")/.."

NODE_BIN="$HOME/.nvm/versions/node/v22.20.0/bin/node"
RELAY_SCRIPT="relay/wirecore-relay.js"
LOG_FILE="/tmp/wirecore-relay.log"
PID_FILE="/tmp/wirecore-relay.pid"

# Check for local mode
if [ "$1" = "local" ] || [ "$ENABLE_BRIDGE" = "false" ]; then
  export ENABLE_BRIDGE=false
  MODE_TEXT="LOCAL MODE (no bridge to wiredove.net)"
else
  export ENABLE_BRIDGE=true
  MODE_TEXT="BRIDGE MODE (forwarding to wiredove.net)"
fi

# Check if Node v22 exists
if [ ! -f "$NODE_BIN" ]; then
    echo "❌ Error: Node v22.20.0 not found at $NODE_BIN"
    echo "Install with: nvm install 22.20.0"
    exit 1
fi

# Check if already running
if [ -f "$PID_FILE" ]; then
    PID=$(cat "$PID_FILE")
    if ps -p "$PID" > /dev/null 2>&1; then
        echo "⚠️  Wirecore relay already running (PID: $PID)"
        echo "Run ./wirecore-relay/stop-relay.sh first"
        exit 1
    else
        # Stale PID file
        rm -f "$PID_FILE"
    fi
fi

# Check dependencies
if [ ! -d "node_modules/hyperbee" ]; then
    echo "⚠️  hyperbee not installed, installing..."
    npm install hyperbee
fi

echo "🚀 Starting Wirecore Relay..."
echo "   Mode: $MODE_TEXT"
echo "   Node: $NODE_BIN"
echo "   Script: $RELAY_SCRIPT"
echo "   Log: $LOG_FILE"

# Start relay in background
PORT=9000 ENABLE_BRIDGE="$ENABLE_BRIDGE" "$NODE_BIN" "$RELAY_SCRIPT" > "$LOG_FILE" 2>&1 &
PID=$!

# Save PID
echo $PID > "$PID_FILE"

# Wait a moment for startup
sleep 2

# Check if still running
if ps -p "$PID" > /dev/null 2>&1; then
    echo "✅ Wirecore relay started (PID: $PID)"
    echo ""
    echo "Check status:"
    echo "  ./wirecore-relay/status-relay.sh"
    echo ""
    echo "View logs:"
    echo "  tail -f $LOG_FILE"
    echo ""
    echo "Test locally:"
    echo "  curl http://localhost:9000/stats"
else
    echo "❌ Relay failed to start. Check logs:"
    echo "  cat $LOG_FILE"
    rm -f "$PID_FILE"
    exit 1
fi