#!/bin/bash # # MyBeacon - Start Both Backend and Frontend # set -e # Colors RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' # No Color # Get script directory SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" BACKEND_DIR="$SCRIPT_DIR/backend" FRONTEND_DIR="$SCRIPT_DIR/frontend" MODE="${1:-dev}" echo -e "${BLUE}╔════════════════════════════════════╗${NC}" echo -e "${BLUE}║ MyBeacon - Full Stack Startup ║${NC}" echo -e "${BLUE}╚════════════════════════════════════╝${NC}" echo "" # Function to cleanup on exit cleanup() { echo -e "\n${YELLOW}Stopping all services...${NC}" cd "$BACKEND_DIR" && ./start.sh stop 2>/dev/null || true cd "$FRONTEND_DIR" && ./start.sh stop 2>/dev/null || true exit 0 } trap cleanup SIGINT SIGTERM case "$MODE" in dev) echo -e "${GREEN}Starting in DEVELOPMENT mode...${NC}" echo "" # Start backend in background echo -e "${BLUE}[1/2]${NC} Starting Backend..." cd "$BACKEND_DIR" ./start.sh background echo "" sleep 3 # Start frontend in foreground echo -e "${BLUE}[2/2]${NC} Starting Frontend..." cd "$FRONTEND_DIR" ./start.sh dev ;; background) echo -e "${GREEN}Starting in BACKGROUND mode...${NC}" echo "" # Start backend echo -e "${BLUE}[1/2]${NC} Starting Backend..." cd "$BACKEND_DIR" ./start.sh background echo "" sleep 2 # Start frontend echo -e "${BLUE}[2/2]${NC} Starting Frontend..." cd "$FRONTEND_DIR" ./start.sh background echo "" echo -e "${GREEN}════════════════════════════════════${NC}" echo -e "${GREEN}All services started!${NC}" echo "" echo -e "Backend: ${YELLOW}http://localhost:8000${NC}" echo -e "Frontend: ${YELLOW}http://localhost:5173${NC}" echo "" echo -e "Backend logs: ${YELLOW}tail -f /tmp/backend_live.log${NC}" echo -e "Frontend logs: ${YELLOW}tail -f /tmp/frontend_dev.log${NC}" echo "" echo -e "Stop all: ${YELLOW}$0 stop${NC}" ;; stop) echo -e "${YELLOW}Stopping all services...${NC}" cd "$BACKEND_DIR" && ./start.sh stop cd "$FRONTEND_DIR" && ./start.sh stop echo -e "${GREEN}All services stopped${NC}" ;; restart) echo -e "${YELLOW}Restarting all services...${NC}" "$0" stop sleep 2 exec "$0" background ;; status) echo -e "${BLUE}Backend Status:${NC}" cd "$BACKEND_DIR" && ./start.sh status echo "" echo -e "${BLUE}Frontend Status:${NC}" cd "$FRONTEND_DIR" && ./start.sh status ;; logs) echo -e "${GREEN}Showing logs (Ctrl+C to exit)...${NC}" echo "" # Check which logs exist BACKEND_LOG="/tmp/backend_live.log" FRONTEND_LOG="/tmp/frontend_dev.log" LOGS="" [ -f "$BACKEND_LOG" ] && LOGS="$LOGS $BACKEND_LOG" [ -f "$FRONTEND_LOG" ] && LOGS="$LOGS $FRONTEND_LOG" if [ -z "$LOGS" ]; then echo -e "${YELLOW}No logs found. Services not running?${NC}" exit 1 fi tail -f $LOGS ;; *) echo "Usage: $0 {dev|background|stop|restart|status|logs}" echo "" echo "Modes:" echo " dev - Development mode (frontend interactive)" echo " background - Both services in background" echo " stop - Stop all services" echo " restart - Restart all services" echo " status - Check services status" echo " logs - Show logs from all services" echo "" echo "Examples:" echo " $0 dev # Dev mode (recommended)" echo " $0 background # Start all in background" echo " $0 logs # Watch all logs" exit 1 ;; esac