62 lines
2.1 KiB
Markdown
62 lines
2.1 KiB
Markdown
|
partdb is an electronic parts manager.
|
||
|
|
||
|
goals
|
||
|
=====
|
||
|
|
||
|
I wished for a part manager with the following properties:
|
||
|
|
||
|
- self hosted: I do not wish to rely on an external service (which could become unreachable or simply disappear)
|
||
|
- web interface: this removes the need of yet another window running while designing boards, and just integrates well with the remaining part searching activity (e.g. on manufacturer and distributor web pages)
|
||
|
- customizable: simply because everyone has a different designing work flow, and wants to optimize their tools according to it (particularly myself)
|
||
|
|
||
|
One matching solution I found is [PartKeepr](https://partkeepr.org/).
|
||
|
I used it for several year, and it could still be OK for my needs.
|
||
|
But some aspects are just not that optimal anymore:
|
||
|
|
||
|
- it is not developed anymore since 2018 (a docker image keeps it runnable)
|
||
|
- logging in, and searching for parts is slow
|
||
|
- customizing it is really hard (views, features, ...)
|
||
|
- you always have to edit the part and click several times to copy any kind of value
|
||
|
|
||
|
I recently also discovered [Binner](https://binner.io/).
|
||
|
It does not allow to add custom part properties, or third parties distributors.
|
||
|
But it's a young project and seems promising.
|
||
|
|
||
|
Because they did not fit by power user demands, I decided to implement my own solution.
|
||
|
partdb is very crude, but it works, particularly for me.
|
||
|
|
||
|
components
|
||
|
==========
|
||
|
|
||
|
Part information is:
|
||
|
|
||
|
- stored in a MariaDB/mySQL database
|
||
|
- retrieved using a sinatra HTTP/REST server
|
||
|
- displayed using minimal HTML+JS pages
|
||
|
|
||
|
installation
|
||
|
============
|
||
|
|
||
|
install software dependencies (here for Arch linux):
|
||
|
|
||
|
~~~
|
||
|
sudo pacman -S mariadb
|
||
|
sudo pacman -S ruby-sinatra ruby-webrick
|
||
|
pikaur -S ruby-mysql2
|
||
|
~~~
|
||
|
|
||
|
configure database
|
||
|
|
||
|
~~~
|
||
|
sudo mariadb-install-db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
|
||
|
sudo mysql
|
||
|
CREATE DATABASE partdb;
|
||
|
CREATE USER 'partdb'@localhost IDENTIFIED BY 'password';
|
||
|
GRANT ALL PRIVILEGES ON partdb.* TO 'partdb'@localhost;
|
||
|
exit
|
||
|
mysql --user=partdb --password=password --database=partdb < schema.sql
|
||
|
~~~
|
||
|
|
||
|
put the database access information in `credentials.json` and run `server.rb`.
|
||
|
now go to http://localhost:4244 and you are ready to use it.
|