INGInious
Self-HostedOpen-source automated grading platform for programming exercises
Overview
INGInious is an open-source automated grading system for programming courses. It supports over 40 languages, uses Docker for secure, isolated code execution, and integrates with LMS like Moodle/Canvas. Self-hostable on your server, it offers flexible course management—including progress tracking, group assignments, and custom grading scripts. Ideal for educators wanting to automate assessments while retaining data control.
Self-Hosting Resources
Below is a reference structure for docker-compose.yml.
⚠️ Do NOT run blindly. Replace placeholders with official values.
version: '3'
services:
inginious:
image: <OFFICIAL_IMAGE_NAME>:latest
container_name: inginious
ports:
- "8080:<APP_INTERNAL_PORT>"
volumes:
- ./data:/app/data
restart: unless-stopped Key Features
- Supports 40+ programming languages for automated grading
- Docker-powered secure code execution
- Seamless LMS integration (Moodle, Canvas)
- Flexible course management with progress tracking
Frequently Asked Questions
? Is INGInious hard to install?
INGInious uses Docker Compose for simplified deployment, but basic server and Docker knowledge is needed. Initial setup (like connecting to an LMS or configuring exercise containers) may take time for users new to self-hosted tools.
? Is it a good alternative to HackerRank for Education?
Yes—INGInious offers similar automated grading but with full data control, no costs, and open extensibility. HackerRank has more pre-built exercises, but INGInious is better for those prioritizing self-hosting and customization.
? Is INGInious completely free?
Yes—INGInious is released under the AGPLv3 license, so it’s free to use, modify, and self-host without any subscription or hidden fees.
Top Alternatives
People Also Ask about INGInious
Tool Info
Pros
- ⊕ Privacy-focused (self-hosted data control)
- ⊕ No subscription fees (open-source AGPLv3 license)
- ⊕ Extensible via plugins and custom scripts
- ⊕ Scalable for large classes
Cons
- ⊖ Requires technical setup (server/Docker knowledge)
- ⊖ Steeper learning curve for complex exercises
- ⊖ Limited support for non-programming exercises