Skip to content

Da wollte ich gar nicht hin ...

Jetzt bin ich mit Gib XMPP eine Chance ... genau an dem Punkt, an dem ich nicht sein wollte.

Conversations als Android-Client ist grossartig, aber jede Bemühung, mehrere Devices auf die gleichen verschlüsselten und unverschlüsselten Chats zugreifen zu lassen, schlägt fehl.

"Archiving" ist selbstverständlich eingeschaltet.

Unter iOS habe ich ChatSecure und den Testflight von Monal versucht, neben dem, dass die Nachrichten nicht angezeigt werden, funktioniert auch die Synchronisierung nicht gut. Ich bekomme Benachrichtigungen zum Teil Stunden nachdem ich sie auf dem Android-Handy hatte.

Unter Linux habe ich Kopete und Gajim versucht, auch das zeigt mir nicht alle Nachrichten an.

Ohne die Möglichkeit, auf die Chatverläufe von verschiedenen Devices zuzugreifen, kann ich XMPP nicht brauchen.

Für mich haben Matrix (via Riot), RocketChat und Mattermost bis jetzt am Besten von den FLOSS-Lösungen funktioniert.

Bin über Feedback oder Hinweise, was ich anders oder besser machen kann, sehr dankbar.

Gutes Markdown schreiben ...

Für einfache Texte nutze ich Markdown als Auszeichnungssprache. Das, was ich brauche, lässt sich dmit sehr gut umsetzen. Wenn es mehr sein müsste, würde ich vermutlich AsciiDoc oder reStructuredText verwenden.

Eigentlich möchte ich Markdown auch im Blog benutzen, aber über dreitausend alte Artikel möchte ich nicht gerne konvertieren.

Markdown hat sich an vielen Stellen als Standard für einfache Texte etabliert, daher lohnt sich die Beschäftigung damit. Die Beschreibung des Standard ist bei Daring Fireball zuf finden. Es gibt auch eine Seite über GitHub Flavored Markdown. Ein einfaches Markdown-Cheatsheet hilft beim Einstieg.

Heute habe ich mit markdownlint für mich vernünftig klingende Regeln für gute Markdown-Texte gefunden.

GPG-Keyserver ...

Bei mir häufen sich die Fälle von Usern, die das Problem haben, dass GPG-Keys, die auf pgp.mit.edu hochgeladen wurden, nicht mit der Welt synchronisiert werden.

Daher ist es vielleicht ratsam, gleich einen Pool von Keyservern zu benutzen.

Ein Beispiel wäre der Verbund von sks-keyservers.net (an denen pgp.mit.edu "eigentlich" auch teilnehmen sollte).

Dazu in die ~/.gnupg/gpg.conf folgenden Keyserver eintragen:

# Ganzer Pool
keyserver hkp://pool.sks-keyservers.net
# Europäischer Pool
keyserver hkp://eu.pool.sks-keyservers.net


Und anschliessend prüfen, ob es funktioniert:
gpg --search-keys dirk@deimeke.net (als Beispiel).

Mehr zu Keyservern findet sich in der Wikipedia.

Gib XMPP eine Chance ...

Ok, der Titel ist etwas reisserisch.

Seit 2015 benutze ich kein Jabber mehr, gemeint ist natürlich XMPP. Mittlerweile mehren sich aber die Menschen, die gerne via XMPP mit mir in Kontakt treten wollen. Nun gut, dann gebe ich dem ganzen noch eine Chance.

Ihr erreicht mich unter: dirk.deimeke@jabber.systemausfall.org dirk.deimeke@fsfe.org

Ich nutze die folgenden Clients:

  • iOS: ChatSecure
  • Android: Conversations
  • Linux: (Weiss noch nicht, vermutlich Kopete wegen KDE-Integration, ja, ich weiss, Gajim ist der "Platzhirsch").
  • Webbrowser: (Bin gespannt auf Eure Tipps).

Mir gefällt die Idee von Quicksy sehr gut, mal sehen, wohin das führt.

Uberspace in meiner Infrastruktur ...

Da habe ich bei der Beschreibung meiner Infrastruktur doch tatsächlich Uberspace vergessen.

Wenn es Uberspace schon gegeben hätte, bevor ich meinen eigenen root-Server betrieben habe, wäre vermutlich nie auf die Idee gekommen, das selber zu machen.

Etwas unüblich benutze ich Uberspace tatsächlich nur für E-Mails.

Zum Einen laufen dort die Mails des Monitorings auf, es ist nicht sinnvoll Monitoring-Benachrichtigungen an den Server senden zu lassen, der überwacht wird.

Zum Anderen betreibe ich dort eine "very low volume" Mailingliste.

Wie ich arbeite (Infrastruktur) ...

In 2018 habe ich den Umzug in Richtung verteilter Infrastruktur abgeschlossen und alle Domains migriert.

Server

Schon vor 2018 bin ich von einem physikalischen Server bei Hetzner zu virtuellen Servern bei Netcup gewechselt. Obwohl ich jetzt mit drei virtuellen Servern weniger als für den physikalischen Server zahle, war der Preis nicht das Kriterium für den Wechsel.

Die Festplattenperformance war im Vergleich zu Bekannten, die die gleiche Serverversion eingesetzt haben, einfach unterirdisch schlecht. Und selbst der schnellere Server der Bekannten ist noch einmal in der Festplattenperformance Faktor drei langsamer als die virtuellen Server, beide setzen drehende Festplatten und keine SSDs ein.

Es sind bei mir insgesamt drei viruelle Server des Typs RS 2000 G7 (mit SAS-Platten) im Einsatz, die die folgenden Aufgaben übernehmen:

Spielwiese mit Fedora 29: Auf diesem Server läuft unter anderem Wireguard und eine Taskserver-Instanz. Zusätzlich habe ich dort einige Kommandozeilentools installiert, die man im Internet brauchen kann.

Kommunikationsserver mit CentOS 7.6, PHP 7.2 kommt aus dem Remi-Repository: CentOS setze ich vor allem deswegen ein, weil ich im Betrieb ausschliesslich (neben Solaris) mit Red Hat Enterprise Linux zu tun habe. Auf dem genannten Server läuft neben der Mail-Infrastruktur auch noch Friendica und FreshRSS.

Webserver mit CentOS 7.6, mit PHP 7.1 von Remi: Hier laufen alle Webseiten und zusätzlich noch eine Gitea-Instanz. Als Blogsoftware setze ich immer noch auf Serendipity, Wiki mache ich mit DokuWiki und eine immer grösser werdende Nextcloud-Instanz gibt es hier auch noch. Diesen Server werde ich auf absehbare Zeit erweitern müssen.

Für statische Webseiten setze ich auf die Templates von Templated oder nutze Skeleton als Basis.

Zertifikate kommen von Let's encrpyt mit AcmeFetch, ich überlege auf Certbot umzustellen.

Monitoring

Als Monitoring-Lösung kommt bei mir Bloonix zum Einsatz. Dank Jonny habe ich einen Freiaccount in dem von ihm gehosteten Angebot, wofür ich immer noch sehr dankbar bin.

Ergänzug am 3. Januar 2019: Die Benachrichtigungen des Monitorings landen bei Uberspace. Etwas unüblich benutze ich Uberspace tatsächlich nur für E-Mails. Neben den Benachrichtigungen betreibe ich im Uberspace auch eine wenig genutzte aber für mich wichtige Mailingliste.

DNS

DNS lasse ich bei INWX hosten. Das Konfigurationfrontend gefällt mir so gar nicht, aber die Preise sind in Ordnung und sie bieten nahezu alle Domains an, die es gibt.

Backup

Das Backup aller Server mache ich über eine Storage Box BX40 bei Hetzner und das funktioniert wirklich gut.

Serverbackups laufen alle 30 Minuten mit Borgbackup und Datenbankbackups alle vier Stunden mit MyDumper.

Ende des ersten Quartals des letzten Jahres hat meine Internetverbindung einen Schub bekommen, von 26 MBit/s Download und 6 Mbit/s Upload ging es auf gemessene 343 MBit/s Download und 115 MBit/s Upload. Damit brauchen wir auch kein lokales NAS mehr. Die Rechner bei uns werden ebenfalls mindestens einmal am Tag mit Borgbackup gesichert.

Spielwiesen

Wenn ich lokale Tests mache, setze ich die mit VirtualBox (derzeit in Version 6.0.0) um, insbesondere die Tests für das Buch laufen auch darüber.

Neben anderen virtuellen Maschinen habe ich immer eine Minimalinstallation der Servervarianten von Alpine, CentOS, Debian, Fedora, openSUSE und Ubuntu auf der Platte.

Ein lokales Minishift hätte ich fast vergessen.

Dinge im Internet teste ich mit Droplets auf DigitalOcean, die geben auch sehr viel an die Community zurück und bieten freies Guthaben für Open-Source-Projekte.

Über diesen Link bekommt Ihr 10 Dollar Freiguthaben, wenn Ihr selber Geld einzahlt (mindestens 25 Dollar), wird mir eine Provision gut geschrieben.

Fazit

Ich hoste sehr viel Software selber.

Klar, das kostet Zeit, bietet aber auch sehr viele Freiheiten, die ich nicht mehr missen möchte.

Wie ich arbeite (Client) ...

Um das nicht ausufern zu lassen, beschränke ich mich auf Dinge, die sich in 2018 geändert haben und selbst das ist schon lang geworden. Ich werde inhaltlich nicht auf Dienstsoftware eingehen, weil ich darauf keinen (oder nur wenig) Einfluss habe.

Hardware

Durch Dummheit habe ich in 2018 mein Android-Tablet, ein Sony Xperia Tablet Z4, in die ewigen Jagdgründe geschickt. Leider scheint das Thema Tablet bei Android durch zu sein, ich hätte mich für ein MediaPad M5 10 Pro mit Tastatur entschieden, wenn es mal in Europa verfügbar wäre. Man kann das "Pro" bis heute nicht kaufen und da Netflix noch nicht einmal in HD funktioniert, hätte mir das vermutlich auch nicht so recht gefallen.

Ich bin wahrlich kein Fan von Apple-Geräten, habe mir aber von der Firma ein iPad Pro (12.9 Zoll, 2. Generation) für Bereitschaftsfälle, die ich vorher mit meinem privaten Android Tablet gemeistert habe, geben lassen. Da muss ich gestehen, dass das mit Abstand das beste Tablet ist, was ich je benutzt habe. Das Format ist super, die Tastatur ist klasse und ich darf es auch privat nutzen. Ach, ja, einen Pencil habe ich nicht, den habe ich auch noch nicht vermisst.

Das Nokia 7 plus ist mein neues Mobiltelefon und ich bin begeistert. Wenn Android, dann etweder Google direkt oder Android One. Derzeit läuft auf dem Telefon Android 9 mit dem Dezember-Patch.

Eine neue "Smartwatch" habe ich und zwar die Amazfit Bip. Das "Smartwatch" steht in Anführungszeichen, weil es eigentlich ein Fitnesstracker mit Benachrichtigungsfunktion ist. Mehr brauche ich nicht.

Interessanterweise ist der Preis des Telefons und der "Smartwatch" zusammen günstiger als ein Mobiltelefon von Apple.

Damit sind meine "daily driver":

  • Nokia 7 plus
  • iPad Pro 12.9 Zoll, 2. Generation
  • Amazfit Bip
  • Dell Latitude E7450 mit Fedora 29 (habe ich nicht immer dabei)
  • iPhone 8 plus (wenn ich Bereitschaft habe)

Wer sich für die anderen technischen Geräte bei uns interessiert, wird auf der Technikseite im Blog fündig.

Anmerkung: Ich darf auch das Diensttelefon privat nutzen, trenne aber aber aufgrund schlechter Erfahrungen in anderen Firmen private und berufliche Erreichbarkeit, alle Kollegen haben natürlich auch meine Privatnummer (und die ist im Notfall auch nicht so schwer herauszufinden).

Software

Hier hat sich ein bisschen etwas getan. Ihr findet unten nur die Veränderungen von diesem Jahr, sonst wird es zu viel.

Web

Das Webmailprogramm ist nun Rainloop, vor allem wegen der 2-Faktor-Authentifizierung. Vorher habe ich Roundcube benutzt.

Am Fediverse nehme ich nun mit einer selbst gehosteten Friendica-Instanz teil, ich bin gewechselt von GNUsocial, weil letzteres nicht mehr weiterentwickelt wird.

Es gibt mittlerweile eine beeindruckende Menge von Instanzen mit unterschiedlicher Software und das Schöne ist, sie können sich untereinander austauschen. Wer mir dort folgen möchte: dirk@friend.d5e.org (das ist keine E-Mail-Adresse).

Statt Tiny Tiny RSS nutze ich mit wachsender Begeisterung FreshRSS, die Software ist super und der Autor sehr nett und ansprechbar. (Wer einen Account möchte, kann sich gerne bei mir melden).

Android

Hier nutze ich verstärkt F-Droid, ich muss mich einfach daran erinnern, erst dort zu schauen, bevor ich den Google Playstore bemühe.

DiCa nutze ich seit neueste als Client für Friendica, gibt es leider noch nicht bei F-Droid.

Dann noch EasyRSS als Client für FreshRSS. Wenn jemand einen mit der Google-API kompatiblen Feedreader für iOS kennt, bin ich für Hinweise dankbar.

Ich bin zurück zu K-9 Mail gewechselt und komme von Maildroid, da das lesen GPG-verschlüsselter Mails nicht mehr funktioniert hat. Allerdings lese ich immer weniger Mails auf dem Mobiltelefon, das ständig tun zu müssen, wird überschätzt.

Gadgetbridge benutze ich für die Kommunikation mit der "Smartwatch".

TI5x (Playstore) ist ein bisschen "back to the roots", der TI-59 war das erste programmierbare Gerät, das ich benutzt habe. Damit nahm alles seinen Anfang.

iOS

Auf dem Tablet kommen neben den Open-Sourcen-Tools noch folgende Bezahlsoftware zum Einsatz.

Blink ist ein sehr guter SSH-Client. Ich habe ihn ausgewählt, weil er auch Mosh kann.

Working Copy ist ein Git-Client, der für das mobile Arbeiten sehr hilfreich ist.

Textastic ist ein hervorragender Editor, der direkt mit Working Copy kommunizieren kann.

Plattformübergreifend

Passwort-Manager Bitwarden als Webclient mit 2-Faktor-Authentifizierung und nativ unter Linux, Android und iOS.

Notizen mit Joplin, Backend ist meine Nextcloud-Instanz. Kein Webclient, dafür aber nativ unter Linux, Android und iOS.

Matrix ist für mich die Entdeckung des Jahres und avanciert zu meinem primären Messenger und IRC-Client. Ich nutze Riot als Webclient und die nativen Android- und iOS-Versionen.

Rocket Chat benutze ich neu als Teamchat: schlicht, einfach und schnell.

Visual Studio Code ist neben Vim mein Haupteditor, er macht deutlich mehr Spass als Sublime Text (da habe ich sogar eine Lizenz) oder Atom.

Dieser Artikel hier wurde mit Joplin vorbereitet und mit Visual Studio Code geschrieben.

Suchmaschine

Tja, ich habe mich sogar durch Qwant von DuckDuckGo getrennt. Die Suchergebnisse sind ähnlich gut, aber die Suchmaschine wird in Europa, genauer in Frankreich betrieben.

Serverstruktur und Backup und so ...

My own IT

In den letzten Monaten war ich für mich selber auf der Suche nach einem optimaleren Setup als das, was ich vorher hatte. Das habe ich jetzt gefunden. Von den Firmen, die ich im Folgenden nennen werde, bekomme ich nichts, ich bin aber mit den Dienstleistungen, die sie anbieten und dem Preis-/Leistungsverhältnis einverstanden.

Ausgangspunkt der Überlegungen war, dass ich zum einen mit der Platten-Performance meines root-Servers bei Hetzner überhaupt nicht einverstanden war - ein zur gleichen Zeit gebuchter gleicher Server von guten Bekannten hatte ein Vielfaches der Leistung meines Servers - und zum anderen für mich ein "Klumpenrisiko" existierte, da ich auch alle Domains und auch die Nameserver bei Hetzner hatte. Das Vielfache muss ich vielleicht noch erklären, ein Check des Software-RAIDs war bei den Bekannten bei vergleichbarem Füllgrad der Platten in drei Stunden durch, lief bei mir im Schnitt 28 Stunden und machte den Server wärend dieser Zeit nahezu unbenutzbar.

Jetzt bin ich gewechselt.

Ich benutze die folgenden Provider:

  • INWX für Domains und DNS
  • Netcup für die Server, ja, es sind mehrere
  • Bloonix für das Monitoring (danke Jonny!)
  • Uberspace hostet die Mailadresse, bei der Monitoring-Meldungen ankommen
  • Hetzner bietet die Storage Boxes, die das Ziel der verschlüsselten Backups sind
  • DigitalOcean für kurzfristige Testmaschinen, die in wenigen Sekunden betriebsbereit sind
In Summe bin ich jetzt etwa 10% teurer als vorher, aber dafür auch viel flexibler.

Hotel-WLAN ...

linux Am vergangenen Wochenende durfte ich einmal mehr in einem Hotel zu Gast sein, das ein kaputt konfiguriertes WLAN hatte. Manchmal frage ich, was die Dienstleister befürchten, wenn sie den Zugang so kastrieren.

Für mich ist elementar, dass ich via SSH auf meine Server zugreifen kann, aber Port 22 ausgehend war geblockt. Das habe ich relativ schnell in den Griff bekommen, in dem ich via "Remote Console" auf einem meiner Server sslh installiert habe. sslh nimmt Verbindungen auf Port 443 (https) an und entscheidet mit dem Handshake an welchen Dienst die Verbindung "übergeben wird". Das klappt problemlos und ziemlich gut, wenn der WLAN-Administrator nicht auf Protokollebene blockt.

Zugriff geht dann via:

ssh -p 443 user@sslh-server.example.net


Die Weiterverbindung auf andere Server lässt sich dann mittels folgendem Befehl realisieren (das geht auch transparent mit der unten aufgeführten Lösung):

ssh -o ProxyJump=user@sslh-server.example.net user@ziel.example.com


Für reine SSH-Verbindungen ist das prima, aber es gibt ja zum einen noch andere Dienste (unter anderem Usenet, Protokoll nntp, Port 119), die ich auch noch nutzen möchte.

Da kommt dann das Tool sshuttle zum Einsatz. sshuttle benutzt SSH, um darüber alle tcp-Verbindungen plus DNS mittels Paketfilterregeln weiter zu leiten. Um die lokalen Regeln anzupassen wird sudo-Zugriff auf den root-Account benötigt.

sshuttle --dns --remote=user@sslh-server.example.net:443 0/0


Für mich funktioniert das und es macht "falsch" konfigurierte Netzwerke benutzbar.

Neues Mobiltelefon ...

Neben dem zerstörten Tablet möchte ich in diesem Jahr auch mein Mobiltelefon ersetzen und da spielt mir die "Android One"-Initiative in die Hände. Ich möchte privat bei Android bleiben - iOS gibt es in der Firma - und ein Gerät haben, das regelmässig mit Updates unterstützt wird.

Leider gibt es diese Initiative "noch" nicht für Tablets.

ist übrigens Gerüchten zum Trotz eine finnische Firma und keine chinesische, sie haben die Marke Nokia gekauft und machen - wie ich finde - momentan alles richtig.

Ich schwanke zwischen dem
Nokia 8 Sirocco und dem Nokia 7 plus. Mir fehlt selbst nach längeren Überlegungen ein Grund, für das Nokia 8 Sirocco fast doppelt so viel Geld in die Hand zu nehmen wie für das Nokia 7 plus.

Wenn Euch ein Vergleich der technischen Daten interessiert, ist Nokia 7 Plus vs Nokia 8 ein guter Startpunkt.

Neues Tablet gesucht ...

Leider habe ich Trottel letzte Woche Freitag das wichtigste elektronische Gerät aus meinem kleinen Zoo geschrottet und eine Reparatur läge jenseits des Restwerts, losgelöst davon, dass es vermutlich nicht mehr so lange Updates gibt.

Es handelt sich dabei um das Sony Xperia Z4 Tablet, möge es in Frieden ruhen. Ich hatte eine passende Bluetooth Tastatur dafür und es hat mich in den letzten Jahren jeden Tag begleitet. Zusammen mit Termux hatte ich so fast alles, was ich zum mobilen Arbeiten benötige.

Leider baut Sony keine Tablets mehr und wenn ich mich auf dem aktuellen Markt umschaue, wird die Luft für meinen Anwendungsfall (Tablet mit Tastatur als Cover) sehr schnell sehr dünn. Über den Job könnte ich ein iPad Pro mit Tastatur bekommen, aber ein Bekannter sagte nicht zu unrecht, dass ich die Freiheiten von Android vermutlich sehr schnell vermissen würde.

Ein Samsung Tablet möchte ich nicht, weil ich schon sehr viel schlechtes über das User Interface gehört habe.

Auf dem vergangenen Mobile World Congress wurde das Huawei Mediapad M5-10 Pro vorgestellt und das scheint genau in meine Nische zu passen. In diesem Artikel sieht man ein Photo, was das Tablet mit Tastatur und Stylus zeigt.

Habt Ihr Vorschläge?

IPv6 ready?

Wenn ich keinen Bock geschossen habe, sollte auf meinem Server jetzt alles (nicht nur Mail) via IPv6 funktionieren.

Wer Fehler findet, darf sie behalten möge sie mir bitte melden.

Danke!

Wallabag ...

Nachdem ich die beteiligten Komponenten zur Entstehung des Linkdumps einmal aufgeschrieben hatte, kam mir das alles mehr als merkwürdig und viel zu kompliziert vor.

"Drüben", bei Google+, wurde mir nochmals Wallabag als Lösung zum Selberhosten ans Herz gelegt. Als ich das zuletzt "vor 100 Jahren" getestet habe, hat es mir nicht gefallen.

Mittlerweile hat sich da aber eine Menge getan und ich bin schwer begeistert, wie toll Wallabag mittlerweile geworden ist. Very well done!.

Wallabag ist eine Webapplikation, mit der sich einfach Webseiten lesen lassen. Dabei sorgt sie dafür, dass das ganze Brimborium um den Haupttext abgeschnitten wird und so ein sehr gut lesbarer Text entsteht, der ablenkungsfrei gelesen werden kann. Die so entkernten Webseiten lassen sich auch als E-Book (epub in Version 3, Mobipocket oder PDF) herunterladen und mit einem entsprechenden Readern lesen.

Von dem Export mache ich aber keinen Gebrauch, weil es auch eine sehr gute Android-App gibt (an eine App für iOS und eine App für Windows Phone wurde ebenfalls gedacht).

Prima finde ich auch, dass sich Wallabag mir der Share-Funktion von Firefox nutzen lässt oder mit einem Bookmarklet oder mit dieser Extension.

Solltet Ihr die Dokumentation benötigen, rate ich stark, die englischsprachige zu nehmen, die Doku in deutscher Sprache ist veraltet und zum Teil falsch.

Der Workflow bei mir hat sich jetzt so verändert, dass ich gute Artikel in der Wallabag App favorisiere und auf gelesen setze. Das folgende kleine Skript erstellt mir dann das Gerüst für den Linkdump.

Ach ja, wer bei mir einen Account möchte, kann sich gerne melden.

#!/bin/bash

# wget_options="--no-check-certificate --quiet -O -"
wget_options="--quiet -O -"

wallabag_url="<DEINE URL>"
wallabag_token="<DEIN TOKEN>"
wallabag_userid="<DEINE USERID>"

echo
date +"Linkdump %V/%G ..."
echo

wget ${wget_options} "${wallabag_url}?feed&type=fav&user_id=${wallabag_userid}&token=${wallabag_token}" \
    | egrep "<title>|<link>" \
    | egrep -v "${wallabag_url}|wallabag — fav feed" \
    | while read line; do
    if [[ -z "${title}" ]]; then
        title=$(echo ${line} | sed 's/<.\{0,1\}title>//g')
    else
        link=$(echo ${line} | sed 's/<.\{0,1\}link>//g')
        echo "<a href=\"${link}\">${title}</a>"
        echo
        unset title
        unset link
    fi
done