Installation#
π Option 1: Docker (Recommended)#
Docker provides the easiest, most reliable installation with all dependencies isolated.
Prerequisites#
Docker Desktop installed and running
Git installed on your system
Installation Steps#
1. Set Up External Services#
MMORE RAG Service: nothing to do by hand. MMORE runs from the official
upstream container image, pinned in docker-compose.yml and started by make docker-up alongside everything else. There is no repository to clone and no
patches to apply.
docker-up does build a small local layer over the pinned image β
services/mmore/Dockerfile, four RUN lines carrying fixes that upstream
v2.0.0 needs before it will start. That takes seconds. What takes minutes is
the first start pulling roughly 1.5 GB of base image plus model weights, so
allow time before the service reports healthy. The cache is stored under
data/mmore/cache/, so subsequent starts are fast. See
services/mmore/README.md
for the pinned version and how to bump it.
Prusa Connect MCP (Optional - for 3D printer integration):
The Prusa MCP server is installed as a pip dependency from git
(prusa-mcp @ git+https://github.com/gioelemo/prusa-mcp.git),
declared in services/prusa_mcp_server/requirements-mcp.txt.
To run it standalone, use ./services/prusa_mcp_server/run.sh,
or start it via make docker-up (which builds the
prusa-mcp-server container from services/prusa_mcp_server/Dockerfile).
See services/prusa_mcp_server/README.md for details.
2. Clone the Repository#
git clone https://github.com/gioelemo/EngiAI.git
cd EngiAI
3. Configure Environment#
cp .env.example .env
# Edit .env with your LLM provider configuration
Required configuration:
OpenAI API Key: Get from OpenAI Platform
Google API Key: Get from Google AI Studio
Web search: DuckDuckGo is enabled by default without an API key. Tavily is optional.
MMORE_RAG_URL: URL to MMORE service (default:
http://localhost:8000)
Optional (for Prusa 3D printer integration):
PRUSA_MCP_URL: URL of the Prusa MCP server (default:
http://localhost:8765)SKIP_MCP: Set to
falseto enable (default:true)
4. Start with Docker Compose#
make docker-up
5. Verify Installation#
Access the UI at: http://localhost:8501
Check containers are running:
./docker-compose-wrapper.sh ps
6. View Logs#
./docker-compose-wrapper.sh logs -f chatbot
Benefits of Docker#
β Isolated environment with all dependencies
β Consistent behavior across machines
β Easy to scale and deploy
β Automatic restarts on failure
β Volume persistence for data
β No conda/Python environment conflicts
Updating#
# Pull latest changes
git pull origin main
# Rebuild and restart
make docker-rebuild
π» Option 2: Local Development (Conda)#
For developers who want to modify the code or run without Docker.
Prerequisites#
Miniforge or Anaconda installed
Python 3.13 or higher
Git installed on your system
VS Code (recommended) with Python extension
One-Command Setup#
First, navigate to the project directory:
cd EngiAI
Then follow the manual installation steps below. Automated setup scripts are not currently provided.
Manual Installation#
Step 1: Clone the Repository#
git clone https://github.com/gioelemo/EngiAI.git
cd EngiAI
Step 2: Create Conda Environment#
conda create -n engiai python=3.13 -y
This will create an environment named engiai with Python 3.13.
Step 3: Activate Environment#
conda activate engiai
Step 4: Install Dependencies#
pip install -e ".[dev,test]"
This installs the package in editable mode along with all dependencies from
pyproject.toml. The dev extra brings the lint and type-check tooling, test
brings the pytest runner; quote the argument so zsh does not glob the brackets.
Note
.[all] is defined as engiai[dev,test,docs], a PEP 508 self-reference, so it
needs pip 21.2 or newer (pip install --upgrade pip). uv resolves it too. Any
pip recent enough to install this project already qualifies; the note is here
only for very old environments.
Step 5: Install Pre-commit Hooks#
pre-commit install
Step 6: Configure VS Code (Optional)#
Open the project in VS Code
Install recommended extensions when prompted:
charliermarsh.ruff(Ruff formatter)ms-python.mypy-type-checker(MyPy type checker)ms-python.python(Python support)
Copy template settings:
macOS/Linux: Copy
.vscode/settings_template.jsonto.vscode/settings.jsonWindows: Copy to
%APPDATA%\Code\User\settings.json
Verify Installation#
Test your installation:
# Run tests
pytest
# Check code quality tools
ruff check .
mypy .
If all commands run without errors, youβre ready to go! π
Setting Up API Keys#
Create a .env file from the example:
cp .env.example .env
Edit .env and add your API keys. See Configuration for details.
Important for local development: Use SQLite instead of PostgreSQL:
# In .env file
DATABASE_URL=sqlite:///data/conversations.db
π― Quick Comparison#
Feature |
Docker |
Local (Conda) |
|---|---|---|
Setup Time |
5 minutes |
10-15 minutes |
Isolation |
β Complete |
β οΈ Shared environment |
Portability |
β Run anywhere |
β Needs conda setup |
Production Ready |
β Yes |
β Development only |
Hot Reload |
β Requires rebuild |
β Instant changes |
Resource Usage |
Moderate |
Light |
Best For |
Production, demos |
Active development |
Troubleshooting#
Docker Issues#
Port already in use#
# Check what's using port 8501
lsof -i :8501
# Stop conflicting service or change port in docker-compose.yml
Container wonβt start#
# Check logs
./docker-compose-wrapper.sh logs -f chatbot
# Common causes:
# - Missing API keys in .env
# - Port conflicts
# - Insufficient resources
Permission errors (Linux)#
sudo usermod -aG docker $USER
# Log out and back in
Conda Issues#
Conda environment creation fails#
If you get errors during environment creation:
Update conda:
conda update -n base condaClear conda cache:
conda clean --allTry creating the environment again
Import errors#
If you get import errors when running Python:
Make sure the environment is activated:
conda activate engiaiVerify youβre in the project root directory
Try reinstalling:
pip install -e .
Pre-commit hooks fail#
If pre-commit hooks are causing issues:
Update pre-commit:
pre-commit autoupdateRun manually:
pre-commit run --all-filesIf still failing, temporarily skip:
git commit --no-verify
Getting Help#
If you encounter issues not covered here:
Check Troubleshooting Guide
Check existing GitHub Issues
Open a new issue with:
Your operating system
Python version (
python --version) or Docker versionError messages
Steps to reproduce
Next Steps#
Quick Start Guide - Learn the basics
Docker Deployment - Production deployment
Configuration - Set up API keys and preferences
Usage Guide - Start using the agents
Troubleshooting - Common issues