Kategorien
Blog Reisen

Strandtag in Porto

Wir planen einen Strandtag in Porto.

Dazu mieten wir uns die gleichen Fahrräder wie das letzte Mal.

Auf der Nordseite des Douro findet ein Marathon statt, aber wir wollen sowieso auf der Südseite fahren.

In dem Tunnel vor der St. Luis Brücke sind keine Autos, nur wir, und wir bekommen noch ein spezial live Saxophon Konzert im Tunnel. Toll!

Auf dem Rückweg fahren wir dann an einer Prozession vorbei.

Beim Suchen nach einem Lokal sind wir erst im dritten Anlauf erfolgreich.

Beim ersten Lokal sollten wir hinter einer Linie stehen und dann nur einen Platz im Inneren bekommen. Wir lehnen dankend ab.

Im zweiten Lokal sitzen wir ca. 30min bevor sich ein Kellner bequemt, die Bestellung aufzunehmen. Er kennt weder das Gericht auf der Karte (pesce spada ai ferri), noch weiß er, daß es eine Weinkarte gibt.

Einen Pinot Grigio hört er zum ersten Mal, in einem italienischen Lokal!

Als nach 45min noch immer nichts auf dem Tisch steht, verlassen wir das sogenannte Lokal.

Dann in , in einer Strandbar.

Ich will eine bestimmte Flasche Vinho Verde, die hinter der Theke steht. Aber die steht nicht auf der Karte. Mein Vorschlag, diese dann umsonst zu bekommen, wird abgelehnt. Nach einer kurzen Konsultation mit dem Chef stand dann der Preis fest. Ich hatte alle Personen in dem Lokal beschäftigt…

Den Toast gab es erst ab 16Uhr, vorher war vermutlich der Strom aus.

Im Lokal saßen nur Portugiesen. Dann wollte ein Radfahrer mit Rad direkt ins Lokal. Was verboten war. Wir, die Portugiesen und ich, haben das vehement verwert. Er parkte dann das Fahrrad brav ausserhalb des Lokals.

Beim Gehen haben wir uns dann von den Portugiesen nett mit einem Daumen nach oben verabschiedet.

Strandtag

Ach ja, der Strandtag war auch recht schön, ich war zwei mal im 16 Grad kalten Wasser, mit den Zehen 😁

Kategorien
Blog

Garmin Smart Watch

Ich war auf der Suche nach einer Smart Watch und habe mich dann letztendlich für eine Garmin Smart Watch entschieden.

Garmin Smart Watch
Venu sq 2

Und ich bin sehr zufrieden damit, auch wenn es ein paar kleinere Feature-Wünsche gibt.

Die folgenden Anforderungen hatte ich:

  • GPS zum Tracken von Outdoor Aktivitäten
  • Nicht zu groß für mein zartes Handgelenk
  • Abdeckung von meinen Lieblingsaktivitäten (Fahrradfahren, Skifahren, Badminton)
  • Aufzeichnung von Schritten und Herzfrequenz

Die Wahl fiel dann auf eine Garmin Venu Sq 2, und ich bin sehr zufrieden damit.

Das Tolle bei den Garmin Uhren ist, dass man viele Dinge sehr frei konfigurieren kann.

  • Welche „Apps“ für die Aktivitäten angezeigt werden
  • Welches Display Design mit ggf. konfigurierbaren Daten angezeigt haben will
  • Welche „Widgets“ mit Daten wie z.B. Herzfrequenz man angezeigt haben will
  • Welche Daten in den „Widgets“ angezeigt werden

Jede App hat auch wieder verschiedene Einstellungen, wie z.B. kann man beim Fahrradfahren einstellen, ob automatisch eine Pause erkannt werden soll, wenn man sich nach GPS nicht mehr bewegt.

Über die Garmin Connect App kann man die Uhr konfigurieren und dann die Details der einzelnen Aktivitäten ansehen.

Ebenso können Aktivitäten automatisch nach Komoot und Relive hochgeladen werden.

Die Features, die ich vermisse, bzw. nicht so gelungen sind, sind:

  • Es gibt keine Anzeige in der App über den Ladezustand der Uhr
  • Das Teilen einer Aktivität in sozialen Medien ist sehr rudimentär
Kategorien
Blog Software

Mail for the WordPress Docker setup

After setting up the docker containers for WordPress and the NGINX Proxy Manager I still had one open issue: Sending mail was not possible. So I was looking for a solution to set up mail for the WordPress Docker setup.

I had the following options in mind:

  1. Setting up a separate docker container with an e-mail server. More or less I just needed a so-called Smarthost, that takes sent-out e-mails from any docker container and forwards them to my e-mail provider, Gmail. I struggled to find a proper, small image of a mail server running on an RPi for a long time. Then open the ports of the WordPress containers and send the e-mail from the WordPress containers to the container with the Smarthost Mail server. Nevertheless, you must install any kind of mailer within the container to handle the mail() call coming from WordPress.
  2. Set up an email server on the host (I used exim4) and let all Docker containers send their e-mails to the host, which will then be forwarded to the real e-mail provider by exim4. Still, you must install any kind of mailer within the container to handle the mail() call coming from WordPress. There were the following sub steps necessary:
  3. Setting up a WordPress Plugin, connecting via SMTP to the e-mail provider.

The variants 1 & 2 generated so many problems during the setup, that I finally decided to go with variant . This was set up in 30 minutes only!

For this SMTP service, I’m using the plugin WP Mail SMTP.

Kategorien
Blog Fotos Reisen

Sardiniens Süden

Wir hatten einen Early bird flight, deswegen haben wir am Tag vorher das Gepäck abgegeben und sind ganz früh am Morgen mit dem Taxi zum Flughafen gefahren und haben uns dann auf den Weg/Flug gemacht, Sardiniens Süden zu bereisen.

Sardinien ist eine der am wenigsten dicht besiedelten Gebiete Europas. Das merkt man auch stark, wenn man unterwegs ist.

Das Sardische Brot ist wesentlich besser als das normale italienische, aber es gibt auch Semmeln, die uns nicht begeistert hatten.

Bei der Anreise

Auf einmal fängt es bei mir im Rucksack zum Brummen an. Es ist der Rasierer ;-).

Im Bahnhof

Nach unserer frühen Ankunft haben wir noch genügend Zeit für einen ersten Stadtbummel. Wir wollen zum Hafen oder Strand, merken aber nach kurzer Zeit, dass der Strand etwas weit entfernt ist. Es geht es immer rauf und runter.

Abends essen wir das erste Mal leckere Fregola Sardi.

Poetto

Wir wollen an den Stadtstrand nach Poetto. Es ist etwas schwierig, Tickets für den Bus zu kaufen. In jedem Tabacchi sind sie ausverkauft (finito, tardi). Erst im vierten Tabacchi können wir Tickets kaufen.

Poetto

Wir verbringen den ganzen Tag am Strand. Es ist das erste Mal, dass wir es so lange ausgehalten haben.

San Sperate

Wir holen das Auto am Flughafen ab. Ein Kunde meint: „Immer noch vorne sehen! Deswegen ist die Windschutzscheibe auch größer als der Rückspiegel.“ 🙂

San Sperate begeistert uns mit seinen vielen Murales und Graffiti.

Wir finden auch einen Hörgarten.

Und dann gibt es noch in der Nähe einen Kuriositätengarten.

Der über 90-jährige Künstler hat uns durch seinen Garten geführt. Die Erklärungen dafür in Italienisch haben wir nur sehr rudimentär verstanden.

Es ist Samstag. In Sardara gibt es einen Stau am Lotto/Geldautomaten/Tabacchi. Alle wollen nur minimal zu Fuß gehen und parken direkt vor dem Laden.

Über die „Parkmafia“ in Cagliari haben wir einen tollen Parkplatz direkt neben unserer Pension gefunden. Man zahlt den Dienstleistern 1-2 € und sie weisen einen ein. Ich fand das einen recht guten Service.

Wandern im Parco dei Setti Fratelli

Ganze neun Leute und ein Hund sind uns auf unserer Wanderung heute begegnet.

Wir haben Korkeichen gesehen. Es dauert ca. 9-12 Jahre, bis man das nächste Mal ernten kann.

In dem kleinen Bergdorf Burcei suchen wir uns ein Café.

„Das Lokal hat dann offen, wenn man Stimmen hört.“

Das Eis und der Cafe Freddo (es war das einzige Mal, dass wir einen bekommen haben) waren hervorragend.

In unserem Lokal am Abend sind wir ganz baff. Links von uns werden die Spaghetti geschnitten, rechts von uns mit dem Löffel gegessen. Das ist bestimmt eine Todsünde.

Auf keinem Tisch waren Salz- oder Pfefferstreuer vorhanden. Nur einmal bekommen wir Tütchen mit Salz. Mit Gewürzen gehen die Sarden sehr sparsam um, was uns etwas verwundert.

Costa Verde

Es geht an die Westküste zum Baden. Auf dem Belvedere Rundgang bei Nebida (800 m) hat man einen tollen Blick auf die Küste.

Das italienische Eis und das Sardische Brot schmecken uns exzellent.

Wir streifen durch das nette Dörfchen/ Kleinstadt Iglesias.

Es gibt keinen Cafe Fredo! Dafür sind Pizza mit Pommes und Würstel hier sehr beliebt. Urgh!

Bergstrassen und Nuraghe

Wir fahren zur Nuraghe Arubia auf ganz tollen Serpentinen.

Die Nuraghe aus dem 13. Jahrhundert vor Christus ist sehr beeindruckend.

Auf einer Super Strada erreichen wir eine Durchschnittsgeschwindigkeit zwischen 30 und 40 km pro Stunde.

Insgesamt fahren wir ca. 100 km richtig Serpentinen. Aus dem zweiten Gang kommen wir fast nicht heraus.

Dem italienischen Taxifahrer (mir) und seiner Beifahrerin hat es auf der sehr kurvenreichen Strecke zwischen Orroli und Lanusei sehr gut gefallen!

Es geht IMMER rauf und runter. Die Landschaft ist super beeindruckend.

Auf dieser Straße werden wir nur von Motorrädern und ein paar Porsche und Maserati überholt 😉

Costa del Sud

Wir fahren die Südküste entlang und halten bei einem schönen Strand bei Nora. Flamingos sind überall in den Lagunen von Cagliari zu sehen. Nun sind wir ultimativ in Sardiniens Süden angekommen.

Am Strand in Chia wollten sie 8 € pro Tag Parkgebühren, das ist uns zu teuer.

Pula ist sehr touristisch geprägt und sehr teuer.

In Nora gibt es auch eine riesengroße, sehr interessante Ausgrabung.

San Pietro

Es geht auf die Insel San Pietro im Westen von Sardinien.

Als wir ankommen, erfahren wir, dass die Fähre erst in zwei Stunden geht, und deswegen fahren wir wieder zurück nach Sant’Antioco und machen dort einen Stadtbummel. Anschließend fahren wir wieder nach Calasetta, kaufen unsere Tickets und machen auch dort einen kleinen Stadtrundgang. Nach 45 Minuten auf der Fähre – die super pünktlich abfährt – kommen wir in Carloforte an. Die Insel ist als Thunfischinsel bekannt und das wollen wir uns natürlich nicht entgehen lassen. Wir bestellen ein Foccacia und ein Bruschetta mit Thunfisch.

Die Insel hat auch schöne gepflegte Häuser zu bieten.

Costa Rei

Badetag an der Costa Rei.

Wir fahren die Küstenstraße entlang, die sehr viele Kurven hat und tolle Aussichten bietet! Villasimius ist sehr teuer.

Der Strand der Costa Rei ist super schön sauber und das Wasser kristallklar. Strand-Kioski sind sehr selten, und wenn sie da sind ist keine Speise- oder Getränke-Karte angeschlagen.

Das heißt, man muss aktiv nachfragen, was es denn zu essen gibt.

Wir haben freundliche italienische Nachbarn am Strand. Sie fangen unseren weg geflogenen Sonnenschirm wieder ein und bringen ihn uns zurück, während wir schlafen.

Im Lokal „incognito“ kommen die Stammgäste Giacomo und Maria, und werden herzlichst von den Kellnern umsorgt. Sie bekommt einen extra Stuhl und Kissen.

Eine andere Gästin bekommt eine Jacke, weil es etwas frisch wird.

Wandern in Monte Arcuso

Es ist Wochenende, und wir gehen wieder wandern, weil es an den Stränden am Wochenende immer sehr übervölkert ist.

Die Anreise in den größten WWF Nationalpark von Italien gestaltet sich etwas schwierig, weil er nur sehr spärlich ausgeschildert ist.

Unterwegs begegnen uns nur eine Herde Ziegen, zwei Schlangen, keinerlei Personen und zwei Esel in einem Gehege.

Insgesamt sind wir ca. drei Stunden unterwegs und verbrauchen das meiste Wasser in unserem Urlaub. Es ist heiß!

Für 2,50 € können wir bis Montagnachmittag parken.

Abends gehen wir rustikal und gut essen. Der Kellner fragt, ob wir Aqua Frizzante oder Aqua Senza Gas haben wollen. Er fragt aber nicht, ob wir überhaupt Wasser haben wollen. Wasser muss sein!

Tropfsteinhöhle, Carbonia

Wir fahren in die Tropfsteinhöhle Grotte Is Zuddas. Sie ist super schön und sehr zu empfehlen. Besonders das Engelshaar hat es uns angetan. Wir erhalten eine Privat-Führung (4 Personen) auf Englisch, nachdem wir danach gefragt haben.

Dann geht es zu Höhlen Gräbern in einer Nekropole. Das war nicht ganz so interessant.

Zuletzt machen wir eine Bergwerksführung in Carbonia, einer nazistisch entstandenen Stadt.

Nachdem es keine Englische oder Deutsche Führung an dem Tag mehr gibt, entscheiden wir uns dafür, eine Führung auf Italienisch zu machen, und die zweite auf Französisch. Wir haben nicht ganz so viel verstanden. Es war aber trotzdem interessant.

Mit italienischer Unterstützung bekommen wir einen Platz im Restaurant.

Wir essen wirklich hervorragend, mit einem Thunfisch Risotto und mit einem Thunfischfilet und einem leckeren Wein dazu. Der Kellner bringt vier Flaschen Wein zur Auswahl. Keine Frage, ob wir ein Glas trinken wollen oder eine Flasche.

Baden in Pula

Wir baden in der Nähe von Nora/Pula.

In dem Strand-Restaurant ist es super teuer. Vorspeisen gibt es erst ab 20 € Minimum. Wir verzichten.

Und gehen zu einem Foodtruck. Der war zwar auch nicht viel besser, aber etwas günstiger.

Torre Salinas

Nachdem es uns an der Costa Rei so gut gefallen hat, machen wir noch mal eine Ausfahrt dorthin. Wir gehen auf den Torre Salinas und besichtigen die Salz-Seen. Danach geht es zum Baden. Es gibt sogar eine nette Strandbar dort.

Grundsätzlich sind Strandbars auf Sardinien sehr selten und wenn welche existieren, dann wird keine Karte ausgehängt, weder für das Essen noch für das Trinken.

Shopping

Wir geben das Auto – einen Ford Puma – am Flughafen zurück und fahren mit dem Zug zurück nach Cagliari.

Das Ticket zu stempeln, sollte man nicht vergessen, denken wir.

Dann geht’s zum Shoppen!

Wir nehmen die Linie 7 und machen eine Stadt Rundfahrt damit. Damit der Bus hält, sollte man winken. Ansonsten fährt der einfach durch.

In manchen Straßen darf das Fahrzeug maximal 2,30 m breit sein. Es wird wirklich eng! Und man sollte keine Probleme mit der Bandscheibe haben.

Zusammenfassung

Wir fanden es sehr schön, im doch recht leeren Süden von Sardinien. Überall waren die Leute freundlich, nur in Pula haben sie es mit den Preisen etwas übertrieben. Als Strand hat uns die Costa Rei total begeistert!

Cagliari ist ein guter Ausgangspunkt, um den Süden Sardiniens zu erkunden.

Und es hat definitiv schönere Strände als z.B. Bari in Apulien.

Hier findet ihr auch eine Google Maps Liste von interessanten Orten.

Das komplette Google Foto Album mit einigen Bildern findet ihr hier.

Cagliari
Kategorien
Blog Software

Setting up a WordPress staging system with docker

I wanted a WordPress staging system to play around with new plugins, new WordPress versions, and PHP versions.

The primary goals of my mini-project were:

  • Have a staging system for WordPress available for testing new WordPress versions and Plugins
  • Enhance the Performance of the actual WordPress Blog

How can we do it?

Here is a network diagram of the current system setup.

OK, the ideas were quite clear. Now we need a migration plan. And this looks like that:

  1. Install Raspian on the RPi5 SSD, with the Raspberry Pi imager
  2. Install docker and Portainer on the RPi5, based on the Heise description
  3. Install the following docker containers via „docker compose“
    1. Nginx Reverse Proxy
    2. Maria DB for WordPress Staging 
    3. WordPress Staging
    4. Maria DB for WordPress Production
    5. WordPress Production
    6. (Setting up Home Assistant also as a docker container is not a good idea as we lose the functionality of Add-Ons)
  4. With the current live system I’m doing a regular backup via Updraft, so let’s import these backups into the two WordPress instances
  5. At the DNS provider define the new subdomains and route them also to the Dynamic DNS provider
  6. Configure the NPM (Nginx Proxy Manager) with these domains and define the forwarding to the different instances
    1. Setup SSL via Let’s encrypt 
    2. Add also the local Home Assistant server/Port as the target
  7. Reconfigure the port forwarding of the router to the NPM
  8. Shutdown the old RPi4

So, let’s dive a little bit deeper into the different steps.

Configure the new RPi5 hardware and software

OK, let’s get the first new hardware, which means the new high-performance RPi5.

It took some time to be available on the market and the announced performance numbers looked promising.

As the power supply is quite strong I attached directly a SSD drive to the USB3 port.

So no need anymore for a USB hub!

Installing the latest Rasbian operating system on the SSD was pretty easy using the Raspian Imager.

I also configured the SSH access for it, of course.

So, how are we going further?

Install docker on the RPi5

As I wanted to run a WordPress life system and a WordPress staging system in my local network, I thought it would be a good idea to go with:

  • Docker to run multiple images/containers
  • Nginx Reverse Proxy to manage/route the traffic to/from these containers to the outside world

Install the docker containers

  • Setup a docker network manually
docker network create dockerwp 
  • Create a directory for wp_prod, wp_staging, nginx
  • Define a file for common parameters used as anonymized volumes in the docker containers
  • Create docker-compose.yml for the Nginx Proxy
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    container_name: nginx-proxy
    restart: unless-stopped
    ports:
      # These ports are in format <host-port>:<container-port>
      - '80:80' # Public HTTP Port
      - '443:443' # Public HTTPS Port
      - '81:81' # Admin Web Port
      # Add any other Stream port you want to expose
      # - '21:21' # FTP

    # Uncomment the next line if you uncomment anything in the section
    # environment:
      # Uncomment this if you want to change the location of
      # the SQLite DB file within the container
      # DB_SQLITE_FILE: "/data/database.sqlite"

      # Uncomment this if IPv6 is not enabled on your host
      # DISABLE_IPV6: 'true'

    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt

networks:
  dockerwp:
    external: true
  • Create docker-compose.yml for the MariaDB and the WordPress container (one for the staging and one for the production system)
services:
  mysqldb0:
    image: mariadb:11.3.2
    container_name: prod_db
    environment:
      MARIADB_ROOT_PASSWORD: "secret"
      MARIADB_DATABASE: "wordpress"
      MARIADB_USER: "wordpress"
      MARIADB_PASSWORD: "secret"
    volumes:
      - 'mysqldb0:/var/lib/mysql'
    restart: always
    networks:
      -  mysqldb0


  wordpress0:
    image: wordpress:6.5.3
    container_name: prod_wp
    environment:
      WORDPRESS_DB_HOST: "mysqldb0"
      WORDPRESS_DB_USER: "wordpress"
      WORDPRESS_DB_PASSWORD: "secret"
      WORDPRESS_DB_NAME: "wordpress"
      WORDPRESS_CONFIG_EXTRA: |
        define('AUTOMATIC_UPDATER_DISABLED', true);

   volumes:
      - 'wordpress0:/var/www/html/wp-content'
      - '../uploads.ini:/usr/local/etc/php/conf.d/uploads.ini'
    restart: always
    ports:
      - "8001:80"
    depends_on:
      - mysqldb0
    networks:
      - mysqldb0
      - dockerwp

volumes:
  mysqldb0:
  wordpress0:

networks:
  mysqldb0:
    internal: true
  dockerwp:
    external: true

Setup the WordPress content

As I backed up the WordPress blog site with updraft, we are restoring the backup to the new WordPress staging and WordPress production system, respectively.

Configure the Sub-Domains

Go to your DNS provider and configure the new Sub-domains with a CNAME entry.

If you have a dynamic IP address, route the Sub-Domain entries to the same Dynamic DNS entry of your DynDNS Provider.

Configure the NPM

Define the target of the routing for all the Sub-Domains, e.g. the Ports of your WordPress containers.

Let the Sub-Domain for the Home Assistant point to the separate HA RPi3.

Add the SSL certificates from Let’s Encrypt.

Additional configuration for the Home Assistant

We must add the following configuration steps to make the Home Assistant run with an external Sub Domain, based on ademalidurmus.

1.) At the NPM, enter the following entry in the advanced config for the Home Assistant Host.

location / {
        proxy_pass              http://10.0.0.5:8123;
        proxy_set_header        Host            $host;
        proxy_redirect          http://         https://;
        proxy_set_header        Authorization   $http_authorization;
        proxy_pass_header       Authorization;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection “upgrade”;
 }

In the Home Assistant configuration.yml file add:

http:
  cors_allowed_origins:
    - https://public.domain.tld # my public domain
  use_x_forwarded_for: true
  trusted_proxies:
    - 10.0.0.3 # nginx proxy manager internal IP adress

At the „Home Assistant URL“ page enter:

Internet: [External Domain]
Local network: [Internal IP]:8123

Reconfigure the Port forwarding at your router

The Ports 80 for HTTP and 443 for HTTPS must now be reconfigured to forward the traffic from these two ports to the NPM.

Here is the network diagram of the new setup.

WordPress staging system with docker

Let’s now check our goals from the beginning. Did we reach them?

  • Have a staging system for WordPress available for testing new versions and Plugins: Available
  • Enhance Performance of the actual WordPress Blog: Super fast!