File size: 2,069 Bytes
f9877d6
3b5d2e9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
f9877d6
 
 
 
 
 
7ed2970
3b5d2e9
 
 
f9877d6
 
 
 
edd9bd7
3b5d2e9
 
 
 
 
 
 
 
 
f9877d6
 
 
 
 
 
 
 
3b5d2e9
 
f9877d6
 
 
3b5d2e9
 
 
 
 
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
services:
  frontend:
    build:
      context: ./rag-quest-hub
      dockerfile: Dockerfile.dev
    ports:
      - "3000:8080"
    depends_on:
      - backend
    environment:
      - VITE_API_BASE_URL=http://backend:8000
      - VITE_API_TIMEOUT=30000
      - VITE_ENABLE_REGISTRATION=true
    volumes:
      # Development volume mounts for hot reload
      - ./rag-quest-hub/src:/app/src
      - ./rag-quest-hub/public:/app/public
      - ./rag-quest-hub/package.json:/app/package.json
      - ./rag-quest-hub/vite.config.ts:/app/vite.config.ts
      - ./rag-quest-hub/tailwind.config.ts:/app/tailwind.config.ts
      - ./rag-quest-hub/tsconfig.json:/app/tsconfig.json
      - ./rag-quest-hub/postcss.config.js:/app/postcss.config.js
      - ./rag-quest-hub/components.json:/app/components.json
      - ./rag-quest-hub/.env.production:/app/.env.production
      # Exclude node_modules from volume mount to avoid conflicts
      - /app/node_modules
    networks:
      - app-network

  backend:
    build: .
    ports:
      - "8000:8000"
    volumes:
      - ./src:/app/src
      - ./scripts:/app/scripts
      - ./alembic:/app/alembic
      - ./alembic.ini:/app/alembic.ini
      - db_data:/app/data  # SQLite database volume
    depends_on:
      - qdrant
    environment:
      - QDRANT_HOST=qdrant
      - GEMINI_API_KEY=${GEMINI_API_KEY}
      - CORS_ORIGINS=http://localhost:3000,http://127.0.0.1:3000,http://frontend:8080
      - DATABASE_URL=sqlite+aiosqlite:///./data/knowledge_assistant.db
      - JWT_SECRET=your-super-secret-jwt-key-for-development-only
      - JWT_LIFETIME_SECONDS=3600
      - USER_REGISTRATION_ENABLED=true
      - EMAIL_VERIFICATION_REQUIRED=false
    entrypoint: ["/app/scripts/wait-for-qdrant.sh", "qdrant:6333", "/app/scripts/init-db.sh"]
    networks:
      - app-network

  qdrant:
    image: qdrant/qdrant:latest
    ports:
      - "6333:6333"
      - "6334:6334"
    volumes:
      - qdrant_data:/qdrant/storage
    networks:
      - app-network

volumes:
  qdrant_data:
  db_data:

networks:
  app-network:
    driver: bridge