Skip to content

Blogeinträge in Mastodon ankündigen

Das Teilen von Links nach Mastodon klappt mit der Firefox-Extension Mastodon Share schon sehr gut. Bei Feeds wäre es nur klasse, wenn das automatisch passiert.

Auf Anregung von Lioh habe ich mir feed2toot angeschaut, endlich einmal ein Tool mit ausführlicher Dokumentation.

Bei Python-Skripten, die nicht mit der eingesetzten Distribution mitgeliefert werden oder die man möglichst aktuell benutzen möchte, lohnt sich die Installation mit pip.

$ python3 -m venv ~/venv/feed2toot
$ source ~/venv/feed2toot/bin/activate

$ pip install --upgrade pip
$ pip install feed2toot

Im nächsten Schritt muss man feed2toot als App in Mastodon registrieren und bekommt nach Registrierung die Client- und User-Credentials zurück.

$ mkdir -p ~/workspace/feed2toot

$ register_feed2toot_app

$ mv feed2toot_clientcred.txt feed2toot_usercred.txt ~/workspace/feed2toot

Meine feed2toot.init-Datei sieht folgendermassen aus:

[mastodon]
instance_url=https://social.anoxinon.de
user_credentials=/home/dirk/workspace/feed2toot/feed2toot_usercred.txt
client_credentials=/home/dirk/workspace/feed2toot/feed2toot_clientcred.txt

[cache]
cachefile=/home/dirk/workspace/feed2toot/feed2toot.db
cache_limit=10000

[lock]
lock_file=/home/dirk/workspace/feed2toot/feed2toot.lock
lock_timeout=3600

[rss]
uri=https://www.deimeke.net/dirk/blog/index.php?/feeds/index.rss2
toot={title} - {link}\n{summary:400}
no_uri_pattern_no_global_pattern=true

[hashtaglist]

[feedparser]
accept_bozo_exceptions=true

[media]

Beim Aufbau des toot-Parameters haben mir die folgenden beiden Kommandos geholfen:

$ feed2toot --rss-sections -c ~/workspace/feed2toot/feed2toot.ini

$ feed2toot --dry-run -c ~/workspace/feed2toot/feed2toot.ini

Wenn alles in Ordnung ist, kann der Cache einmalig gefüllt werden, damit nicht gleich alle Feedartikel veräffentlicht werden.

$ feed2toot --populate-cache -c /home/dirk/workspace/feed2toot/feed2toot.ini

Wenn alles wie gewünscht funktioniert, baut man sich ein Miniskript, macht es ausführbar und führt es via Cron regelmässig aus.

#!/bin/bash
set -o errexit

source /home/dirk/venv/feed2toot/bin/activate

/home/dirk/venv/feed2toot/bin/feed2toot -c /home/dirk/workspace/feed2toot/feed2toot.ini

Messenger cleanup

Gestern habe ich mich von einigen Messengern auf dem Mobiltelefon und dem Tablet getrennt. Zum Teil, weil ich sie kaum genutzt habe und zum Teil, weil ich sie mobil nicht (mehr) brauche.

  • Briar - kein Ersatz, Briar saugt sehr am Akku.
  • Conversations - auf dem Desktop werde ich weiterhin Dino benutzen, wenn da im nächsten halben Jahr nichts mehr passiert, werde ich mich wieder einmal von XMPP trennen.
  • Jitsi Meet - das ist ein typischer Fall von "nutze ich nur auf dem Desktop", im Notfall könnte ich auch einen mobilen Browser verwenden.
  • Keybase - wird von mir gar nicht für Chats genutzt. Auf dem Desktop läuft noch ein Client.
  • Wire - mangels Kommunikationspartnern nur noch auf dem Desktop, auch hier gilt die sechs-Monats-Regel.

Wenn Ihr mich dringend erreichen wollt, nutzt bitte die zahlreichen anderen Möglichkeiten.

Webseiten täglich besuchen

Auf meinem Rechner gibt es eine Reihe an Aufgaben, die ich einmal täglich ausführe. Unter anderem gibt es Webseiten, die ich mir nur einmal am Tag anschaue.

Der folgende Skript-Schnippsel übernimmt diese Aufgabe.

#!/bin/bash

browser=/usr/bin/firefox

${browser} &> /dev/null &

sleep=4
while read url; do
    (sleep ${sleep} ; ${browser} --new-tab "${url}" &> /dev/null) &
    sleep=$(( ${sleep} + 2 ))
done << EOF
https://url1
https://url2
https://url3
EOF

Mastodon ausprobieren

Nachdem mit dem letzten Patch von Friendica (2019.12) eine für mich wichtige Funktion fehlerhafter Weise weggefallen ist und erst mit dem nächsten Patch 2020.03 wieder zurückkommen soll, dachte ich, dass ich die Zeit nutzen könnte, mich mit Mastodon auseinander zu setzen.

Ob ich dauerhaft bei Mastodon bleibe, weiss ich noch nicht. Allerdings gefällt es mir momentan wirklich gut.

Den Account habe ich mir bei den netten Kollegen des Anoxinon e.V. geklickt. Danke, dass Ihr den Dienst frei zur Verfügung stellt. Wenn Ihr mir folgen wollt, könnt Ihr das gerne tun.

Ganz vergessen, die Funktion von Friendica, die mir so wichtig war, war dass ich mir die Postings eines einzelnen Tages anschauen konnte, damit konnte ich sicher sein, nichts zu verpassen. Mastodon bietet das - soweit ich sehen kann - auch nicht, dafür kann ich mir aber die Postings eines Users mit der RSS-Bridge als Feed generieren lassen.

Meine Firefox-Addons Ende 2019

Hier ist ein Überblick über die Firefox Addons, die ich einsetze. Fragen gerne in die Kommentare.

Die Links unten findet Ihr auch in meiner Shaarli-Instanz.

Matomo entfernt ...

Nach vielen, sehr vielen - ich vermute mehr als zehn - Jahren der Benutzung von Piwik bzw. Matomo habe ich die Installation gelöscht.

Tatsächlich war es so, dass ich schon lange nicht mehr in die Statistiken geschaut habe.

Bei mir hat jede Domain und Subdomain vom Webserver eigene Logfiles, das macht die Fehlersuche deutlich leichter. Ich muss mal schauen, ob ich so etwas wie GoAccess benutze, um die Logs aufzubereiten. Da bin ich mir noch unsicher.

Was benutzt Ihr?

Mailserver-Tutorials ...

Ein Bekannter von mir fragte an Silvester nach Mailserver-Tutorials, ich möchte Euch die Ausbeute nicht vorenthalten.

Das ist das beste Tutorial, das ich persönlich kenne, mein Mailsetup ist nach dem Muster einer deutlich älteren Version des Tutorials aufgebaut worden. Ich setze zwar CentOS ein, aber die Ideen von Christoph sind sehr gut.

ISPmail tutorial

Dann sind mir bei Friendica noch die folgenden Tutorials empfohlen worden. Zur Qualität kann ich leider nichts sagen.

Vielleicht hilft es ja dem Einen oder Anderen.

Weitere Empfehlungen von Lesern des Blogs

Nachtrag zu Firefox 57 ...

Bei mir haben sich Änderungen bei den Extensions ergeben.

Von den in diesem Artikel erwähnten Plugins habe ich Textarea Cache rausgeworfen, weil das deutlich zu viel CPU verbraucht hat und die dort erwähnte Pinboard-Extension hat nachträglich nicht benötigte Rechte angefragt.

Pinboard bediene ich jetzt durch die Pinboard Web Extension, die sich nahezu identisch wie die originale Extension verhält.

Für Textarea Cache habe ich (noch) keinen Ersatz.

Firefox 57 ...

Der neue Firefox in Version 57 - Codename "Quantum" - ist wahnsinnig schnell geworden. Dass es vorher langsam war, nerkt man erst, wenn man die ersten Seiten mit der neuen Version aufgerufen hat.

Das neue Extension-System sorgt dafür, dass viele Extensions im neuen Firefox nicht mehr laufen. Angekündigt war es lange (ich meine seit Version 54), aber anscheinend haben die meisten Extension-Autoren das nicht ernst genommen.

Bei mir laufen fünf Extensions, die ich nicht missen möchte. Alle unten verlinkten Extensions laufen unter dem aktuellen Firefox.

  • Pinboard Pin - ersetzt die originale Firefox-Extension von pinboard.in, sollte die Extension auf der Seite des Dienste aktualisiert werden, wechsele ich wieder (habe mich einfach zu sehr an die Bedienung gewöhnt).
  • Textarea Cache ersetzt Lazarus, ein Tool, was die Eingaben in Textboxen auf Webseiten rettet, wenn man irrtümlich die Seite geschlossen hat.
  • uBlock Origin sorgt für die "Digitale Selbstverteidigung".
  • Update Scanner prüft in regelmässigen Abständen Webseiten auf Veränderungen. Sehr nützlich, wenn die Webseite keinen RSS-Feed anbietet.
  • Wallabagger speichert seiten in meiner Wallabag-Instanz zum später Lesen und dient als Basis für meinen Linkdump.

Webspace-Inventar 2017 ...

Dieser Artikel ist eine Antwort auf den Artikel von Thomas zum Thema.

Auf meinem Server laufen die folgenden Webapplikationen, Reihenfolge ist alphabetisch und sagt nichts über die Wertigkeit aus.

  • DokuWiki ist die Wikisoftware, die ich benutze, wenn ich einmal ein Wiki brauche. Kommt ohne Datenbank zurecht.
  • Das Freie Software Fotobuch ist eine Zusammenstellung von Personen und deren Lieblingssoftware.
  • Gitea stellt mir einen Gitserver mit grafischer Oberfläche zur Verfügung.
  • GNUsocial bietet eine Instanz des freien sozialen Netzes.
  • Kanboard ist eine sehr einfache, aber dafür leistungsfähige Umsetzung eines Kanboards.
  • Netdata - sehen was läuft.
  • Nextcloud nutze ich sowohl als Filesynchronisationslösung mit automatischem Upload von Handy-Photos wie auch zur Synchroniation des Kalenders und der Kontakte mit dem Handy.
  • Piwik aks Webabanalysewerkzeug.
  • phpMyAdmin, wenn ich "mal schnell" etwas mit der Datenbank machen muss.
  • Roundcube ist mein Webmailer.
  • RSS-Bridge wandelt beispielsweise Tweets von Twitter in einen RSS-Feed.
  • Serendipity ist die Blogsoftware, die ich benutze.
  • Tiny Tiny RSS ist mein Feedreader (News+ mit entsprechendem Plugin auf dem Android-Tablet).
  • Wallabag - hier landen alle längeren Artikel, die ich noch lesen will (auch über ein Plugin in Tiny Tiny RSS).
  • YOURLS ist ein URL-Verkürzer, den ich nur noch aus historischen Gründen benutze.


Dazu kommen noch kleinere Dienste, die kein Webfrontend haben.

An dieser Stelle möchte ich nicht vergessen, Let's Encrypt und ACMEfetch (Anleitung hier im Blog) zu erwähnen, die dafür sorgen, dass alles, was Web ist, über https bereitgestellt werden kann.

Noch eine Chance für Thunderbird ...

Ungefähr ein Mal pro Jahr gebe ich Thunderbird eine Chance mich davon zu überzeugen, dass es ein guter Mailclient ist.

Mein Leidensdruck liegt darin begründet, dass ich immer mehr html-Nachrichten bekomme, die Claws-Mail nicht darstellen kann (oder will) und ich dafür in einen Browser wechseln muss.

Das nervt.

Hier im Blog lassen sich die vergangenen Versuche finden.

Was ich bis jetzt gemacht habe.

Thunderbird installiert, dazu die Plugins SoGo-Connector, Enigmail und uBlock Origin.

Damit habe ich gpg-Verschlüsselung und zusätzlich Kalendar und Kontakte aus meiner Nextcloud-Instanz eingebunden.

Was schon ein bisschen nervt, dass ich bei jedem IMAP-Ordner via Rechtsklick, dann Properties angeben muss, dass der Ordner bei der Überprüfung von neuen Nachrichten berücksichtigt werden soll.

Habt Ihr noch Tipps, welche Erweiterungen ich mir anschauen sollte?

Skeleton ...

Über den Artikel bei Thomas bin ich auf das sehr einfache responsive Framework Skeleton aufmerksam geworden.

So etwas habe ich schon lange gesucht! Danke.

Damit wurde die Webseite von My own IT und meine Homepage umgestellt. Dabei habe ich mit My own IT auch mal einen anderen Ansatz für die Informationsvermittlung gewählt. (Ich weiss, das widerspricht allen Prinzipien).

Let's Encrypt ...

Wie versprochen, kommt jetzt auch mal ein Artikel, wie man Let's Encrypt für die eigenen Domains nutzen kann. Aus "in ein paar Tagen" wurden leider drei Monate.

Der Grund für die Verzögerung ist neben der fehlenden Zeit, einen vernünftigen Artikel zu verfassen, die schiere Menge an Implementationen des zugrundeliegenden ACME-Protokolls. Den Original-Client möchte ich nicht benutzen, da er mir zu viele Änderungen am System (als root) vornimmt. acme-tiny schien eine Zeit lang das Mittel der Wahl zu sein.

Das Tool, was ich jetzt aber benutze, ist AcmeFetch von Tobias Oetiker, weil es wirklich einfach und damit für jeden nutzbar ist und weil ich den Macher kenne ;-) Es muss nicht als root-User laufen, kann aber.

Die Vorarbeiten sind ein kleines wenig aufwändiger, das eigentliche Erstellen lassen der Zertifikate und auch der Refresh alle 90 Tage ist aber sehr, sehr einfach.

Vorarbeiten:

Einen Userkey erzeugen, mit dem die künftigen Zertifikate bestellt werden.


# Einen Usernamen festlegen, der wird später gebraucht
$ export USER="Euer Lieblingsusername"

# Key erzeugen
$ openssl genrsa 4096 > ${USER}.key
Generating RSA private key, 4096 bit long modulus
...................................................................................++
..................................++
e is 65537 (0x10001)
 


AcmeFetch basiert auf Perl, daher sollte Perl installiert sein.


# CentOS
$ yum install perl-core openssl-devel gcc unzip

# Debian/Ubuntu
$ apt-get install perl libssl-dev gcc unzip make
 


AcmeFetch besorgen:

Danach das Repository klonen oder ein Release herunterladen, oops, das aktuelle Release heisst "Dirk".


$ git clone https://github.com/oetiker/AcmeFetch.git AcmeFetch.git
 


Jetzt geht es los:

Wenn AcmeFetch gebaut wird, werden alle benötigten Perl-Module im Zielverzeichnis/lib installiert. Das bestehende System wird nicht verändert. Tobi empfiehlt $HOME/opt/acmefetch, mir ist das "reale" /opt lieber.


$ ./configure --prefix=/opt/acmefetch

$ make

# sudo nur nötig, wenn das Ziel-Verzeichnis als User nicht schreibbar ist
$ sudo make install
 


Zertifikat konfigurieren:

Im Verzeichnis /opt/acmefetch/etc liegt eine Musterkonfigurationsdatei acmefetch.cfg.dist, die als Muster benutzt werden kann. Ich habe die etwas abgewandelt, so dass es für mich passt.

Für meine Version muss das Verzeichnis /etc/letsencrypt schreibbar sein (da liegen alle "Let's Encrypt"-Zertifikate auf meinem Server). ddeimeke.key müsst Ihr mit Eurem Schlüssel ersetzen.



{

    "GENERAL": {

        "ACMEstaging": "acme-staging.api.letsencrypt.org",

        "ACMEservice": "acme-v01.api.letsencrypt.org",

        "accountKeyPath": "/etc/letsencrypt/ddeimeke.key"

    },

    "CERTS": [

        {

            "certOutput": "/etc/letsencrypt/deimeke.net.crt",

            "certFormat": "PEM",

            "keyOutput": "/etc/letsencrypt/deimeke.net.key",

            "keyFormat": "PEM",

            "chainOutput": "/etc/letsencrypt/chain.crt",

            "chainFormat": "PEM",

            "commonName": "deimeke.net",

            "SITES": {

                "deimeke.net": {

                    "challengeHandler": "LocalFile",

                    "challengeConfig": {

                        "www_root": "/srv/www/deimeke.net/",

                    }

                },

                "www.deimeke.net": {

                    "challengeHandler": "LocalFile",

                    "challengeConfig": {

                        "www_root": "/srv/www/deimeke.net/",

                    }

                }

            }

        }

    ]

}

 


Der Betriebssystem-User, der das Zertifikat erstellen lassen möchte, benötigt Schreibrechte im DocumentRoot-Verzeichnis der Domain (genauer im Unterverzeichnis .well-known/acme-challenge)

Achtung: Es ist sinnvoll, vor dem eigentlichen Erstellen der Zertifikate eventuell vorhandene .htaccess-Dateien umzubennen (beispielsweise die von ownCloud).

Zertifikat erstellen:


$ /opt/acmefetch/bin/acmefetch --cfg=/opt/acmefetch/etc/deimeke.net.cfg --verbose
* ## deimeke.net ##
* Cert /etc/letsencrypt/deimeke.net.crt is missing. Generating.

* talk to acme-v01.api.letsencrypt.org
* authorize deimeke.net via /srv/www/deimeke.net/
* authorize www.deimeke.net via /srv/www/deimeke.net/
/tmp/9QmdSJnbNt.cfgGenerating a 2048 bit RSA private key
.....................................+++
.....................................................................................................+++
writing new private key to '/etc/letsencrypt/deimeke.net.key.13854'
 


Wenn Ihr es direkt noch einmal ausführt, wird kein neues Zertifikat erstellt, nur, wenn --force gesetzt ist oder 30 Tage vor Ablauf des vorhandenen Zertifkats oder, wenn Ihr in der Konfiguration etwas verändert habt.

Webserver konfigurieren: (bei mir Apache)

Dafür habe ich mir dieses kleine Shellskript gebastelt.


#!/bin/bash
set -o errexit

if [[ -z "$2" ]]; then
    echo
    echo "ERROR: usage $0 domain ipaddress"
    echo
    exit 1
fi

DOMAIN=$1
IPADDRESS=$2

echo "<VirtualHost ${IPADDRESS}:443>
    ServerName ${DOMAIN}
    DocumentRoot /srv/www/${DOMAIN}

    ErrorLog /var/log/httpd/${DOMAIN}/error.log
    CustomLog /var/log/httpd/${DOMAIN}/access.log combined

    Header always set Strict-Transport-Security "
max-age=15768000"
    SSLEngine On
    SSLCipherSuite 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:CAMELLIA:!kRSA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK'
    SSLProtocol All -SSLv2 -SSLv3
    SSLHonorCipherOrder On
    SSLCompression off
    SSLCertificateFile /etc/letsencrypt/${DOMAIN}.crt
    SSLCertificateKeyFile /etc/letsencrypt/${DOMAIN}.key
    SSLCertificateChainFile /etc/letsencrypt/intermediate.crt

    <Directory \"/srv/www/${DOMAIN}\">
        allow from all
        Order allow,deny
        AllowOverride All
        Options -Indexes
        Require all granted
    </Directory>
</VirtualHost>"

 


Weitere Domains:

Weitere Konfigurationen lassen sich mit einem einfachen sed-Kommando erstellen.


$ sed 's/deimeke.net/yawnrz.com/g' /opt/acmefetch/etc/deimeke.net.cfg > /opt/acmefetch/etc/yawnrz.com.cfg

$ /opt/acmefetch/bin/acmefetch --cfg=/opt/acmefetch/etc/yawnrz.com.cfg --verbose
 

Die Geschichte wiederholt sich ...

Ich habe es versucht, wirklich. Ich habe ein halbes Jahr durchgehalten, aber es geht nicht. Thunderbird ist nicht mein Mailclient. Je länger ich suche, desto mehr merke ich, dass für mich nichts an Claws-Mail heran kommt, obwohl ich mit einigen Punkten unzufrieden bin.

Die Gründe sind die gleichen, wie sie es schon einmal waren, Thunderbird ist für die Menge an Mails und das, was ich mit Mails mache viel zu schwerfällig. Ich habe gemerkt, dass ich den Kalender in Thunderbird nie genutzt habe, damit entfällt der einzige Zusatznutzen, den Thunderbird gegen Claws-Mail hat.

Und, egal wie ich es drehe, Geschwindigkeit spielt gerade bei Mails eine grosse Rolle.