OXID6 Module #3: Satis – das eigene Composer Repository

 27. April 2018

In dieser Artikelserie werden verschiedene Möglichkeiten beschrieben, um OXID6-Module komfortabel via Composer zu installieren.

Mit Satis wird auf dem eigenen Server ein neues Composer-Repository erstellt, dem Module, egal ob Private oder Öffentliche, hinzugefügt werden können.
Im OXID eShop 6 wird in der composer.json nur einmalig die Satis-URL eingetragen, damit Composer diese kennt und ggf. dort auch nach verfügbaren Paketen sucht.

Satis eignet sich insb. für private Packages, aber auch für eigene Forks und neue Branches bestehender Module.
Einen enormen Vorteil (Zeitersparnis) bringt Satis, wenn mehrere Shopinstallationen mit Modulen versorgt oder auf dem aktuellen Stand gehalten werden müssen.

Inhaltsübersicht der Artikelserie:

  • Teil #1: Module mit und ohne Packagist via Composer installieren
  • Teil #2: Module aus einem Zip-Archiv via Composer installieren
  • Teil #3: Satis – das eigene Composer Repository

Satis, das eigene, private „Packagist“

Satis ist ein kostenloses Tool zur Erstellung eines eigenen Verzeichnisses (Composer-Repository) mit privaten (und öffentlichen) Paketen.
Nachdem verschiedene Modul-URL´s (Repositories) zu Satis hinzugefügt wurden, durchsucht Satis diese und erzeugt ein Verzeichnis für Composer mit allen verfügbaren Versionen und Branches.
Die Satis-URL muss der OXID-composer.json nur einmalig hinzugefügt werden, damit Composer auch dort nach Paketen bzw. Modulen sucht.

Satis installieren

Navigieren Sie in das Verzeichnis auf Ihrem Server, in den Sie Satis installieren möchten.
Mit dem Befehl

composer create-project composer/satis:dev-master --keep-vcs

wird Satis im aktuellen Verzeichnis installiert (im Ordner satis).

Konfigurationsdatei anlegen

Im neu installierten Ordner satis muss noch die Konfigurationsdatei satis.json angelegt werden mit folgendem Beispielinhalt:

{
    "name": "My Repository",
    "homepage": "https://packages.example.org",
    "repositories": [
        { "type": "vcs", "url": "https://user@bitbucket.org/user/modulename.git"},
        { "type": "vcs", "url": "https://github.com/eComStyle-de/Demo/" }
    ],
    "require-all": true
}

Im o.g. Beispiel sollte unter „homepage“ eine Subdomain für das Satis-Repository eingetragen werden, unter „repositories“ können die Verweise zu den eigenen Repositories eingetragen werden.

Composer Repository erstellen

Wechseln Sie nun mit cd satis in den Satis-Ordner und führen Sie folgenden Befehl aus, um Ihr eigenes Composer-Repository zu erstellen:

bin/satis build satis.json web

Bei privaten Repositories wird in der Konsole Benutzername und Passwort abgefragt, erst nach erfolgreicher Legitimation kann Satis fortfahren.
Ausserdem bietet Satis an, die Logindaten zu speichern, damit diese zukünftig nicht mehr eingegeben werden müssen.
Wenn neue Pakete der satis.json hinzugefügt wurden oder neue Versionen der Pakete verfügbar sind, muss der build-Befehl erneut ausgeführt werden.

(Sub-) Domain einrichten

Im satis-Ordner wurde der Ordner „web“ erzeugt, auf den auch die unter „homepage“ eingetragene Subdomain zeigen sollte.
Für die Satis-Domain ist ein SSL-Zertifikat erforderlich.

Satis in OXID bekannt machen

Im Oxid-Projektverzeichnis kann nun das neue Satis-Repository in die composer.json mit folgendem Befehl eingetragen werden:

composer config repositories.meinsatis composer https://packages.example.org/

Nun durchsucht Composer auch Ihr Satis-Repository nach Paketen, wenn Sie ein Modul mit composer require... installieren möchten.

Module installieren oder updaten

In OXID können die bei Satis registrierten Module einfach mit composer require... installiert oder upgedatet werden.
Mit composer update werden alle Pakete (Module, Themes) auf die neuste verfügbare Version upgedatet.

Alle Artikel der Serie „OXID6 Module“