Self-hosted IT training platform with learning paths, Ollama-generated quizzes, progress tracking, and MinIO video storage — zero cloud dependency.
LearnForge packages everything an IT team needs to train and certify staff into one Docker Compose stack: structured learning paths, AI-generated quizzes, trainee progress, and training video storage. The FastAPI backend, Qdrant vector store, MinIO object storage, and Ollama LLM all run on your own network, so training content and learner data never leave the building.
cp compose.env.example .env # set MINIO_ROOT_PASSWORD and SECRET_KEY
export DOCKER_HOST=unix:///var/run/docker.sock
docker compose up -dOpen the API at http://localhost:8080 (interactive docs at /docs); MinIO console is on http://localhost:9001.
- Learning paths with ordered curricula and per-path prerequisites.
- AI-generated quizzes and questions via a local Ollama LLM.
- Progress tracking at user, path, and team level with event timelines.
- Training-video upload into S3-compatible MinIO.
- Qdrant semantic search over course content.
- Telegram bot for learner notifications and interactive prompts.
- One-command bootstrap via
make bootstrap.
┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐
│ Ollama │ │ Qdrant │ │ MinIO │ │training- │
│ :11434 │ │ :6333 │ │ :9000/1 │ │api :8080 │
└────▲─────┘ └────▲─────┘ └────▲─────┘ └────┬─────┘
│ │ │ │
└──────────────┴──────────────┴──────────────┘
Docker network
training-api waits for Qdrant, MinIO, and Ollama healthchecks before starting.
Python 3.11 · FastAPI · SQLAlchemy · SQLite/PostgreSQL · Qdrant · MinIO · Ollama · Telegram Bot API · Docker Compose · Make.
See CONTRIBUTING.md. Open an issue to report a bug or request a feature.
MIT — see LICENSE.
