MCTec Altium Library Manager

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
Zum Ausprobieren auf dem eigenen Rechner genügt ein fertiges Paket wie MAMP, XAMPP oder Laragon. Legen Sie den Ordner dort in das Verzeichnis htdocs und rufen Sie ihn über localhost auf.
To try it on your own machine, a bundle such as MAMP, XAMPP or Laragon is enough. Put the folder into that bundle's 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)
Der Ordner homepage/ ist diese Produktseite. Auf einem Produktivsystem können Sie ihn weglassen; er wird von der Anwendung nicht gebraucht.
The 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 Serverlocalhost 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 Namelibrary 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.

Achtung bei einer bestehenden Installation. Der Installer ist zugleich die Wiederherstellungsfunktion: Er löscht vorhandene Tabellen und legt sie neu an. Auf einem laufenden System kommt er deshalb nur an Administratoren heran, und er fragt vorher nach. Führen Sie ihn dort nur aus, wenn Sie wirklich zurücksetzen wollen.
Careful on an existing installation. The installer doubles as the recovery tool: it drops existing tables and recreates them. On a running system it is therefore restricted to administrators and asks for confirmation first. Only run it there if you really do mean to reset.

5 · Erster Start

5 · First start

Melden Sie sich mit dem Standardzugang an:

Sign in with the default account:

admin@admin.com
admin123
Ändern Sie dieses Passwort sofort. Es ist in dieser Anleitung nachzulesen und damit öffentlich bekannt. Das geht über das Benutzermenü oben rechts.
Change this password immediately. It is printed in this guide and therefore public knowledge. Use the user menu in the top right.

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.sh script
Der Direktdruck umgeht den Druckertreiber des Betriebssystems. Das ist der Grund für diesen Umweg: Endlosband lässt sich auf manchen Systemen über den normalen Treiber nicht sauber auf die richtige Länge einstellen.
Direct printing bypasses the operating system's printer driver. That is the reason for this detour: on some systems the normal driver cannot be set to the right length for continuous tape.

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 DBLib anlegen 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 DBLib in Altium and enter the connection
  • Pick the view containing released parts as the source
  • Map the schematic symbol and footprint onto the matching fields
Symbole und Footprints werden im System getrennt vom Bauteil gepflegt und erst dort verknüpft. Ein Symbol lässt sich damit in vielen Bauteilen wiederverwenden, ohne es zu kopieren.
Symbols and footprints are maintained separately from the component and linked only there. That lets one symbol be reused across many parts without copying it.

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.

Tragen Sie dort die Adresse ein, unter der Ihre Kolleginnen und Kollegen den Server erreichen — nicht localhost, sonst funktioniert der Link nur auf Ihrem eigenen Rechner.
Use the address your colleagues reach the server at — not 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:

Alles überschreiben ausser config/ und file/. In config/ stehen Ihre Zugangsdaten, Einstellungen und Logos, in file/ liegen Ihre Dokumente und Bilder. Alles andere darf ersetzt werden.
Overwrite everything except 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.

Kommen Sie nicht weiter? Schreiben Sie an info@mctec.ch — mit PHP-Version, Datenbankversion und der Fehlermeldung aus dem Server-Log.
Stuck? Write to info@mctec.ch — please include your PHP version, database version and the error message from the server log.