Anleitung
Guide
Installation
Installation
Vom leeren Webspace bis zum angemeldeten Benutzer. Rechnen Sie mit etwa zehn Minuten.
From empty web space to a signed-in user. Expect roughly ten minutes.
1 · Voraussetzungen
1 · Requirements
Es genügt ein gewöhnliches PHP-Hosting. Es wird nichts kompiliert und nichts nachinstalliert — die benötigten Fremdbibliotheken lädt der Browser von einem CDN.
Ordinary PHP hosting is enough. Nothing is compiled and nothing is installed afterwards — the browser pulls the third-party libraries from a CDN.
- Webserver (Apache, nginx, LiteSpeed) ohne besondere Module
- PHP 8.1 oder neuer, entwickelt und getestet mit PHP 8.3
- PHP-Erweiterungen:
mysqli,json,session,zip - MySQL 5.7+ oder MariaDB 10.4+ mit einem Benutzer, der Datenbanken anlegen darf
- Für die Installation: Zugriff auf den Webspace per FTP, SFTP oder Git
- A web server (Apache, nginx, LiteSpeed), no special modules
- PHP 8.1 or newer; developed and tested on PHP 8.3
- PHP extensions:
mysqli,json,session,zip - MySQL 5.7+ or MariaDB 10.4+ with a user allowed to create databases
- For the install itself: access to the web space over FTP, SFTP or Git
htdocs und rufen Sie ihn über localhost auf.
htdocs directory and open it
through localhost.
2 · Dateien ablegen
2 · Place the files
Kopieren Sie den gesamten Inhalt in das Web-Verzeichnis. Die Struktur muss erhalten bleiben, die Anwendung findet ihre Teile über relative Pfade.
Copy the whole contents into your web directory. Keep the structure intact — the application locates its parts through relative paths.
# Beispiel / example /var/www/library/ ├── index.php ← Anmeldeseite / sign-in page ├── config/ ← installationsabhängig / installation-specific ├── file/ ← Dokumente und Bilder / documents and images ├── system/ ← Anwendung / application ├── plugins/ ← Projekte, Altium, Etiketten └── homepage/ ← diese Website (optional)
homepage/ ist diese Produktseite. Auf einem Produktivsystem
können Sie ihn weglassen; er wird von der Anwendung nicht gebraucht.
homepage/ folder is this product site. You can leave it out on a
production system; the application does not need it.
3 · Schreibrechte setzen
3 · Set write permissions
Zwei Ordner muss der Webserver beschreiben dürfen: config/, weil der
Installer dort die Zugangsdaten ablegt, und file/, weil dort hochgeladene
Datenblätter und Bilder landen.
The web server must be able to write to two folders: config/, where the
installer stores the database credentials, and file/, where uploaded
datasheets and images end up.
chown -R www-data:www-data config file chmod -R 775 config file
Beim Hosting ohne Shell-Zugang setzen Sie im FTP-Programm für beide Ordner die Rechte
775 (bei manchen Anbietern 777).
On hosting without shell access, set permissions 775 on both folders in your
FTP client (some providers need 777).
4 · Installer aufrufen
4 · Run the installer
Öffnen Sie im Browser https://ihre-adresse/system/install.php. Sie werden
nach vier Angaben gefragt:
Open https://your-address/system/install.php in a browser. You will be asked
for four values:
| DB Server | localhost | bei manchen Anbietern ein eigener Hostname | some providers use a dedicated host name |
| DB Username | — | Benutzer mit Rechten auf die Datenbank | user with rights on the database |
| DB Password | — | dessen Passwort | that user's password |
| Database Name | library | wird angelegt, falls sie noch nicht existiert | created if it does not exist yet |
Der Installer legt alle Tabellen und Sichten an und schreibt die Zugangsdaten nach
config/dbcon.php. Danach meldet er den Erfolg und verlinkt auf die Anmeldung.
The installer creates all tables and views and writes the credentials to
config/dbcon.php. It then reports success and links to the sign-in page.
5 · Erster Start
5 · First start
Melden Sie sich mit dem Standardzugang an:
Sign in with the default account:
admin@admin.com admin123
Legen Sie danach unter Admins die weiteren Konten an. Es gibt drei Rollen:
Then create the remaining accounts under Admins. There are three roles:
| Administrator | Alle Rechte, inklusive Benutzerverwaltung, Einstellungen und Backup | Everything, including user management, settings and backups |
| User | Darf Artikel, Dokumente und Stücklisten anlegen und ändern | May create and change items, documents and BOMs |
| Guest | Nur lesen — für Fertigung, Einkauf oder externe Mitarbeitende | Read only — for production, purchasing or external staff |
6 · Konfiguration
6 · Configuration
Alles Installationsabhängige liegt im Ordner config/ — und nur dort.
Das ist Absicht: Beim Update wird dieser Ordner nicht mit überschrieben.
Everything installation-specific lives in the config/ folder — and
nowhere else. That is deliberate: an update never overwrites this folder.
config/dbcon.php
Die Datenbank-Zugangsdaten. Wird vom Installer geschrieben; von Hand nur anfassen, wenn sich Server oder Passwort ändern.
The database credentials. Written by the installer; edit by hand only when the server or the password changes.
config/features.php
Hier schalten Sie Programmteile ein und aus und bestimmen das Erscheinungsbild:
This is where you switch parts of the program on and off and set the appearance:
<?php
define('FEATURE_PRODUCTS', true); // Artikel- und Bauteilverwaltung
define('FEATURE_PROJECT', true); // Projekte und Stücklisten
define('FEATURE_CATEGORY', true); // Kategoriebaum
define('APP_TITLE', 'Library and BOM Manager');
define('NAVBAR_COLOR', '#42acdf'); // Farbe der Kopfleiste
define('PRINT_METHOD', 'local'); // 'local' = PDF, 'server' = Direktdruck
Eigenes Logo
Your own logo
Legen Sie Ihr Logo in config/custom_logos/ ab. Es erscheint in der Kopfleiste
und auf den gedruckten Etiketten. Auch das Hintergrundbild der Anmeldeseite ist
austauschbar.
Put your logo into config/custom_logos/. It appears in the header bar and on
printed labels. The sign-in page background can be replaced as well.
7 · Etikettendrucker einrichten
7 · Setting up the label printer
Ohne weitere Einrichtung erzeugt das System ein PDF im Format 62 × 33 mm, das Sie über den Druckdialog des Browsers ausgeben. Das reicht für den Anfang und funktioniert mit jedem Drucker.
With no further setup the system produces a 62 × 33 mm PDF that you print from the browser's own print dialog. That is enough to get started and works with any printer.
Für den Direktdruck auf einen Brother QL im Netzwerk setzen Sie in
config/features.php den Wert PRINT_METHOD auf
'server'. Auf dem Server werden dann zusätzlich gebraucht:
For direct printing to a networked Brother QL, set PRINT_METHOD to
'server' in config/features.php. The server then additionally
needs:
- ImageMagick (
convert) zum Umwandeln des PDFs in ein Bild - brother_ql in einer Python-Umgebung
- Die IP-Adresse und das Modell des Druckers im Skript
bash/printpdf.sh
- ImageMagick (
convert) to turn the PDF into an image - brother_ql in a Python environment
- The printer's IP address and model in the
bash/printpdf.shscript
8 · Altium Designer anbinden
8 · Connecting Altium Designer
Altium liest die Bauteildaten direkt aus derselben MySQL-Datenbank. Sie legen in Altium
eine Datenbankbibliothek (.DBLib) an, verbinden sie per ODBC mit der
Datenbank und bilden die Felder auf die Tabelle der Bauteile ab.
Altium reads the part data straight from the same MySQL database. In Altium you create a
database library (.DBLib), connect it to the database over ODBC and map the
fields onto the parts table.
- MySQL-ODBC-Treiber auf dem Arbeitsplatz installieren
- In Altium eine neue
DBLibanlegen und die Verbindung eintragen - Als Quelle die Sicht mit den freigegebenen Bauteilen wählen
- Schaltplansymbol und Footprint auf die entsprechenden Felder abbilden
- Install the MySQL ODBC driver on the workstation
- Create a new
DBLibin Altium and enter the connection - Pick the view containing released parts as the source
- Map the schematic symbol and footprint onto the matching fields
Help-URL auf die Bauteilseite
Help URL pointing at the part page
Damit aus Altium heraus die Bauteilseite im Browser aufgeht, bilden Sie in der DBLib ein Feld auf die Help-URL des Bauteils ab. Die Adresse besteht aus Ihrer Serveradresse und der Artikelnummer:
So that the part page opens in a browser from inside Altium, map one DBLib field onto the component's help URL. The address is made up of your server address and the item number:
https://ihre-adresse/system/products.php?search_id=1000006
Das Feld ComponentLink1URL der Bauteiltabelle ist dafür vorgesehen. Ein Klick
darauf im Schaltplan öffnet die Seite mit Datenblatt, Handbuch, Errata, Bestand und allen
Parametern.
The ComponentLink1URL field of the parts table is meant for this. Clicking it
in the schematic opens the page with datasheet, manual, errata, stock and every parameter.
localhost, sonst funktioniert der Link nur auf Ihrem
eigenen Rechner.
localhost, or
the link will only work on your own machine.
9 · Update einspielen
9 · Installing an update
Ein Update besteht aus dem Austausch der Programmdateien. Die Regel ist einfach:
An update simply means replacing the program files. The rule is straightforward:
config/ und file/.
In config/ stehen Ihre Zugangsdaten, Einstellungen und Logos, in
file/ liegen Ihre Dokumente und Bilder. Alles andere darf ersetzt werden.
config/ and file/.
config/ holds your credentials, settings and logos; file/ holds
your documents and images. Everything else may be replaced.
Machen Sie vorher ein Backup (siehe unten) und rufen Sie nach dem Austausch einmal die Anwendung auf, damit allfällige Schemaänderungen greifen.
Take a backup first (see below) and open the application once afterwards so that any schema changes take effect.
10 · Backup und Wiederherstellung
10 · Backup and restore
In den Einstellungen findet sich als Administrator ein Knopf, der die gesamte Datenbank
als .sql-Datei herunterlädt, und ein zweiter für die hochgeladenen Dateien
als ZIP-Archiv. Beides gehört zusammen: Die Datenbank kennt die Dokumente nur über ihre
Nummern, die Dateien selbst liegen in file/.
As an administrator you will find a button in the settings that downloads the whole
database as a .sql file, and a second one for the uploaded files as a ZIP
archive. The two belong together: the database refers to documents only by number, the
files themselves live in file/.
Zum Wiederherstellen spielen Sie die .sql-Datei über phpMyAdmin oder die
Kommandozeile ein und entpacken das ZIP-Archiv zurück nach file/.
To restore, import the .sql file through phpMyAdmin or the command line and
unpack the ZIP archive back into file/.
mysql -u user -p datenbank < backup_2026-10-01.sql
11 · Wenn etwas klemmt
11 · Troubleshooting
Nach dem Installer kommt eine weisse Seite
A blank page after the installer
Meist fehlen die Schreibrechte auf config/, sodass die Zugangsdaten nicht
gespeichert werden konnten. Prüfen Sie, ob config/dbcon.php entstanden ist.
Usually the write permission on config/ is missing, so the credentials could
not be saved. Check whether config/dbcon.php was created.
Hochgeladene Datenblätter erscheinen nicht
Uploaded datasheets do not show up
Entweder ist file/ nicht beschreibbar, oder die Datei überschreitet das
Upload-Limit von PHP. Erhöhen Sie in der php.ini die Werte
upload_max_filesize und post_max_size.
Either file/ is not writable, or the file exceeds PHP's upload limit. Raise
upload_max_filesize and post_max_size in your
php.ini.
Die Bedienoberfläche sieht unformatiert aus
The interface looks unstyled
Die Oberfläche lädt Bootstrap, jQuery und DataTables von einem CDN. Ohne Internetzugang
auf dem Arbeitsplatz fehlen diese Dateien. In einem abgeschotteten Netz legen Sie sie
lokal ab und passen die Verweise in system/includes/footer.php an.
The interface loads Bootstrap, jQuery and DataTables from a CDN. Without internet access
on the workstation those files are missing. On an isolated network, host them locally and
adjust the references in system/includes/footer.php.
Alte Lesezeichen auf components.php
Old bookmarks pointing at components.php
Diese Seite ging in products.php auf. Alte Verweise funktionieren weiterhin:
Sie werden samt Suchparametern dauerhaft weitergeleitet.
That page was merged into products.php. Old links keep working: they are
permanently redirected, search parameters included.