ConfigsApr 24, 2026·3 min read

InvenTree — Open Source Inventory Management System

InvenTree is a self-hosted inventory management system built with Django that tracks parts, stock, suppliers, and builds with a modern web UI, REST API, and barcode scanning support.

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.

Sources

Discussion

Sign in to join the discussion.
No comments yet. Be the first to share your thoughts.

Related Assets