#!/bin/bash cd "$(dirname "$0")" || exit # Create the required directories on the host machine if they don't exist [ ! -d "./application/indexes" ] && mkdir -p ./application/indexes [ ! -d "./application/inputs" ] && mkdir -p ./application/inputs [ ! -d "./application/vectors" ] && mkdir -p ./application/vectors # Build frontend and backend images docker build -t frontend_image ./frontend docker build -t backend_image ./application # Run redis and mongo services docker run -d --name redis -p 6379:6379 redis:6-alpine docker run -d --name mongo -p 27017:27017 -v mongodb_data_container:/data/db mongo:6 # Run backend and worker services docker run -d --name backend -p 7091:7091 \ --link redis:redis --link mongo:mongo \ -v $(pwd)/application/indexes:/app/indexes \ -v $(pwd)/application/inputs:/app/inputs \ -v $(pwd)/application/vectors:/app/vectors \ -e API_KEY=$OPENAI_API_KEY \ -e EMBEDDINGS_KEY=$OPENAI_API_KEY \ -e CELERY_BROKER_URL=redis://redis:6379/0 \ -e CELERY_RESULT_BACKEND=redis://redis:6379/1 \ -e MONGO_URI=mongodb://mongo:27017/docsgpt \ backend_image docker run -d --name worker \ --link redis:redis --link mongo:mongo \ -e API_KEY=$OPENAI_API_KEY \ -e EMBEDDINGS_KEY=$OPENAI_API_KEY \ -e CELERY_BROKER_URL=redis://redis:6379/0 \ -e CELERY_RESULT_BACKEND=redis://redis:6379/1 \ -e MONGO_URI=mongodb://mongo:27017/docsgpt \ -e API_URL=http://backend:7091 \ backend_image \ celery -A app.celery worker -l INFO # Run frontend service docker run -d --name frontend -p 5173:5173 \ -e VITE_API_HOST=http://localhost:7091 \ frontend_image