1- # Variables
2- PKG_MGR=" pip"
3- FILE=" dependencies.txt"
4-
5- # Check for dependency file
6- if [ ! -f " $FILE " ]; then
7- echo " [ERROR] '$FILE ' not found."
8- exit 1
9- fi
10-
11- echo " [OK] dependencies.txt found"
12-
13- # Parser for choosing Package Manager (pip or conda)
14- while [[ " $# " -gt 0 ]]; do
15- case $1 in
16- -m)
17- PKG_MGR=" $2 "
18- shift 2
19- ;;
20-
21- * )
22- echo " [ERROR] Unknown Option: $1 . Usage ./run.sh [-m pip | conda]"
23- exit 1
24- ;;
25- esac
26- done
27-
28- echo " [INFO] Selected Package Manager: '$PKG_MGR '"
29-
30- # Install Dependencies
31- if [ " $PKG_MGR " == " conda" ]; then
32- echo " [OK] Starting installation using Conda..."
33- conda install --file " $FILE " -c conda-forge -y
34-
35- elif [ " $PKG_MGR " == " pip" ]; then
36- echo " [OK] Starting installation using Pip..."
37- pip install -r " $FILE "
38-
1+ #! /bin/bash
2+
3+ # nstall/Check Docker Engine
4+ if ! command -v docker & > /dev/null; then
5+ echo " [INFO] Docker not found. Installing..."
6+ curl -fsSL https://get.docker.com -o get-docker.sh && sudo sh get-docker.sh
7+ sudo usermod -aG docker $USER
8+ echo " [OK] Docker installed. Note: You may need to reboot for permissions."
399else
40- echo " [Error] Invalid manager '$PKG_MANAGER '. Please use 'pip' or 'conda'."
41- exit 1
10+ echo " [OK] Docker is already installed."
4211fi
4312
44- # Check for Ollama
45- echo " [INFO] Verifying Python environment binding..."
46- if ! python3 -c " import ollama" & > /dev/null; then
47- echo " [WARNING] Python cannot find 'ollama' library. Forcing strict inline installation..."
48- python3 -m pip install ollama
49-
50- if [ $? -ne 0 ]; then
51- echo " [ERROR] Could not force-install Python ollama library."
52- exit 1
53- fi
54- echo " [OK] 'ollama' bound to current Python environment."
55- else
56- echo " [OK] Python recognizes 'ollama'."
57- fi
13+ # Ensure Docker service is active
14+ sudo systemctl start docker
15+ sudo systemctl enable docker & > /dev/null
5816
59- # System Ollama Engine Check and Install
60- echo " [INFO] Checking system Ollama engine..."
17+ # Install/Check Ollama Engine
6118if ! command -v ollama & > /dev/null; then
62- echo " [WARNING ] Ollama engine not found. Installing now (may require password) ..."
19+ echo " [INFO ] Ollama not found. Installing..."
6320 curl -fsSL https://ollama.com/install.sh | sh
64-
65- if [ $? -ne 0 ]; then
66- echo " [ERROR] Ollama engine installation failed."
67- exit 1
68- fi
69- echo " [OK] Ollama engine installed successfully."
7021else
71- echo " [OK] Ollama engine is already installed."
22+ echo " [OK] Ollama is already installed."
7223fi
7324
74- # Check for PyMuPDF
75- if ! python3 -c " import pymupdf " & > /dev/null ; then
76- echo " [WARNING] Python cannot find 'pymupdf' library. Forcing strict inline installation... "
77- python3 -m pip install pymupdf
78-
79- if [ $? -ne 0 ]; then
80- echo " [ERROR] Could not force-install Python pymupdf library ."
81- exit 1
82- fi
83- echo " [OK] 'pymupdf' bound to current Python environment. "
84- else
85- echo " [OK] Python recognizes 'pymupdf' ."
25+ # Patch Ollama for Docker Networking
26+ # Allows the container to communicate with the host machine
27+ CONF_DIR= " /etc/systemd/system/ollama.service.d "
28+ CONF_FILE= " $CONF_DIR /override.conf "
29+
30+ if [ ! -f " $CONF_FILE " ]; then
31+ echo " [INFO] Patching Ollama to allow Docker connections.. ."
32+ sudo mkdir -p " $CONF_DIR "
33+ echo -e " [Service]\nEnvironment= \" OLLAMA_HOST=0.0.0.0 \" " | sudo tee " $CONF_FILE " > /dev/null
34+ sudo systemctl daemon-reload
35+ sudo systemctl restart ollama
36+ echo " [OK] Ollama network patch applied ."
8637fi
8738
88- # Check and configure MongoDB
89- chmod +x scripts/mongodb_cfg.sh
90- ./scripts/mongodb_cfg.sh
91-
92- # Required Models for RAG
93- echo " [INFO] Verifying AI models (Llama3.2 & Nomic)..."
39+ # Pull AI Models
40+ echo " [INFO] Syncing AI models..."
9441ollama pull llama3.2
9542ollama pull nomic-embed-text
96- echo " [OK] All models are ready."
43+ echo " [OK] Models are ready."
44+
45+ # Launch Docker Compose
46+ echo " [INFO] Building and Launching Containers..."
9747
98- # Start Application
99- echo " [INFO] Starting RAG application..."
100- streamlit run main.py
48+ # Try 'docker compose' first, fallback to 'docker-compose'
49+ if docker compose version & > /dev/null; then
50+ docker compose up --build
51+ else
52+ docker-compose up --build
53+ fi
0 commit comments