Clean and organize project structure
Major reorganization: - Created scripts/ directory for all utility scripts - Created config/ directory for configuration files - Moved all test files to tests/ directory - Updated all script paths to work with new structure - Updated README.md with new project structure diagram New structure: ├── src/ # Source code (API + MCP) ├── scripts/ # Utility scripts (start-*.sh, docs_server.py, etc.) ├── tests/ # All test files and debug utilities ├── config/ # Configuration files (JSON, Caddy config) ├── docs/ # Documentation website └── logs/ # Log files All scripts updated to use relative paths from project root. Documentation updated with new folder structure. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
91
scripts/start-dev.sh
Executable file
91
scripts/start-dev.sh
Executable file
@@ -0,0 +1,91 @@
|
||||
#!/bin/bash
|
||||
|
||||
# LangMem Development Startup Script
|
||||
|
||||
set -e
|
||||
|
||||
echo "🚀 Starting LangMem Development Environment"
|
||||
|
||||
# Check if .env exists, if not copy from example
|
||||
if [ ! -f .env ]; then
|
||||
echo "📋 Creating .env file from example..."
|
||||
cp .env.example .env
|
||||
echo "⚠️ Please update .env with your actual database password"
|
||||
fi
|
||||
|
||||
# Check if required services are running
|
||||
echo "🔍 Checking required services..."
|
||||
|
||||
# Check Ollama
|
||||
if ! curl -s http://localhost:11434/api/tags > /dev/null; then
|
||||
echo "❌ Ollama is not running. Please start Ollama first."
|
||||
exit 1
|
||||
fi
|
||||
echo "✅ Ollama is running"
|
||||
|
||||
# Check Supabase
|
||||
if ! docker ps | grep -q supabase-db; then
|
||||
echo "❌ Supabase is not running. Please start Supabase first."
|
||||
exit 1
|
||||
fi
|
||||
echo "✅ Supabase is running"
|
||||
|
||||
# Check if localai network exists
|
||||
if ! docker network ls | grep -q localai; then
|
||||
echo "📡 Creating localai network..."
|
||||
docker network create localai
|
||||
fi
|
||||
echo "✅ Docker network 'localai' is ready"
|
||||
|
||||
# Build and start services
|
||||
echo "🏗️ Building and starting LangMem services..."
|
||||
docker compose up -d --build
|
||||
|
||||
# Wait for services to be ready
|
||||
echo "⏳ Waiting for services to be ready..."
|
||||
sleep 10
|
||||
|
||||
# Check service health
|
||||
echo "🔍 Checking service health..."
|
||||
max_retries=30
|
||||
retry_count=0
|
||||
|
||||
while [ $retry_count -lt $max_retries ]; do
|
||||
if curl -s http://localhost:8765/health > /dev/null; then
|
||||
echo "✅ LangMem API is healthy"
|
||||
break
|
||||
fi
|
||||
|
||||
retry_count=$((retry_count + 1))
|
||||
echo "⏳ Waiting for API to be ready (attempt $retry_count/$max_retries)"
|
||||
sleep 2
|
||||
done
|
||||
|
||||
if [ $retry_count -eq $max_retries ]; then
|
||||
echo "❌ API failed to become ready"
|
||||
docker compose logs langmem-api
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Display service status
|
||||
echo ""
|
||||
echo "🎉 LangMem Development Environment is ready!"
|
||||
echo ""
|
||||
echo "📊 Service Status:"
|
||||
echo " - LangMem API: http://localhost:8765"
|
||||
echo " - API Documentation: http://localhost:8765/docs"
|
||||
echo " - Neo4j Browser: http://localhost:7474"
|
||||
echo " - Health Check: http://localhost:8765/health"
|
||||
echo ""
|
||||
echo "🔧 Useful Commands:"
|
||||
echo " - View logs: docker compose logs -f langmem-api"
|
||||
echo " - Run tests: ./scripts/test.sh"
|
||||
echo " - Stop services: docker compose down"
|
||||
echo " - Restart API: docker compose restart langmem-api"
|
||||
echo ""
|
||||
echo "🔑 API Key: langmem_api_key_2025"
|
||||
echo ""
|
||||
|
||||
# Show current health status
|
||||
echo "🏥 Current Health Status:"
|
||||
curl -s http://localhost:8765/health | python3 -m json.tool || echo "Failed to get health status"
|
||||
Reference in New Issue
Block a user