Add full monorepo: virtual-banker, backend, frontend, docs, scripts, deployment
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
99
scripts/run-dev.sh
Executable file
99
scripts/run-dev.sh
Executable file
@@ -0,0 +1,99 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
# Get script directory and project root
|
||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
PROJECT_ROOT="$( cd "$SCRIPT_DIR/.." && pwd )"
|
||||
|
||||
# Verify we're in the right directory
|
||||
if [ ! -f "$PROJECT_ROOT/backend/go.mod" ] && [ ! -f "$PROJECT_ROOT/go.mod" ]; then
|
||||
# Try current directory if script dir detection fails
|
||||
if [ -f "backend/go.mod" ] || [ -f "go.mod" ]; then
|
||||
PROJECT_ROOT="$(pwd)"
|
||||
else
|
||||
echo "Error: Could not find project root. Please run from explorer-monorepo directory."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
cd "$PROJECT_ROOT"
|
||||
|
||||
echo "Starting ChainID 138 Explorer Platform in development mode..."
|
||||
echo "Project root: $PROJECT_ROOT"
|
||||
|
||||
# Check requirements first
|
||||
echo "Checking requirements..."
|
||||
if ! "$SCRIPT_DIR/check-requirements.sh"; then
|
||||
echo "Please install missing requirements and try again."
|
||||
exit 1
|
||||
fi
|
||||
echo ""
|
||||
|
||||
# Check if .env exists
|
||||
if [ ! -f .env ]; then
|
||||
echo "Warning: .env file not found. Creating from .env.example..."
|
||||
if [ -f .env.example ]; then
|
||||
cp .env.example .env
|
||||
echo "Created .env from .env.example - please update with your configuration"
|
||||
else
|
||||
echo "Warning: .env.example not found. Using defaults."
|
||||
fi
|
||||
fi
|
||||
|
||||
# Start infrastructure
|
||||
echo "Starting infrastructure services..."
|
||||
docker-compose -f deployment/docker-compose.yml up -d postgres elasticsearch redis
|
||||
|
||||
# Wait for services
|
||||
echo "Waiting for services to be ready..."
|
||||
sleep 10
|
||||
|
||||
# Run migrations
|
||||
echo "Running database migrations..."
|
||||
cd backend
|
||||
go run database/migrations/migrate.go || echo "Migration failed or already applied"
|
||||
cd ..
|
||||
|
||||
# Start indexer in background
|
||||
echo "Starting indexer..."
|
||||
cd backend/indexer
|
||||
go run main.go &
|
||||
INDEXER_PID=$!
|
||||
cd ../..
|
||||
|
||||
# Start API server in background
|
||||
echo "Starting API server..."
|
||||
cd backend/api/rest
|
||||
go run main.go &
|
||||
API_PID=$!
|
||||
cd ../../..
|
||||
|
||||
# Start frontend
|
||||
echo "Starting frontend..."
|
||||
cd frontend
|
||||
npm run dev &
|
||||
FRONTEND_PID=$!
|
||||
cd ..
|
||||
|
||||
echo "All services started!"
|
||||
echo "Indexer PID: $INDEXER_PID"
|
||||
echo "API PID: $API_PID"
|
||||
echo "Frontend PID: $FRONTEND_PID"
|
||||
echo ""
|
||||
echo "Press Ctrl+C to stop all services"
|
||||
|
||||
# Wait for user interrupt
|
||||
cleanup() {
|
||||
echo ""
|
||||
echo "Stopping services..."
|
||||
kill $INDEXER_PID $API_PID $FRONTEND_PID 2>/dev/null || true
|
||||
echo "Services stopped."
|
||||
exit 0
|
||||
}
|
||||
|
||||
trap cleanup INT TERM
|
||||
|
||||
# Wait for all background processes
|
||||
wait
|
||||
|
||||
Reference in New Issue
Block a user