MCPSERV.CLUB
Part-DB

Part-DB

Self-Hosted

Open‑source electronic parts inventory for web browsers

Active(100)
1.3kstars
0views
Updated 5 days ago

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 a docker-compose.yml that 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

Weekly Views

Loading...
Support Us
Most Popular

Infrastructure Supporter

$5/month

Keep our servers running and help us maintain the best directory for developers

Repository Health

Loading health data...

Information

Category
other
License
AGPL-3.0
Stars
1.3k
Technical Specs
Pricing
Open Source
Database
Multiple
Docker
Official
Supported OS
LinuxDocker
Author
Part-DB
Part-DB
Last Updated
5 days ago