Major Updates: - Implement Meilisearch-inspired design system (purple/pink gradients) - Complete frontend polish for all views (Home, Search, Document, Jobs) - Add PDF.js document viewer with full page navigation - Create real-time Jobs dashboard with auto-refresh - Fix Meilisearch authentication (generated secure master key) - Configure Vite for WSL2 → Windows browser access (host: 0.0.0.0) Frontend Components: - HomeView: Hero section, gradient search bar, feature cards, footer - SearchView: Real-time search, highlighted matches, result cards - DocumentView: PDF.js viewer, dark theme, page controls - JobsView: NEW - Real-time job tracking, progress bars, status badges Design System: - Colors: Purple (#d946ef) & Pink (#f43f5e) gradients - Typography: Inter font family (300-900 weights) - Components: Gradient buttons, backdrop blur, smooth animations - Responsive: Mobile-friendly layouts with Tailwind CSS Infrastructure: - Service management scripts (start-all.sh, stop-all.sh) - Comprehensive documentation in docs/handover/ - Frontend quickstart guide for WSL2 users - Master roadmap with verticals & horizontals strategy Documentation: - Complete handover documentation - Frontend polish summary with all changes - Branding creative brief for designers - Yacht management features roadmap - Platform strategy (4 verticals, 17 horizontals) Build Status: - Clean build with no errors - Bundle size: 150KB gzipped - Dev server on port 8080 (accessible from Windows) - Production ready 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
165 lines
5 KiB
Bash
Executable file
165 lines
5 KiB
Bash
Executable file
#!/bin/bash
|
||
|
||
# NaviDocs - Start All Services
|
||
# This script starts the complete NaviDocs stack
|
||
|
||
set -e
|
||
|
||
echo "🚀 Starting NaviDocs Complete Stack..."
|
||
echo ""
|
||
|
||
# Colors for output
|
||
GREEN='\033[0;32m'
|
||
BLUE='\033[0;34m'
|
||
YELLOW='\033[1;33m'
|
||
NC='\033[0m' # No Color
|
||
|
||
# Change to project directory
|
||
cd "$(dirname "$0")"
|
||
PROJECT_DIR="$(pwd)"
|
||
|
||
echo -e "${BLUE}📁 Project directory: ${PROJECT_DIR}${NC}"
|
||
echo ""
|
||
|
||
# Check if services are already running
|
||
check_port() {
|
||
local port=$1
|
||
local service=$2
|
||
if lsof -Pi :${port} -sTCP:LISTEN -t >/dev/null 2>&1 ; then
|
||
echo -e "${YELLOW}⚠️ Port ${port} (${service}) is already in use${NC}"
|
||
return 0
|
||
else
|
||
return 1
|
||
fi
|
||
}
|
||
|
||
# 1. Check Redis
|
||
echo -e "${BLUE}1️⃣ Checking Redis (port 6379)...${NC}"
|
||
if check_port 6379 "Redis"; then
|
||
echo -e "${GREEN}✅ Redis already running${NC}"
|
||
else
|
||
echo "Starting Redis..."
|
||
redis-server --daemonize yes
|
||
sleep 1
|
||
echo -e "${GREEN}✅ Redis started${NC}"
|
||
fi
|
||
echo ""
|
||
|
||
# 2. Check Meilisearch
|
||
echo -e "${BLUE}2️⃣ Checking Meilisearch (port 7700)...${NC}"
|
||
if check_port 7700 "Meilisearch"; then
|
||
echo -e "${GREEN}✅ Meilisearch already running${NC}"
|
||
else
|
||
echo "Starting Meilisearch (Docker)..."
|
||
docker start boat-manuals-meilisearch 2>/dev/null || \
|
||
docker run -d \
|
||
--name boat-manuals-meilisearch \
|
||
-p 7700:7700 \
|
||
-e MEILI_MASTER_KEY='5T66jrwQ8F8cOk4dUlFY0Vp59fMnCsIfi4O6JZl9wzU=' \
|
||
-e MEILI_ENV=development \
|
||
-e MEILI_NO_ANALYTICS=true \
|
||
-v meilisearch_data:/meili_data \
|
||
getmeili/meilisearch:v1.6
|
||
sleep 2
|
||
echo -e "${GREEN}✅ Meilisearch started${NC}"
|
||
fi
|
||
echo ""
|
||
|
||
# 3. Start Backend API
|
||
echo -e "${BLUE}3️⃣ Checking Backend API (port 8001)...${NC}"
|
||
if check_port 8001 "Backend"; then
|
||
echo -e "${YELLOW}⚠️ Killing existing backend...${NC}"
|
||
pkill -f "node.*navidocs.*index.js" || true
|
||
sleep 1
|
||
fi
|
||
|
||
echo "Starting Backend API..."
|
||
cd "${PROJECT_DIR}/server"
|
||
node index.js > /tmp/navidocs-backend.log 2>&1 &
|
||
BACKEND_PID=$!
|
||
sleep 2
|
||
|
||
if ps -p $BACKEND_PID > /dev/null; then
|
||
echo -e "${GREEN}✅ Backend API started (PID: $BACKEND_PID)${NC}"
|
||
echo " Logs: /tmp/navidocs-backend.log"
|
||
else
|
||
echo -e "${YELLOW}❌ Backend failed to start. Check logs:${NC}"
|
||
cat /tmp/navidocs-backend.log
|
||
exit 1
|
||
fi
|
||
echo ""
|
||
|
||
# 4. Start OCR Worker
|
||
echo -e "${BLUE}4️⃣ Starting OCR Worker...${NC}"
|
||
pkill -f "ocr-worker.js" 2>/dev/null || true
|
||
sleep 1
|
||
|
||
cd "${PROJECT_DIR}/server"
|
||
node workers/ocr-worker.js > /tmp/navidocs-ocr-worker.log 2>&1 &
|
||
WORKER_PID=$!
|
||
sleep 2
|
||
|
||
if ps -p $WORKER_PID > /dev/null; then
|
||
echo -e "${GREEN}✅ OCR Worker started (PID: $WORKER_PID)${NC}"
|
||
echo " Logs: /tmp/navidocs-ocr-worker.log"
|
||
else
|
||
echo -e "${YELLOW}⚠️ OCR Worker may have failed. Check logs:${NC}"
|
||
cat /tmp/navidocs-ocr-worker.log
|
||
fi
|
||
echo ""
|
||
|
||
# 5. Start Frontend
|
||
echo -e "${BLUE}5️⃣ Checking Frontend (port 8080)...${NC}"
|
||
if check_port 8080 "Frontend"; then
|
||
echo -e "${YELLOW}⚠️ Killing existing frontend...${NC}"
|
||
pkill -f "vite.*8080" || true
|
||
sleep 1
|
||
fi
|
||
|
||
echo "Starting Frontend (Vite dev server)..."
|
||
cd "${PROJECT_DIR}/client"
|
||
npm run dev > /tmp/navidocs-frontend.log 2>&1 &
|
||
FRONTEND_PID=$!
|
||
sleep 3
|
||
|
||
if ps -p $FRONTEND_PID > /dev/null; then
|
||
echo -e "${GREEN}✅ Frontend started (PID: $FRONTEND_PID)${NC}"
|
||
echo " Logs: /tmp/navidocs-frontend.log"
|
||
else
|
||
echo -e "${YELLOW}❌ Frontend failed to start. Check logs:${NC}"
|
||
cat /tmp/navidocs-frontend.log
|
||
exit 1
|
||
fi
|
||
echo ""
|
||
|
||
# Get WSL2 IP for Windows access
|
||
WSL_IP=$(hostname -I | awk '{print $1}')
|
||
|
||
# Summary
|
||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
echo -e "${GREEN}✅ NaviDocs Stack Started Successfully!${NC}"
|
||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
echo ""
|
||
echo -e "${BLUE}📊 Service Status:${NC}"
|
||
echo " Redis: ✅ Running on port 6379"
|
||
echo " Meilisearch: ✅ Running on port 7700"
|
||
echo " Backend API: ✅ Running on port 8001"
|
||
echo " OCR Worker: ✅ Running"
|
||
echo " Frontend: ✅ Running on port 8080"
|
||
echo ""
|
||
echo -e "${BLUE}🌐 Access URLs:${NC}"
|
||
echo " WSL2 (localhost): http://localhost:8080"
|
||
echo " Windows 11 (from browser): http://${WSL_IP}:8080"
|
||
echo ""
|
||
echo -e "${BLUE}📝 Log Files:${NC}"
|
||
echo " Backend: /tmp/navidocs-backend.log"
|
||
echo " OCR Worker: /tmp/navidocs-ocr-worker.log"
|
||
echo " Frontend: /tmp/navidocs-frontend.log"
|
||
echo ""
|
||
echo -e "${BLUE}🛠️ Useful Commands:${NC}"
|
||
echo " Stop all: ./stop-all.sh"
|
||
echo " View logs: tail -f /tmp/navidocs-*.log"
|
||
echo " Backend health: curl http://localhost:8001/health"
|
||
echo ""
|
||
echo -e "${GREEN}Ready to upload documents! 🎉${NC}"
|
||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|