InvenTree is an open-source Inventory Management System which provides powerful low-level stock control and part tracking. The core of the InvenTree system is a Python/Django database backend which provides an admin interface (web-based) and a REST API for interaction with external interfaces and applications. A powerful plugin system provides support for custom applications and extensions.
Check out our website for more details.
Want to see what we are working on? Check out the roadmap tag and horizon milestone.
InvenTree is designed to be extensible, and provides multiple options for integration with external applications or addition of custom plugins:
Server
Database
DevOps
There are several options to deploy InvenTree.
Docker
·
·
Bare Metal
Single line install - read the docs for supported distros and details about the function:
wget -qO install.sh https://get.inventree.org && bash install.shRefer to the getting started guide for a full set of installation and setup instructions.
InvenTree includes a comprehensive test suite to ensure code quality and reliability. Here are the different ways to run tests:
The project uses invoke tasks for running tests. Make sure you have the development dependencies installed:
# Install development dependencies
pip install -r src/backend/requirements-dev.txt
# Run all tests
invoke test
# Run tests with coverage analysis
invoke test --coverage
# Keep the test database (useful for debugging)
invoke test --keepdb
# Show slow test report
invoke test --reportYou can run specific tests using the --runtest parameter:
# Run tests from a specific app
invoke test --runtest=company
# Run tests from a specific test file
invoke test --runtest=company.test_api
# Run tests from a specific test class
invoke test --runtest=company.test_api.TestCompanyAPI
# Run a specific test method
invoke test --runtest=company.test_api.TestCompanyAPI.test_create_companyYou can also run Django tests directly:
cd src/backend/InvenTree
# Run all tests
python manage.py test
# Run tests from a specific app
python manage.py test company
# Run tests from a specific test file
python manage.py test company.test_api
# Run tests from a specific test class
python manage.py test company.test_api.TestCompanyAPI
# Run a specific test method
python manage.py test company.test_api.TestCompanyAPI.test_create_companyTests are organized by app in the src/backend/InvenTree/ directory:
company/test_api.py- Company-related API testspart/test_api.py- Part-related API testsstock/test_api.py- Stock-related API testsusers/test_api.py- User-related API tests- And many more...
# Include migration tests
invoke test --migrations
# Run Django check before tests
invoke test --check
# Compile translations before tests
invoke test --translations
# Run tests with specific tags
python manage.py test --tag=api
python manage.py test --tag=slowTo set up a testing environment with sample data:
# Setup test environment with demo dataset
invoke setup_test
# Setup test environment and install development dependencies
invoke setup_test --devFor more detailed testing information, refer to the development documentation.
InvenTree is supported by a companion mobile app which allows users access to stock control information and functionality.
The InvenTree project team is committed to providing a safe and welcoming environment for all users. Please read our Code of Conduct for more information.
InvenTree is following industry best practices for security. Our security policy is included in this repo. We provide dedicated security pages on our documentation site.
Contributions are welcomed and encouraged. Please help to make this project even better! Refer to the contribution page.
Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged.
If you use InvenTree and find it to be useful, please consider sponsoring the project.
We want to acknowledge PartKeepr as a valuable predecessor and inspiration. Find a full list of used third-party libraries in the license information dialog of your instance.
This project is supported by the following sponsors:
With ongoing resources provided by:
Distributed under the MIT License. See LICENSE.txt for more information.

















