Introduction
InvenTree is a Django-based inventory management platform designed for tracking parts, stock locations, supplier information, and manufacturing builds. It serves makers, small manufacturers, and engineering teams who need a structured way to manage physical components without paying for enterprise ERP software. The system provides both a responsive web interface and a comprehensive REST API.
What InvenTree Does
- Tracks parts with hierarchical categories, parameters, attachments, and revision history
- Manages stock levels across multiple locations with full transaction logging
- Records supplier and manufacturer data with pricing, lead times, and part cross-references
- Supports build orders that consume stock according to a bill of materials (BOM)
- Provides barcode scanning via the companion mobile app for warehouse operations
Architecture Overview
InvenTree is a Python application built on Django and Django REST Framework. The frontend uses a combination of server-rendered templates and JavaScript for interactive features. Data is stored in PostgreSQL (recommended) or MySQL. Background tasks such as report generation and email notifications run through a Django-Q task queue backed by Redis. File uploads (attachments, labels, reports) are stored on the local filesystem or S3-compatible storage.
Self-Hosting & Configuration
- Deploy using Docker Compose with the official images that include the web server, worker, and database
- Configure database, secret key, and storage settings via environment variables or a config YAML file
- Enable plugins for additional functionality like barcode backends, label printers, and external integrations
- Set up the companion Android/iOS app for barcode scanning by connecting it to the server's API endpoint
- Use the built-in backup command to export the database and media files for disaster recovery
Key Features
- Hierarchical part categorization with custom parameters and template-based inheritance
- Full bill of materials (BOM) management with multi-level sub-assemblies
- Purchase order and sales order tracking integrated with supplier data
- Label and report generation using HTML templates rendered to PDF
- RESTful API covering every feature for automation and third-party integrations
Comparison with Similar Tools
- GLPI — IT asset management focused on help desk and ITIL; InvenTree targets physical parts and manufacturing
- Snipe-IT — IT asset tracking for laptops and equipment; less suited for component-level inventory
- Part-DB — Electronic parts database; narrower scope than InvenTree's full inventory and BOM system
- ERPNext — Full ERP suite with inventory; much heavier and complex for teams that only need inventory
FAQ
Q: Does InvenTree support barcode scanning? A: Yes. The companion mobile app supports camera-based barcode scanning, and the plugin system allows integration with USB and Bluetooth barcode scanners.
Q: Can I track serialized items? A: Yes. Stock items can be individually serialized with unique identifiers and tracked through their full lifecycle.
Q: What reporting options are available? A: InvenTree generates PDF reports and labels from customizable HTML/CSS templates using the WeasyPrint rendering engine.
Q: Is there an API for automation? A: Yes. The REST API covers all functionality including parts, stock, orders, and builds. API tokens provide authentication for scripts and integrations.