Für alle, die ein kleines, feines und einfaches CMS benötigen, bietet sich Yellow CMS an. Es ist dateibasiert und deshalb einfach zu installieren und zu betreiben. Trotzdem bietet es viele Möglichkeiten für einen tollen Internetauftritt. In dieser Anleitung zeige ich die einfache Installation unter Docker mit dem hier vorgestellten Traefik als Proxy.
Datum | Änderungen |
---|---|
10.02.2024 | Erstellen der Anleitung |
06.03.2024 | Anpassung der Treafik-Parameter in der docker-compose.yml |
1. Grundvoraussetzung
- Docker und Docker Compose v2 unter Debian/Ubuntu
- Traefik v2-3 Reverse Proxy mit Crowdsec im Stack einrichten
- unzip installieren: apt update && apt install unzip
2. Ordner anlegen
Wie in allen Anleitungen auf dieser Seite empfehle ich das Anlegen folgender Ordnerstruktur.
mkdir -p /opt/containers/yellow
3. Datei zum Erzeugen des Docker-Containers anlegen
Yellow CMS benötigt ein paar spezielle PHP-Module, die ich bisher in keinem Container gefunden habe. Deshalb erstellen wir unseren eigenen Docker-Container. Die Datei anlegen und danach mit dem Lieblingseditor bearbeiten.
nano /opt/containers/yellow/Dockerfile
FROM php:8-apache # install the required packages RUN apt-get update \ && apt-get -y install \ git \ zip \ unzip \ curl \ libjpeg-dev \ libpng-dev \ libzip-dev \ zlib1g-dev \ libbz2-dev \ libreadline-dev \ libfreetype6-dev # build gd packages RUN docker-php-ext-configure gd --with-jpeg --with-freetype \ && docker-php-ext-install gd zip \ && docker-php-ext-enable gd zip # enable rewrite and image for apache webserver RUN a2enmod rewrite headers # clean docker image RUN apt-get -y purge \ wget \ libjpeg-dev \ libpng-dev \ libzip-dev \ zlib1g-dev \ libbz2-dev \ libreadline-dev \ libfreetype6-dev RUN apt-get -y clean \ && rm -r /var/cache/apt /var/lib/apt/lists/*
Für den Container nutze ich einen aktuellen Container mit PHP 8 und Apache. Danach installiere ich die fehlenden Pakete, die für das Bauen der PHP-Erweiterung gd benötigt wird und räume den Container so weit wie möglich wieder auf.
4. Compose-Datei anlegen
Damit der Container mit Traefik verbunden wird, benötigen wir folgende Datei
nano /opt/containers/yellow/docker-compose.yml
mit folgendem Inhalt:
version: '3.5' services: cms: build: . container_name: cms restart: unless-stopped hostname: cms networks: - proxy volumes: - ./www:/var/www/html - ./log:/var/log labels: - "traefik.enable=true" - "traefik.http.routers.cms.entrypoints=websecure" - "traefik.http.routers.cms.rule=Host(`<FQDN>`)" - "traefik.http.routers.cms.tls=true" - "traefik.http.routers.cms.tls.certresolver=http_resolver" - "traefik.http.routers.cms.service=cms" - "traefik.http.services.cms.loadbalancer.server.port=80" - "traefik.docker.network=proxy" # define your traefik network networks: proxy: external: true
Den Platzhalter mit <FQDN> mit dem Fully Qualified Domain Name eures Servers ausfüllen (zum Beispiel ‘cms.euredomain.de’).
Falls ihr in Traefik ein anderes Netzwerk als “proxy” konfiguriert habt, muss das entsprechend hier eingetragen werden.
5. Yellow-CMS installieren
Nachdem der Container mit dem Apache-Webserver und den PHP-Paketen bereitgestellt ist, wird Yellow CMS installiert. Dazu folgende Befehle ausführen:
wget https://github.com/datenstrom/yellow/archive/main.zip unzip main.zip mv -T yellow-main www chown -R www-data www
Zuerst laden wir das aktuellste Paket von Yellow-CMS herunter und packen es aus. Das ausgepackte Verzeichnis nennen wir nach www um. Wichtig: Es darf kein Verzeichnis mit Es wird im Docker-Image als /var/www/html gemountet. Danach setzen wir die Rechte in dem Verzeichnis, damit der Apache-Webserver im Docker die Daten schreiben kann (unter Debian/Ubuntu ist die ID 33 gleich www-data).
6. Docker-Container starten
Nun ist alles installiert und der Docker-Container kann gebaut und gestartet werden.
cd /opt/containers/yellow docker compose build docker compose up -d
Diese Befelsreihenfolge wird auch genutzt um ein Update des Docker-Containers anzufertigen und aktuelle Pakete innerhalb des Containers zu nutzen.
Nicht vergessen: Die nicht mehr benötigten Container ab und zu löschen.
Beim Start des Docker-Containers wird noch das Verzeichnis /opt/containers/yellow/logs angelegt, in dem die Apache-Logdateien des CMS zu finden sind.
Danach kann der erste Aufruf des Yellow-CMS über den FQDN erfolgen, z.B. https://cms.euredomain.de/
7. Erste Schritte in Yellow CMS
Beim ersten Aufruf von Yellow CMS muss die Grundeinstellung durchgeführt werden:
Die Daten, die ihr hier einträgt braucht ihr später zur Administration der Webseite. Über die Webseite werden auch die Updates und Patches eingespielt. Bitte in regelmäßigen Abständen durchführen!
Wenn ihr alles richtig gemacht habt, dann sollte die Webseite so aussehen (hier ist schon der Editier-Modus ausgewählt).
Ab jetzt könnt ihr eurer Kreativität freien Lauf lassen und über den Browser eure Webseite gestalten, wie ihr möchtet. Hilfe und Anleitungen findet ihr direkt auf der Webseite von Yellow.
8. Erweiterungen einspielen
Für Yellow CMS gibt es einige Erweiterungen. Diese können ganz einfach installiert werden. Ich zeige es am Beispiel von Gallery.
Gehe auf die Webseite von Gallery und kopiere Dir den Link, z.B. in dem Du mit der rechten Maustaste auf den Link gehst und dann “Link-Adresse kopieren” wählst.
Dann gibst Du folgende Befehle ein:
cd /opt/containers/yellow/www/system/extensions/ wget <kopierter Link einfügen, z.B. mit der linken Maustaste (Linux, Putty)/mittleren Maustaste (Mac OS X)> chown www-data main.zip
Wichtig ist, dass der Webserver Schreibrechte auf die heruntergeladene Datei hat. Ansonsten funktioniert die Installation nicht.
Dann wechselst Du in in den Editier-Modus Deiner Webseite (Du kannst am Ende der URL ein /edit eingeben, z.B. https://cms.euredomain.de/edit) und öffnest die Einstellungen und dann Aktualisierungen. Dadurch wird die Zip-Datei automatisch gefunden und entpackt. Das Paket Gallery steht ab dann zur Verfügung.
Viel Spaß!
Super – So was habe ich schon ewig gesucht
DANKE
Herzlichen Glückwunsch zu deiner ersten Anleitung gorth 😀