This guide walks you through the complete installation and configuration of Oracle RUI Edition.
| Software | Minimum Version | Notes |
|---|---|---|
| Python | 3.11+ | python.org |
| Git | any | git-scm.com |
| Docker | 24+ | Optional, for MariaDB |
Requirements are split by layer:
# Oracle Core (always required)
pip install -r oracle-rui/requirements.txt
# Penelope (if using the graph)
pip install -r penelope/requirements.txt
# Archimede (if using face recognition)
pip install -r archimede/requirements.txt- SpaCy:
it_core_news_sm(~15 MB) - Sentence Transformers:
all-MiniLM-L6-v2(~90 MB) - InsightFace:
buffalo_l(~300 MB) — for face recognition - YOLOv8n:
yolov8n.pt(~6 MB) — already included
git clone <repo-url> oracle-rui-edition
cd oracle-rui-editionWindows:
python -m venv venv
venv\Scripts\activateLinux/macOS:
python -m venv venv
source venv/bin/activatepip install -r oracle-rui/requirements.txtpython run.py --initThis command:
- Creates
.envfiles from.env.exampletemplates - Creates necessary directories (
logs/,data/)
Edit oracle-rui/.env:
# ─── LLM API Key ────────────────────────────────────────────
# At least ONE key is required. Choose your provider:
# OpenAI
OPENAI_API_KEY=sk-...
# DeepSeek (recommended for quality/price ratio)
DEEPSEEK_API_KEY=sk-...
# Anthropic (Claude)
ANTHROPIC_API_KEY=sk-...
# Ollama (local, free)
# No API key needed, just run ollama locally
# ─── Default provider ───────────────────────────────────────
ORACLE_DEFAULT_PROVIDER=deepseek
ORACLE_DEFAULT_MODEL=deepseek-chat
# ─── Security ──────────────────────────────────────────────
JWT_SECRET_KEY=a-random-string-at-least-32-characters-longPenelope requires an SQL database to store the graph. You have two options.
# Start MariaDB in container
docker-compose up -d
# Verify it works
docker exec oracle-rui-mariadb mariadb-admin ping -h localhostThe database is already initialized with the correct schema (schema.sql runs automatically on startup).
Edit penelope/.env:
PENELOPE_DB_BACKEND=sqlite
PENELOPE_SQLITE_PATH=data/penelope.dbNo server required. The database is automatically created in the data/ directory.
Edit penelope/.env to specify which directories to scan:
# Up to 5 devices or folders
PENELOPE_STORAGE_1=C:/Users/yourname/Documents
PENELOPE_STORAGE_2=D:/Archive
PENELOPE_STORAGE_3=E:/Photos
PENELOPE_STORAGE_4=
PENELOPE_STORAGE_5=Leave unused devices empty.
Archimede reads the Penelope graph and adds face recognition capabilities.
pip install -r archimede/requirements.txtThe InsightFace model (buffalo_l) is auto-downloaded on first use (~300 MB).
Edit archimede/.env:
# API key for the reasoning core (LLM)
ARCHIMEDE_API_KEY=sk-...
# Penelope path (default: ../penelope)
ARCHIMEDE_PENELOPE_PATH=../penelope
# ChromaDB path
ARCHIMEDE_CHROMA_PATH=data/chromapython run.py --allThis starts:
- Oracle Core on http://localhost:8100
- Penelope on http://localhost:5000
- Archimede on http://localhost:8001
python run.pyUseful if you haven't configured Penelope yet.
python run.py --with-penelope # Oracle + Penelope
python run.py --with-archimede # Oracle + Archimede
python run.py --port 9000 # Custom port# Scan all configured paths
python -m penelope.cli scan:all
# Start lazy processing (in background)
python -m penelope.cli queue loopThe processor automatically performs:
- Metadata extraction (EXIF, date, size)
- Semantic embedding (text → ChromaDB)
- NER (named entity recognition)
- Face detection (YOLOv8n)
- Scene detection (video → keyframes)
# Statistics
python -m archimede.query stats
# Access Penelope's web UI
# http://localhost:5000-
Create a directory with reference photos:
ref_faces/ person_1/ photo1.jpg photo2.jpg person_2/ photo1.jpg -
Run the search:
python -m archimede.query find-parents --ref-dir ref_faces/
-
Or in interactive mode (auto-discovers face clusters):
python -m archimede.query find-parents --interactive
python run.py --statusSample output:
+----------------------------------------------------+
| Oracle RUI Edition — Diagnostics |
+----------------------------------------------------+
| Oracle [OK] :8100 (v0.5.0)
| Penelope [OK] :5000 (1247 nodes)
| Archimede [OK] :8001 (read-only graph)
+----------------------------------------------------+
- Verify Docker is running:
docker ps - If using Docker:
docker-compose up -d - If using SQLite: verify
PENELOPE_DB_BACKEND=sqliteinpenelope/.env
python -m spacy download it_core_news_smVerify that oracle-rui/.env contains at least one valid API key.
On first startup, InsightFace auto-downloads the buffalo_l model.
Make sure you have internet access and at least 300 MB of free space.
# Stop Docker
docker-compose down -v
# Remove virtual environment
deactivate
rm -rf venv/
# Remove generated data
rm -rf oracle-rui/data/
rm -rf penelope/data/
rm -rf archimede/data/
rm -rf logs/For issues or questions, open an issue on the project repository.