Freitag, 9. April 2021

Raspberry Pi - Verwendung von Docker Compose (Beispiel OpenAPI-Generator c't 25/2020)

In diesem Beitrag zeige ich auf Basis des Artikels c't 25/2020 S. 160 OpenAPI-Generator, wie man Docker Compose verwendet. Die Installation wurde bereits in dem Artikel Raspberry Pi - Docker Compose installieren beschrieben.

Docker Compose ermöglicht mehrere Container mit einzelnen Anwendungen oder Komponenten zu starten oder um Container automatisch zu verknüpfen und Volumes einzurichten.

Die Verwendung von Docker Compose benötigt die folgenden Schritte

  1. Erstellen eines Verzeichnis für die Installationsdateien.
    • mkdir rest-api-demo
  2. In diesem Verzeichnis muss jetzt die YAML-Datei docker-compose.yml abgelegt/erstellt werden.
    • Images mit dem Apache Webserver und PHP-Compiler:
      version: "3"
      services:
        server:
          image: "jorgenjo/rpi-apache-php" #php:apache
          volumes:
            - ./server:/var/www/html
          ports:
            - 8001:80
        client:
          image: "jorgenjo/rpi-apache-php" #php:apache
          volumes:
            - ./client:/var/www/html
          ports:
            - 8000:80
          depends_on:
            - server
  3. Im selben Verzeichnis, den/die Container zu starten.
    • ~/rest-api-demo $ sudo docker-compose up -d

    • Hinweis: Docker-Compose wird im Hintergrund (-d) ausgeführ

Test der Umgebung (Server und Client)

In beiden Verzeichnissen (Server/Client) jeweils eine index.php Datei erstellen und anschließend aufrufen.

Server: index.php
<?php echo "Test"; ?>

Client: index.php
<?php echo file_get_content("http://server"); ?>


Die Basis ist jetzt geschafft, weiter geht es jetzt mit der Anleitung unter https://github.com/manuelottlik/ct-oas-praxis/.

Nützliche Docker Compose Befehle

Erstellte Container abzeigen:
sudo docker-compose ps

Container einer Anwendungsgruppe stoppen:
sudo docker-compose stop 

Containe entfernen (sofern gestoppt):
sudo docker-compose rm 

Alle Container in einer Anwendungsgruppe stoppen und gleichzeitig entfernen:
sudo docker-compose down

Alle Data-Volumes entfernen (-v):
sudo docker-compose down -v

Donnerstag, 8. April 2021

Raspberry Pi - SD Card Speed Test

Wie schnell ist meine SD-Karte? Die Raspberry Pi Foundation hat für diese Frage ein Diagnose-Tool für Speed Tests veröffentlicht. Das kostenlose Tool nennt sich "SD Card Speed Test" und misst die Schreib- und Lesegeschwindigkeit der verbauten Karte.


Installation erfolgt über das Terminal-Fenster mit dem folgenden Befehl:

sudo apt update
sudo apt install agnostics


Siehe auch weitere Details im Raspberry Pi Blog:


Als SD-Karte kann ich persönlich die PNY PRO Elite 64GB microSDHC-Speicherkarte empfehlen.

Montag, 5. April 2021

Kodi - Smartphone als Fernbedienung nutzen

Die sehr beliebte App "Kodi" (ehemals XBMC) ist eine freie Mediaplayer-Software und diese lässt sich mit Hilfe auch durch ein Smartphone (als Fernbedienung) bedienen.

Kodi Fernbedienung

Man muss sich dafür nur eine der folgenden Apps auf sein Smartphone laden:

Anschließend kann das Smartphone als Fernbedienung für Kodi verwendet werden.

Die Konfiguration ist relativ einfach, so muss der jeweilige Host hinzugefügt werden um die App mit der jeweiligen Kodi-Installation zu verbinden. In der Regel funktioniert dies bereits über die automatische Suche oder die IP-Adresse des PC/Raspberry auf dem Kodi installiert ist. 

Hinweis I: Auf dem Smartphone muss natürlich das WLAN aktiviert sein

Hinweis II: Die Steuerung über HTTP muss in der Kodi-Installation aktiviert sein, siehe nachfolgende Bilder.


In dem folgenden Beitrag "Mit Kodi auf die Synology Diskstation zugreifen" beschreibe ich, wie man auf einen gemeinsamen NAS (Film-)Ordner zugreifen kann.

Sonntag, 4. April 2021

Raspberry Pi - GPIO-Pin Belegung und Schaltungen (Fritzing)

In dem Beitrag "Raspberry Pi - Temperatursensor DS18B20" verweise ich auf die Raspberry Pi GPIO Anschlussbelegung. Die Pinleiste inkl. der Funktionen wird auf der folgenden Seite Raspberry Pi Pinout bis ins kleinste Detail beschrieben.


GPIO-Belegungsplan und Schaltungen (Fritzing)

Die Funktionen der 40 GPIO-Pins sind oft nur mühsam zu ermitteln. Einen ausführlichen Belegungsplan findet man auf https://de.pinout.xyz.

Nützlich ist auch die Software Fritzing. Mit ihr ist es möglich, elektronische Schaltungen am Computer zu entwerfen oder seine Projekte zu dokumentieren. Siehe fritzing.org.

Raspberry Pi - TV HAT

Das eigene Raspberry Mediacenter lässt sich mittlerweile um einen Raspberry Pi TV HAT (ca. 10 Euro) um z.B. die öffentlich-rechtlichen TV-Programme zu empfangen, erweitern. 

Ausführliche Informationen zur Konfiguration finden sich in dem folgenden Blog: 

Offizielle Mitteilung im Raspberry Pi Blog:


Donnerstag, 1. April 2021

youtube-dl FFmpeg - Download mpd (MPEG DASH) Video Streams

Mit Hilfe des Beitrags "Download von Video Streams mit ffmpeg" ist es Möglich .m3u8 Dateien herunterladen, jetzt fehlt nur noch eine Möglichkeit .mpd  (MPEG DASH) Video Streams herunterladen zu können. Dies geht mit Hilfe von youtube-dl, welches bereits in dem folgenden Beitrag "Rund um Linux - Einige nützliche Befehle für die Shell II (Download mit wget und seq)" erwähnt wurde.

Um den Video- und Audiostream in eine einzige Datei zusammenführen zu können, muss FFmpeg inkl. libav installiert sein. Andernfalls erstellt youtube-dl für jeden Stream eine separate Datei (eine für Audio und eine für Video). Für die Wahl der Download Qualität siehe auch https://github.com/ytdl-org/youtube-dl/blob/master/README.md#format-selection.

/usr/bin/python3 /usr/local/bin/youtube-dl -f bestvideo+bestaudio https://cs.xyz.io/v1/TV/pd/93/9B/36/C9/FO-1234567ABC/manifest.mpd


Installation youtube-dl

Siehe hierzu auch http://ytdl-org.github.io/youtube-dl/download.html.

sudo curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl
sudo chmod a+rx /usr/local/bin/youtube-dl


Installation FFmpeg inkl. libav

Fehlt die Installation kommt es bei der Ausführung zu folgender Meldung:
  • WARNING: You have requested multiple formats but ffmpeg or avconv are not installed. The formats won't be merged. 
sudo apt-get install ffmpeg (siehe auch https://ffmpeg.org/download.html)

Zusätzliche Codecs (siehe auch https://libav.org/)
sudo apt-get install libavcodec-extra

Jetzt muss man nur noch in der Lage sein, youtube-dl mit der eigenen Python-Version auszuführen zu können:
  • /usr/bin/python3 /usr/local/bin/youtube-dl

Mittwoch, 31. März 2021

Fehler - "0-Fehler" Strategie

Nach den "Drei Arten von Misserfolgen" - Vermeidbare-, Komplexitätsbedingte- und Intelligente-Misserfolge, möchte ich kurz auf die Fehler eingehen, die immer zu vermeiden sind.

Die folgenden Themen müssen als "0-Fehler" Strategie betrachtet werden:

  • Sicherheit (z.B. IT-Security oder Datenschutz)
  • Produkte/ Services (z.B. Verfügbarkeit)
  • Produktion
  • Prozesse (z.B. Daten)
  • Compliance (z.B. Vergabe von Aufträgen und Ausschreibungen)
  • Gesetzeskonformität (z.B. Steuerrecht oder DSGVO)
  • Arbeitsregeln (z.B. Mobbing und Geschlechtergerechte Sprache)


Wichtig: Der zwischenmenschliche Umgang mit Fehlern muss gewährleistet sein, nur so kann der sachliche Umgang mit Fehlern im Rahmen des Fehlermanagements funktionieren!

Deshalb muss vor der Umsetzung dieser Strategie im Team bzw. der Firma auch der entsprechenden Rahmen (mentale Einstellung) zum offenen Umgang mit den o.g. Fehlern bereitgestellt werden.

Anschließend kann man aus den Fehlern lernen in dem man sich mit verschiedenen Methoden, Prozessen und Techniken mit den jeweiligen Ursachen beschäftigen.