Artikel
von Patrick Froch

Contao 4: Installation von Erweiterungen - Repository

Nun wird es etwas anspruchsvoller, aber auch wesentlich professioneller. Wir wollen jetzt die Erweiterung direkt aus der Projektverwaltung, also direkt aus dem Repository installieren. Dies ist natürlich für die Pflege und die Updates wesentlich besser, da man keine zusätzliche Arbeit in die Erstellung und das Verteilen der Archive investieren muss.

Wer den ersten Teils und zweiten Teils dieser Serie nicht gelesen hat, sollte dies nachholen. Der aktuelle Beitrag baut direkt darauf auf.

Vorbereitung

Als Quelle für unsere Installation soll hier Gitlab dienen. Es gibt mehrere Möglichkeiten es zu installieren. Wer es besonders einfach mag, benutzt das Dockerimage. Auf die Installation von GitLab, sowie das Anlegen eines Projekts werde ich hier nicht weiter eingehen. Dies ist unter https://docs.gitlab.com sehr gut dokumentiert. Einen Beitrag zur Benutzung gibt es auch hier im Blog.

Anlegen eines Benutzers

Die Installation geschieht über einen API-Key. Dieser wird pro Benutzer angelegt und nicht pro Projekt. Da ich viele Kunden mit mehreren Projekten habe, lege ich für jedes Projekt einen extra Installationsbenutzer an.

benutzer anlegen

Es sollte ein regulärer Nutzer und natürlich kein Admin sein. Es bietet sich an, den Nutzer auf 'external User' zusetzen, um den Zugirff einzuschränken.

Nun müssen wir den API-Key erstellen. Hierzu müssen wir zunächst die Rolle des neuen Benutzers einnehmen. Nach dem Erstellen klicken wir auf der folgenden Seite auf "Impersonate".

impersonate

Anlegen eines Keys

Nun können wir oben rechts auf das Menü und dort auf Settings klicken. Auf der linken Seite wählen wir "Access Tokens" aus.

Access Tokens

Hier geben wir einen Namen für den Token ein und wählen api aus.

Token erstellen

Wenn wir den Token erstellen wird er uns oben angezeigt. Er muss sofort gesichert werden. Später kann der Token nicht erneut angezeigt werden! Wird er verloren, muss ein neuer erstellt werden! (Nein, den Token gibt es nicht mehr! ;))

Token erstellen

Nun können wir ganz oben rechts auf das gelbe Männchen klicken ("Stop impersonatio").

Benutzer dem Projekt zuweisen

Wieder in unserer eigenen Identität, rufen wir das gewünschte Projekt auf und wählen in der Seitenleiste Settings > Member.

Token erstellen

Wir suchen den gerade angelegten Benutzer und geben ihm die Rolle Reporter. Dies ist wichtig, da Gäste nicht die nötigen Rechte haben.

Das waren die Vorbereitungen auch schon. Dies klinkt hier vermutlich alles viel komplizierter, als es ist. Es handelt sich hier um eine bebilderte Schritt für Schritt Anleitung. Wenn sich jemand mit GitLab aus kennt, kann man dass ganze wie folgt zusammenfassen:

  • Benutzer anlegen
  • API-Key erstellen
  • Benutzer dem Projekt zuweisen
  • Fertig!

Quell-composer.json

In der Quell comoposer.json in unserer Erweiterung darf nun keine Version mehr stehen, da diese über die git-Tags angegeben wird. Hier der Vollständigkeit halber die Quell-composer.json.

Ziel-composer.json

In der Contao-Instanz, in die wir unsere Erweiterung installieren wollen, müssen wir nun ein paar Dinge eintragen:

Natürlich müssen wir im Abschnitt require wieder unsere Erweiterung eintragen (Zeile 21). Der Abschnitt repositories (Zeile 24 - 27) sieht nun etwas anders aus. Hier verweisen wir auf das Projekt in unserer GitLab-Installation. Als Typ geben wir vcs an. Zu guter Letzt müssen wir noch unter config einige Einstellungen setzen (34 - 36). Da wäre einmal die Url unseres GitLab-Servers (Zeile 34), dann der eben erstellte Token (Zeile 35) und dass das Repository nicht geklont werden soll. Da es sonst zu einer Warnung kommt, wollen wir direkt die Distribution installieren. Dies soll nur für unsere Erweiterung gelten. Wir stellen es in Zeile 36 ein.

Installation

Nun kann unsere Erweiterung über den Manager installiert werden.

Token erstellen

Für Updates setzen wir einfach einen git-Tag und lassen den Manager die Erweiterung aktualisieren. Fertig!

Zurück

Kommentare

Aufgrund der unklaren Rechtslage durch die DSGV habe ich mich entschlossen, die Kommentare bis auf Weiteres zu deaktivieren.