mirror of
https://github.com/Part-DB/Part-DB-server.git
synced 2025-06-21 01:25:55 +02:00
Added some documentation on which database type to use.
This commit is contained in:
parent
3c79d967b4
commit
4ed25f6184
3 changed files with 96 additions and 4 deletions
|
@ -4,9 +4,62 @@ layout: home
|
|||
nav_order: 0
|
||||
---
|
||||
|
||||
# Part-DB documentation
|
||||
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.
|
||||
# Part-DB
|
||||
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.
|
||||
|
||||
Here you can find documentation for the installation, configuration and usage of Part-DB.
|
||||
## Demo
|
||||
If you want to test Part-DB without installing it, you can use [this](https://part-db.herokuapp.com) Heroku instance.
|
||||
(Or this link for the [German Version](https://part-db.herokuapp.com/de/)).
|
||||
|
||||
This documentation is automatically build from the Part-DB source, so feel free to create a pull request and improve the documentation.
|
||||
You can log in with username: *user* and password: *user*.
|
||||
|
||||
Every change to the master branch gets automatically deployed, so it represents the currenct development progress and is
|
||||
maybe not completly stable. Please mind, that the free Heroku instance is used, so it can take some time when loading the page
|
||||
for the first time.
|
||||
|
||||
## Features
|
||||
* Inventory managment of your electronic parts. Each part can be assigned to a category, footprint, manufacturer
|
||||
and multiple store locations and price informations. Parts can be grouped using tags. You can associate various files like datasheets or pictures with the parts.
|
||||
* Multi-Language support (currently German, English, Russian, Japanese and French (experimental))
|
||||
* Barcodes/Labels generator for parts and storage locations, scan barcodes via webcam using the builtin barcode scanner
|
||||
* User system with groups and detailed (fine granular) permissions.
|
||||
Two-factor authentication is supported (Google Authenticator and Webauthn/U2F keys) and can be enforced for groups. Password reset via email can be setuped.
|
||||
* Import/Export system (partial working)
|
||||
* Project managment: Create projects and assign parts to the bill of material (BOM), to show how often you could build this project and directly withdraw all components needed from DB
|
||||
* Event log: Track what changes happens to your inventory, track which user does what. Revert your parts to older versions.
|
||||
* Responsive design: You can use Part-DB on your PC, your tablet and your smartphone using the same interface.
|
||||
* MySQL and SQLite (experimental) supported as database backends
|
||||
* Support for rich text descriptions and comments in parts
|
||||
* Support for multiple currencies and automatic update of exchange rates supported
|
||||
* Powerful search and filter function, including parametric search (search for parts according to some specifications)
|
||||
|
||||
|
||||
With this 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.
|
||||
|
||||
## License
|
||||
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](https://github.com/Part-DB/Part-DB-symfony/blob/master/LICENSE) for more informations.
|
||||
|
||||
## Donate for development
|
||||
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.
|
||||
|
||||
## Built with
|
||||
* [Symfony 5](https://symfony.com/): The main framework used for the serverside PHP
|
||||
* [Bootstrap 5](https://getbootstrap.com/) and [Bootswatch](https://bootswatch.com/): Used as website theme
|
||||
* [Fontawesome](https://fontawesome.com/: Used as icon set
|
||||
* [Hotwire Stimulus](https://stimulus.hotwired.dev/) and [Hotwire Turbo](https://turbo.hotwired.dev/): Frontend Javascript
|
||||
|
||||
## Authors
|
||||
* **Jan Böhmer** - *Inital work and Maintainer* - [Github](https://github.com/jbtronics/)
|
||||
|
||||
See also the list of [contributors](https://github.com/Part-DB/Part-DB-symfony/graphs/contributors) who participated in this project.
|
||||
|
||||
Based on the original Part-DB by Christoph Lechner and K. Jacobs
|
||||
|
|
29
docs/installation/choosing_database.md
Normal file
29
docs/installation/choosing_database.md
Normal file
|
@ -0,0 +1,29 @@
|
|||
---
|
||||
title: "Choosing database: SQLite or MySQL"
|
||||
layout: default
|
||||
parent: Installation
|
||||
nav_order: 1
|
||||
---
|
||||
|
||||
# Choosing database: SQLite or MySQL
|
||||
|
||||
Part-DB saves its data in a [relational (SQL) database](https://en.wikipedia.org/wiki/Relational_database). Part-DB supports either the use of [SQLite](https://www.sqlite.org/index.html) or [MySQL](https://www.mysql.com/) / [MariaDB](https://mariadb.org/) (which are mostly the same, except for some minor differences).
|
||||
|
||||
You have to choose between the database types before you start using Part-DB and **you can not change it (easily) after you have started creating data**. So you should choose the database type for your usecase (and possible future uses).
|
||||
|
||||
## Comparison
|
||||
|
||||
**SQLite** is the default database type which is configured out of the box. All data is saved in a single file (normally `var/app.db` in the Part-DB folder) and no additional installation or configuration besides Part-DB is needed.
|
||||
To use **MySQL/MariaDB** as database, you have to install and configure the MySQL server, configure it and create a database and user for Part-DB, which needs some additional work. When using docker you need an additional docker container, and volume for the data
|
||||
|
||||
When using **SQLite** The database can be backuped easily by just copying the SQLite file to a safe place. Ideally the **MySQL** database has to be dumped to a SQL file (using `mysqldump`). The `console partdb:backup` command can do this automatically
|
||||
|
||||
However SQLite does not support certain operations like regex search, which has to be emulated by PHP and therefore are pretty slow compared to the same operation at MySQL. In future there might be features that may only be available, when using MySQL.
|
||||
|
||||
In general MySQL might perform better for big Part-DB instances with many entries, lots of users and high activity, than SQLite.
|
||||
|
||||
## Conclusion and Suggestion
|
||||
|
||||
When you are a hobbyist and use Part-DB for your own small inventory managment with only you as user (or maybe sometimes a few other people), then the easy to use SQLite database will be fine.
|
||||
|
||||
When you are planning to have a very big database, with a lot of entries and many users which regulary (and concurrently) using Part-DB you should maybe use MySQL as this will scale better.
|
|
@ -10,6 +10,7 @@ After Part-DB you should begin with customizing the settings, and setting up the
|
|||
Before starting its useful to read a bit about the [concepts of Part-DB](https://github.com/Part-DB/Part-DB-symfony/wiki/Concepts).
|
||||
|
||||
## Customize config files
|
||||
|
||||
<details>
|
||||
<summary>Click to expand</summary>
|
||||
|
||||
|
@ -20,6 +21,7 @@ A list of possible configuration options, can be found [here](Configuration).
|
|||
</details>
|
||||
|
||||
## Change password, Set up Two-Factor-Authentication & Customize User settings
|
||||
|
||||
<details>
|
||||
<summary>Click to expand</summary>
|
||||
|
||||
|
@ -37,10 +39,12 @@ In the configuration tab you can also override global settings, like your prefer
|
|||
</details>
|
||||
|
||||
## Create groups, users and customize permissions
|
||||
|
||||
<details>
|
||||
<summary>Click to expand</summary>
|
||||
|
||||
### Users
|
||||
|
||||
When logged in as administrator, you can open the users menu in the `Tools` section of the sidebar under `System -> Users`.
|
||||
At this page you can create new users, change their passwords and settings and change their permissions.
|
||||
For each user which should use Part-DB you should setup a own account, so that tracking of what user did what works properly.
|
||||
|
@ -54,9 +58,11 @@ For each capability you can choose between allow, forbid and inherit. In the las
|
|||
|
||||
|
||||
### Anonymous user
|
||||
|
||||
The `anonymous` user is special, as its settings and permissions are used for everybody who is not logged in. By default the anonymous user has read capabilities for your parts. If your Part-DB instance is publicly available you maybe want to restrict the permissions.
|
||||
|
||||
### Groups
|
||||
|
||||
If you have many users which should share the same permissions, it is useful to define the permissions using user groups, which you can create and edit in the `System -> Groups` menu.
|
||||
|
||||
By default 3 groups are defined:
|
||||
|
@ -72,6 +78,7 @@ To inherit the permissions from a parent group set the capability to inherit, ot
|
|||
</details>
|
||||
|
||||
## Create Attachment types
|
||||
|
||||
<details>
|
||||
<summary>Click to expand</summary>
|
||||
|
||||
|
@ -91,6 +98,7 @@ For every attachment type a list of allowed file types, which can be uploaded to
|
|||
</details>
|
||||
|
||||
## (Optional) Create Currencies
|
||||
|
||||
<details>
|
||||
<summary>Click to expand</summary>
|
||||
If you want to save priceinformations for parts in a currency different to your global currency (by default Euro), you have to define the additional currencies you want to use under `Edit -> Currencies`:
|
||||
|
@ -104,6 +112,7 @@ You can define a exchange rate in terms of your base currency (e.g. how much eur
|
|||
</details>
|
||||
|
||||
## (Optional) Create Measurement Units
|
||||
|
||||
<details>
|
||||
<summary>Click to expand</summary>
|
||||
|
||||
|
@ -119,6 +128,7 @@ The measurement unit can be selected for each part individually, by setting the
|
|||
</details>
|
||||
|
||||
## (Optional) Customize homepage banner
|
||||
|
||||
<details>
|
||||
<summary>Click to expand</summary>
|
||||
The banner which is shown on the homepage, can be customized/changed by changing the `config/banner.md` file with a text editor. You can use markdown and (safe) HTML here, to style and customize the banner.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue