GitLab: Installation und Konfiguration - ein Tutorial

GitLab - ein Werkzeug, so wichtig wie fast nichts anderes. Ich benutze GitLab nun schon seit 2014. Bei der damaligen Installation habe ich einige Fehler gemacht, und mich immer wieder darüber geärgert. 2017 der erste Umzug mit allen Projekte auf einen neuen Server. Oh Du rosige Zukunft. Was mir nicht bewusst war: Die Fehler sind mit umgezogen. 2019 der zweite Umzug. Auf einen neuen Server natürlich. Und die Fehler? ...rate mal....

2021. Das Jahr, das wohl alles in den Schatten stellt und alles von Grund auf ändert. Denn: Die Fehler ziehen nicht mit um. Nein, diesmal soll alles besser werden, die Unzulänglichkeiten von 7 Jahren werden nach dem Umzug einfach hinfort formatiert. Im wahrsten Sinne des Wortes. Aber was genau war passiert, was ist der schlimmste Fehler, den man eigentlich machen kann? Das ist sehr einfach zu beantworten.

Man installiert GitLab nicht auf einem Server auf dem schon was darauf ist. Nein, das macht man wirklich nicht. Jeder der denkt, "Ach, ich hab da noch diese Kiste, da laufen nur ein paar Stagings drauf...", denen sei geraten: LASST ES! Denn spätestens, wenn auf dem Server bereits ein Dienst läuft, auf dem Port 80 und 443 verwendet werden, darf man sich mit dem Thema: "Apache als Reverse Proxy für den GitLab NGINX" befassen. Das klingt am Anfang noch besonders motivierend, aber wenn das Thema Container Registry und andere Nettigkeiten ins Spiel kommen, darf man sich immer wieder mit der Frage beschäftigen: Und welche Ports müssen jetzt wohin? Und für den Docker Login gibt es wohl keine zuverlässige Lösung, diese durch einen Apache zu streamen. Und wer will schon einen blöden Port in seiner GitLab URL.


TYPO3 mit SOLR und NGINX mittels docker-compose auf EC2

Heute geht es mal darum, einen Blick auf TYPO3 in Verbindung mit Docker auf einer Amazon AWS EC2 Instanz zu betreiben. Es geht also weg vom klassischen Hosting, hin zu einer sehr weit skalierbaren Cloud Lösung. Zusätzlich wird die Performance des Projektes erhöht, indem anstelle eines Apache Webserver hier ein NGINX Webserver zum Einsatz kommt. Als zusätzlicher Dienst wird ein SOLR Server mit einem Core für das Projekt betrieben. Um das ganze automatisiert auf der EC2 Instanz aktualisieren zu können, wird über die Gitlab CI ein kleines, rudimentäres Deployment aufgesetzt. Das Deployment ist wirklich nur rudimentär, weil es weder ein Code Quality Gate, noch einen Frontend-Build besitzt. Auch das Anlegen von Releases oder Rollback gehört nicht zu diesem Thema.

PageSpeed 100/100. TYPO3 schneller machen, richtig viel schneller!

Ich hatte bereits vor langer Zeit einen Artikel darüber geschrieben, wie man sein TYPO3 Projekt schneller machen und dabei Werte von 100 bei PageSpeed Insights (aka Lighthouse) erreichen kann. Nun hat sich seit damals viel getan. Die Technik hat sich weiter entwickelt und TYPO3 ist auch selbst schneller geworden. Aber wer jetzt hofft, ein Update reiche aus um die Punkte zu erhöhen - wird schnell enttäuscht. An meinem Projekt hat sich nichts geändert mit dem Update von php73 und TYPO3 9 LTS auf php74 und TYPO3 10 LTS. Auch der PageSpeed Test hat sich weiter entwickelt, und der Fokus liegt hier stärker auf der Optimierung für mobile Endgeräte. Vor allem aber ist die Seitengeschwindigkeit im mobilen Bereich ein Faktor für das Ranking. Aus dem Grund kann es wichtig werden, eine Optimierung durchzuführen und damit auch die Nutzererfahrung insgesamt zu steigern, und eben das Ranking zu verbessern.

TYPO3 9 LTS: Bootstrap Klassen für GridElements

Ich versuche derzeit eine neue Idee um die Bootstrap Klassen eines eigenen Themes in TYPO3 zu bekommen. Gerade wenn man ein schlankes System möchte, und man nicht auf zusätzliche Bootstrap Extensions für TYPO3 setzen möchte, sollte das erstellen von GridElements dennoch schnell gehen.

TYPO3 9 LTS: Breadcrumb für Seiten und News Detailansicht

In TYPO3 hat sich einiges geändert, auch TypoScript ist betroffen. Grundlegend funktioniert globalVars in Conditions nicht mehr. Hier eine Lösung, wie das Abfragen von URL Parametern wieder funktioniert. In diesem Beispiel wird die News Extension abgefragt und aus dem News Titel die Breadcrumb Navigation erstellt.

TYPO3 mit: Amazon S3 und CloudFront CDN für statische Inhalte

Früher war alles besser, sollte man meinen. In Bezug auf Ladezeiten einer Webseite trifft dieser Spruch allerdings überhaupt nicht gut zu, denn mittlerweile gehört zu einer Webseite nicht nur eine saubere Ausgabe des Codes und die Kompatibilität zu unterschiedlichen Devices, nein, auch Ladezeiten werden immer wichtiger.

DataProcessor, GridElements und FAL Bilder im FluidTemplate (4 Beginners)

Jeder, der in letzter Zeit unter TYOP3 7 LTS in Verbindung mit Gridelements versucht hat, ein FlexForm Element vom Typ "inline" auf Bilder (FAL) zu erstellen, wird gemerkt haben, dass es nach dem anklicken des Bildes im File Wizard zu einer Alert-Box mit einem Fehler 500 kommt.

TYPO3 7 LTS Fluid Styled Content: Spezialmenü "Auflistung der Unterseiten" mit Bild aus Seiteneigenschaften

Update vom 03.05.2016: Dieser Artikel ist nicht mehr ganz aktuell. Es gibt eine neue Variante mit DataProcessing, welche ich in einem neuen Artikel zum Thema FAL Bilder im FLUIDTEMPLATE vorstelle.

Extbase: Datensätze aus uidlist sortieren

Oftmals müssen Datensätze in einer FlexForm im TYPO3 Backend manuell zur Ausgabe selektiert werden. Das Problem dabei ist, dass Extbase Repository liefert die Daten nicht in der Reihenfolge zurück, wie die einzelnen Datensätze in der FlexForm eingetragen wurden.

Google PageSpeed Insights 100/100 für TYPO3

András Ottó von der Marit AG hat vor kurzem ein schönes und informatives Dokument [1] zum Thema Google PageSpeed Insights [2] mit dem passenden Namen "PageSpeed Insights 100/100 guide" veröffentlicht. Da ich selbst vor kurzem meine Seite neu gelauncht habe, war dass der passende Zeitpunkt, um das ganze etwas tiefer zu testen, und nach Möglichkeit die besten Werte zu erreichen.

Adaptive Images in TYPO3 How-To

Responsive ist gut und schön, allerdings sollte nicht nur die Darstellung des HTML und CSS bei der Umsetzung einer Seite bedacht werden sondern auch die Größe der Bilder die auf dem mobilen Endgerät herunter geladen werden müssen. Nun gibt es ja viele Wege die nach Rom führen, bekanntermaßen. Hier möchte ich einen Weg vorstellen der mit einfachsten Mitteln umzusetzen ist und im Prinzip noch nicht mal etwas mit TYPO3 zu tun. Es geht dabei um das PHP Script von adaptive-images.com. Auf der Infografik oben ist zu sehen, was sich damit erzielen lässt.