Stars: 488
Forks: 50
Pull Requests: 110
Issues: 222
Watchers: 24
Last Updated: 2023-09-11 18:01:38
Part-DB is an Open source inventory management system for your electronic components
License: GNU Affero General Public License v3.0
Languages: PHP, CSS, JavaScript, Dockerfile, Shell, Twig, Procfile
Documentation | Demo | Docker Image
Part-DB is an Open-Source inventory managment system for your electronic components. It is installed on a web server and so can be accessed with any browser without the need to install additional software.
The version in this Repository is a complete rewrite of the legacy Part-DB (Version < 1.0) based on a modern framework. Currently, it is still missing some (minor) features from the old version (see UPGRADE.md) for more details, but also many huge improvements and advantages compared to the old version. If you start completely new with Part-DB it is recommended that you use the version from this repository, as it is actively developed.
If you find a bug, please open an Issue on Github so it can be fixed for everybody.
If you want to test Part-DB without installing it, you can use this Heroku instance. (Or this link for the German Version).
You can log in with username: user and password: user.
Every change to the master branch gets automatically deployed, so it represents the current development progress and is maybe not completely stable. Please mind, that the free Heroku instance is used, so it can take some time when loading the page for the first time.
With these features Part-DB is useful to hobbyists, who want to keep track of their private electronic parts inventory, or makerspaces, where many users have should have (controlled) access to the shared inventory.
Part-DB is also used by small companies and universities for managing their inventory.
If you want to upgrade your legacy (< 1.0.0) version of Part-DB to this version, please read this first.
Hint: A docker image is available under jbtronics/part-db1. How to set up Part-DB via docker is described here.
Below you find some very rough outline of the installation process, see here for a detailed guide how to install Part-DB.
public/
folder. See here
for additional information.cp .env .env.local
and edit .env.local
:
APP_ENV=dev
to APP_ENV=prod
DATABASE_URL=
to your needs (see here) for the format.
In bigger instances with concurrent accesses, MySQL is more performant. This can not be changed easily later, so choose wisely.composer install -o --no-dev
part-db/
), you have to edit the file
webpack.config.js
and uncomment the lines (remove the //
before the lines) .setPublicPath('/part-db/build')
(line 43) and
.setManifestKeyPrefix('build/')
(line 44). You have to replace /part-db
with your own path on line 44.yarn install
and yarn build
php bin/console cache:warmup
php bin/console doctrine:migrations:migrate
and follow the instructions given. During the process the password for the admin is user is shown. Copy it. Caution: This steps tamper with your database and could potentially destroy it. So make sure to make a backup of your database.config/parameters.yaml
. You should check if settings match your expectations, after you installed/upgraded Part-DB. Check if partdb.default_currency
matches your mainly used currency (this can not be changed after creating price informations).
Run php bin/console cache:clear
when you changed something.php bin/console app:set-password admin
. You can create new users with the admin user and start using Part-DB.When you want to upgrade to a newer version, then just copy the new files into the folder and repeat the steps 4. to 7.
Normally a random password is generated when the admin user is created during inital database creation,
however you can set the inital admin password, by setting the INITIAL_ADMIN_PW
env var.
You can configure Part-DB to your needs by changing environment variables in the .env.local
file.
See here for more information.
If you are using a reverse proxy, you have to ensure that the proxies sets the X-Forwarded-*
headers correctly, or you will get HTTP/HTTPS mixup and wrong hostnames.
If the reverse proxy is on a different server (or it cannot access Part-DB via localhost) you have to set the TRUSTED_PROXIES
env variable to match your reverse proxies IP-address (or IP block). You can do this in your .env.local
or (when using docker) in your docker-compose.yml
file.
If you want to donate to the Part-DB developer, see the sponsor button in the top bar (next to the repo name). There you will find various methods to support development on a monthly or a one time base.
See also the list of contributors who participated in this project.
Based on the original Part-DB by Christoph Lechner and K. Jacobs
Part-DB is licensed under the GNU Affero General Public License v3.0 (or at your opinion any later). This mostly means that you can use Part-DB for whatever you want (even use it commercially) as long as you publish the source code for every change you make under the AGPL, too.
See LICENSE for more information.