File size: 2,653 Bytes
0bd4ab4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#!/bin/bash
# Deployment and startup helper script

set -e

# Colors for output
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color

echo -e "${GREEN}πŸš€ AI Scientific Co-Investigator - Deployment Script${NC}"

# Check if .env exists
if [ ! -f .env ]; then
    echo -e "${YELLOW}⚠️  .env not found. Creating from .env.example...${NC}"
    cp .env.example .env
    echo -e "${YELLOW}⚠️  Please update .env with your API keys${NC}"
    exit 1
fi

# Check Docker
if ! command -v docker &> /dev/null; then
    echo -e "${RED}❌ Docker not found. Please install Docker.${NC}"
    exit 1
fi

# Check Docker Compose
if ! command -v docker-compose &> /dev/null; then
    echo -e "${RED}❌ Docker Compose not found. Please install Docker Compose.${NC}"
    exit 1
fi

echo -e "${GREEN}βœ“ Docker and Docker Compose available${NC}"

# Parse arguments
case "${1:-}" in
    "build")
        echo -e "${GREEN}πŸ”¨ Building Docker images...${NC}"
        docker compose build
        ;;
    "up")
        echo -e "${GREEN}πŸš€ Starting services...${NC}"
        docker compose up -d
        sleep 5
        echo -e "${GREEN}βœ“ Services started${NC}"
        echo -e "${GREEN}πŸ“ API: http://localhost:8000${NC}"
        echo -e "${GREEN}πŸ“ Docs: http://localhost:8000/docs${NC}"
        echo -e "${GREEN}πŸ“ Qdrant: http://localhost:6333${NC}"
        docker compose logs -f api
        ;;
    "down")
        echo -e "${YELLOW}⬇️  Stopping services...${NC}"
        docker compose down
        ;;
    "logs")
        docker compose logs -f api
        ;;
    "test")
        echo -e "${GREEN}πŸ§ͺ Running tests...${NC}"
        docker compose exec api pytest app/tests/ -v
        ;;
    "migrate")
        echo -e "${GREEN}πŸ”„ Running database migrations...${NC}"
        docker compose exec api alembic upgrade head
        ;;
    "shell")
        echo -e "${GREEN}πŸ’» Opening Python shell...${NC}"
        docker compose exec api python
        ;;
    "dev")
        echo -e "${GREEN}πŸ› οΈ  Development mode - rebuilding and starting...${NC}"
        docker compose down
        docker compose build
        docker compose up
        ;;
    *)
        echo -e "${YELLOW}Usage:${NC}"
        echo "  $0 build       - Build Docker images"
        echo "  $0 up          - Start all services"
        echo "  $0 down        - Stop all services"
        echo "  $0 logs        - View API logs"
        echo "  $0 test        - Run tests"
        echo "  $0 migrate     - Run database migrations"
        echo "  $0 shell       - Open Python shell"
        echo "  $0 dev         - Development mode"
        ;;
esac