Overview
Discover what makes Part-DB powerful
Part‑DB is a web‑based, open‑source inventory management system tailored for electronic components. At its core it exposes a rich domain model—*parts*, *categories*, *footprints*, *manufacturers*, *storage locations*, and *projects*—and a fine‑grained permission system that can be enforced per user group. The application is built on the Symfony framework (v6+), leveraging PHP 8.2+, Doctrine ORM for persistence, and a PostgreSQL/MySQL‑compatible database backend. All business logic is encapsulated in reusable services, making the codebase highly testable and suitable for extension.
Framework
Language
Persistence
Frontend
Overview
Part‑DB is a web‑based, open‑source inventory management system tailored for electronic components. At its core it exposes a rich domain model—parts, categories, footprints, manufacturers, storage locations, and projects—and a fine‑grained permission system that can be enforced per user group. The application is built on the Symfony framework (v6+), leveraging PHP 8.2+, Doctrine ORM for persistence, and a PostgreSQL/MySQL‑compatible database backend. All business logic is encapsulated in reusable services, making the codebase highly testable and suitable for extension.
Technical Stack
- Framework: Symfony 6 (or newer) with Twig templating, API Platform for REST endpoints, and Messenger for asynchronous jobs.
- Language: PHP 8.2+ with strict typing and typed properties, ensuring compile‑time safety.
- Persistence: Doctrine ORM with MySQL/PostgreSQL support; migrations are managed via Symfony’s migration component.
- Frontend: Vanilla JavaScript with Stimulus controllers for interactive features (barcode scanning, dynamic forms).
- Containerization: Official Docker image (
jbtronics/part-db1) is available; the repository includes adocker-compose.ymlthat spins up web, database, and optional SSO services. - CI/CD: GitHub Actions run PHPUnit tests, static analysis (PHPStan), code coverage, and Docker image builds.
Core Capabilities & APIs
Part‑DB exposes a fully documented REST API (JSON:API compliant) that allows CRUD operations on all entities. Authentication is handled via JWT or session cookies; SSO can be enabled through SAML with an external IdP (e.g., Keycloak). The API supports bulk imports/exports in CSV and JSON, and includes a BOM import endpoint that parses KiCad project files. Webhooks can be configured to notify external services on entity changes, and a plugin system (Symfony bundles) lets developers hook into lifecycle events or add new endpoints.
Deployment & Infrastructure
The application is designed for self‑hosting on any LAMP/LEMP stack. Docker simplifies deployment: a single docker-compose up -d brings up the web server, database, and optional reverse proxy. For production, recommended settings include Nginx/Apache with HTTPS termination, a dedicated PostgreSQL instance, and Redis for Symfony’s cache/message queue. Horizontal scaling is supported by running multiple web containers behind a load balancer; Doctrine’s connection pooling and Symfony’s HTTP cache reduce database contention.
Integration & Extensibility
Developers can extend Part‑DB by creating Symfony bundles that register new services, controllers, or Doctrine entities. The plugin architecture supports custom UI components via Twig extensions and JavaScript modules. External integrations are straightforward: the API can be consumed by custom dashboards, ERP systems, or IoT devices. The barcode/label generator is exposed as a service that can be called from scripts or other applications, enabling automated label printing.
Developer Experience
The project follows PSR‑12 coding standards and is continuously evaluated by Scrutinizer, PHPUnit, and static analysis tools. Comprehensive documentation lives on docs.part-db.de, covering installation, configuration, API usage, and contribution guidelines. An active community on GitHub and Discord ensures quick support for bugs or feature requests, while the open‑source license (MIT) removes any commercial barriers.
Use Cases
- Component Labs: Track thousands of parts, assign storage locations, and generate barcodes for quick inventory checks.
- PCB Design Teams: Import BOMs from KiCad, automatically link parts to projects, and generate purchase orders.
- Manufacturing Facilities: Integrate Part‑DB with ERP systems via the REST API to keep stock levels in sync across departments.
- Educational Institutions: Provide students with a real‑world inventory system that supports multi‑language interfaces and fine‑grained permissions.
Advantages
- Performance & Flexibility: Symfony’s HTTP cache and Doctrine’s lazy loading keep the UI snappy even with large inventories.
- Licensing: MIT license allows unrestricted use, modification, and redistribution—ideal for internal tooling.
- Extensibility: The bundle‑based plugin system and open API make it trivial to add custom workflows or integrate with existing infrastructure.
- Security: Built‑in 2FA, SSO support, and detailed ACLs give enterprises confidence in protecting sensitive data.
In summary, Part‑DB offers a robust, modern stack for managing electronic component inventories while giving developers full control over customization, integration, and deployment.
Open SourceReady to get started?
Join the community and start self-hosting Part-DB today
Related Apps in other
Immich
Self‑hosted photo and video manager
Syncthing
Peer‑to‑peer file sync, no central server
Strapi
Open-source headless CMS for modern developers
reveal.js
Create stunning web‑based presentations with HTML, CSS and JavaScript
Stirling-PDF
Local web PDF editor with split, merge, convert and more
MinIO
Fast, S3-compatible object storage for AI and analytics
Weekly Views
Repository Health
Information
Tags
Explore More Apps
Nextcloud
Self‑hosted cloud for secure file sync and collaboration
Stirling-PDF
Local web PDF editor with split, merge, convert and more
Bigcapital
Smart, open‑source accounting for SMBs
Pomerium
Zero‑trust, clientless access to internal apps
Input
Self-hosted, no-code form builder for brandable surveys
WikiDocs
Databaseless markdown flat‑file wiki engine