MLflow Jedi ships as a single Docker image built onDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/elenacarino-max/Pildora4_ext_StarWars/llms.txt
Use this file to discover all available pages before exploring further.
python:3.12-slim and orchestrated by a minimal Docker Compose file. The architecture is intentionally self-contained: Streamlit, MLflow’s embedded tracking server, and two SQLite databases all run inside one container, with all persistent state written to a named Docker volume (mlflow_jedi_data) that survives container restarts and image rebuilds. There are no external services — no separate MLflow server, no object store, no database host — making it straightforward to deploy on a classroom laptop, a school server, or a cloud VM.
Prerequisites
Choose one of the following:- Docker with Docker Compose — recommended for any shared or persistent deployment. Docker Desktop (Windows/macOS) and Docker Engine with the Compose plugin (Linux) are both supported.
- Python 3.12 — for local development or single-instructor use without Docker. See the Quickstart for the local Python path.
Environment Variables
Configuration is loaded from a.env file in the app-v2/ directory at startup. Copy .env.example to .env and set values appropriate for your environment before building or starting the app.
| Variable | Default | Purpose |
|---|---|---|
MLFLOW_JEDI_TEACHER_PASSWORD | 1234 | Password required to access the Profesorado teacher panel. Change this before any shared deployment. |
MLFLOW_JEDI_DATA_DIR | ./data | Directory where both SQLite databases and the MLflow artifacts folder are created. Relative paths are resolved from the app-v2/ root. |
MLFLOW_JEDI_MAX_TEAMS | 10 | Maximum number of teams that can join a single session. The built-in team name list also contains exactly ten names. |
MLFLOW_JEDI_DATA_DIR environment variable is overridden to /app/data by the Dockerfile’s ENV instruction, and the named volume is mounted at that path — so MLFLOW_JEDI_DATA_DIR in .env is only relevant for local Python runs.
Docker Compose
The fulldocker-compose.yml for app-v2/ is shown below. It defines a single service, maps port 8501, injects the two configurable environment variables from .env, mounts the persistent volume, and sets a restart policy so the container recovers automatically from crashes.
mlflow_jedi_data is managed by Docker and persists across docker compose down / docker compose up cycles and image rebuilds. It is mounted at /app/data inside the container, which is where both SQLite databases and the MLflow artifacts/ directory are written. Because MLFLOW_JEDI_DATA_DIR is set to /app/data in the Dockerfile, the container always writes to the volume regardless of what .env contains.
Starting and Stopping
Start (or rebuild) the container:--build flag ensures the image is rebuilt when source files change. Omit it on subsequent starts if the code has not changed, to save time.
Stop the container without losing data:
mlflow_jedi_data volume intact. All sessions, scores, MLflow runs, and artifacts are preserved for the next startup.
Port and Health Check
The container listens on port 8501 (Streamlit’s default), mapped 1-to-1 to the host. The Dockerfile defines a health check that polls the Streamlit internal health endpoint:200 OK response at http://<host>:8501/_stcore/health confirms the app is serving traffic.
The full Streamlit start command used in the container is:
--server.headless=true suppresses the browser-open prompt and email collection that Streamlit shows in interactive mode.
Data Directory Layout
All persistent state lives under a single directory —/app/data in Docker, or the path configured by MLFLOW_JEDI_DATA_DIR in a local Python run. The layout is always:
game.db is the application’s own SQLite database, managed by the core/database.py module. mlflow.db is the SQLite backend for the embedded MLflow tracking server. artifacts/ contains files logged during mission runs — primarily matriz_confusion.png and classification_report.json — organised by MLflow’s standard run-ID directory structure.
To back up a deployment, stop the container, copy the entire data/ directory (or export JSON/CSV from the teacher panel for a portable summary), then restart.