Skip to content

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?

Mitmachen bei Open-Source-Projekten ...

Nur auf der OpenRheinRuhr habe ich den Vortrag "Mitmachen bei und lernen von Open-Source-Projekten" gehalten. Mir ist es wichtig, dass verstanden wird, dass Open-Source-Projekte nicht nur aus Code bestehen, sondern Mithilfe jeder Art gebrauchen können.

Unter diesem Link kann man das PDF herunterladen, bei eingeschaltetem JavaScript sieht man auch hier den eingebetteten Vortrag:

Praktische Administration ...

So langsam muss ich einmal beginnen, das vergangene Jahr zu resümieren. Es gehört zu den anstrengendsten überhaupt.

Den Anfang soll der Vortrag "Praktische Administration" machen, den ich sowohl auf der OpenRheinRuhr in Oberhausen wie auch auf dem LinuxDay in Dornbirn. Halten durfte.

Den hier eingebundenen Vortrag kann man sehen, sobald JavaScript eingeschaltet ist:



Bei "Folie" 15 gibt es eine Herausforderung. Mir wurde von einem Google Mitarbeiter gesagt, dass es sich so verhält, wie auf der Seite beschrieben. Ein Mitarbeiter im Auditorium sagte, dass es nicht so ist.

Unter den folgenden Links kann man die PDFs herunterladen (dann sind die Links in der Präsentation auch klickbar).
• Praktische Administration (Oberhausen, 5.11.2016, 16:10)
• Praktische Administration (Dornbirn, 26.11.2016, 4:3)

freiesMagazin wird eingestellt ...

Es war zu befürchten und jetzt ist es leider soweit, freiesMagazin wird im Dezember seine letzte Ausgabe veröffentlichen und dann schliessen.

Die Gründe sind verständlich und für die, die das nicht verstehen, sei an dieser Stelle gesagt, dass der Arbeitsaufwand, ein solches Magazin in der bekannten Qualität auf die Beine zu stellen, nicht unerheblich ist.

Dazu kommt, dass es neben rückläufiger werdenden Leserzahlen auch immer weniger Autoren gab, die direkt für freiesMagazin schreiben wollten.

Schade!

Ich wünsche dem ganzen Team von Herzen alles Gute und hoffe, Euch in der einen oder anderen Rolle im Web oder "in freier Wildbahn" wieder treffen werde.

Serendipity 2.0.4 ...

serendipity Knapp ein dreiviertel Jahr nach Erscheinen der 2.0.3, wurde gerade heute die Version 2.0.4 des "besten Blogs der Welt" veröffentlicht.

Durch das Update werden Security-Lücken im Backend geschlossen, ein Update wird - wie immer - empfohlen.

Hier in meinen Blogs werkelt die aktuelle Developer-Version, die auf 2.1-beta2 aktualisiert wurde.

Sehr viel wichtiger finde ich allerdings, dass die Homepage ein Redesign bekommen hat. Endlich sieht sie richtig gut aus. Das war grossartige Arbeit.

Timewarrior ...

taskwarrior Ganz vergessen, dass ich auf den Taskwarrior Days 2016 auch etwas zu Timewarrior erzählt habe.

Timewarrior schliesst eine Lücke, damit lassen sich auf der Kommandozeile (Arbeits-)Zeiten erfassen, über einen Hook geht das auch direkt aus Taskwarrior. Über die News auf taskwarrior.org geht es direkt in die Repositories zu den Vorträgen.

Hier ist der direkte Link zu Speakerdeck, Contribute to Taskwarrior. Ich habe das unten eingebettet (JavaScript!), Links sind leider nur im herunterladbaren PDF klickbar.

Taskwarrior Days 2016 ...

taskwarrior Die diesjährige FrOSCon benenne ich für mich um in die "Taskwarrior Days".

In diesem Jahr habe ich für den Samstag einen Taskwarrior-Projektraum beantragt und ihn auch bekommen. Es ist Raum C130, ich bringe Taskwarrior-Sticker und Cheat-Sheets mit.

Anders als die Titel vermuten lassen, sind die Vorträge und Workshops in deutscher Sprache, die PDFs aka "Folien" werden aber in englisch sein.

Folgende Programmpunkte sind geplant:

Samstag, 20.8.2016, 10:00-12:30 Uhr, Raum C130:
Workshop: Compile Taskwarrior and Taskserver

Samstag, 20.8.2016, 14:00-15:00 Uhr, Raum C130:
Vortrag: Introduction to Timewarrior

Samstag, 20.8.2016, 15:15-16:15 Uhr, Raum C130:
Vortrag: Taskwarrior Universe

Samstag, 20.8.2016, 16:30-17:30 Uhr, Raum C130:
Vortrag: Contribute to Taskwarrior

Sonntag, 21.8.2016, 10:00-12:00 Uhr, Raum C115:
Workshop: Introduction to Taskwarrior

Unterstützung ist jederzeit willkommen. Rückfragen immer gerne.

Timewarrior 1.0.0beta1 ...

taskwarrior Jetzt ist es endlich soweit, die erste beta-Version von Timewarrior wurde veröffentlicht. Timewarrior ist eine Kommandozeilenanwendung zur Zeiterfassung, sie lässt sich über Hooks in Taskwarrior einbinden.

Wenn Ihr Verwendung dafür habt, ist jetzt der richtige Zeitpunkt einzusteigen und uns mit Euren Tests und Bugreports zu unterstützen.

Timewarrior 0.9.5 Alpha Release ...

taskwarrior Da ist sie endlich, die erste Alpha-Version von Timewarrior. Timewarrior ist eine Kommandozeilen-Applikation, die es erlaubt, Zeit zu erfassen.

Es gibt einen Hook von Taskwarrior zu Timewarrior.

Langfristig betrachtet, wird Timewarrior das timesheet-Kommando in Taskwarrior ablösen.

Den News-Eintrag mit einem schicken Screenshot findet Ihr hier.

Taskwarrior-Projektraum auf der FrOSCon?

taskwarrior Für die diesjährige FrOSCon habe ich einmal einen Antrag auf einen Projektraum gestellt. Ich denke, dass es genügend Stoff gibt.

Neben den Workshops "Übersetzen und Einrichten von Taskwarrior und Taskserver" und auch "Einführung in Taskwarrior" würde ich vom jüngsten Spross der Familie "Timewarrior" erzählen.

Wenn Ihr noch Wünsche habt, dann her damit.

Wen von Euch werde ich denn in St. Augustin treffen?

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
 

Windows mit Linux-Kernel?

linux Mit der letzten Ankündigung bin ich tatsächlich der Meinung, dass wir den Beginn der Umstellung von Windows auf einen Linuxkernel sehen. Es mehren sich die Zeichen, dass die Integration von Windows und Linux - durch Microsoft getrieben - immer stärker wird.



Dem vorangegangen sind eine Reihe von anderen Meldungen.

Windows Containers mit Docker.

Der Datenbankserver MS SQL wird auf Linux portiert.

OpenSSH wird in Windows Server 2016 enthalten sein.

Nebenbei: Wer es schafft das Takswarrior-Kommando "task color" im Linux-Subsystem von Windows 10 zu zeigen, bekommt ein Taskwarrior-T-Shirt und einen Sticker (Twitter) ;-)

Die wilde dreizehn ...

serendipity Huch, das kam überraschend, gestern wurde die Blogsoftware meines Vertrauens 13 Jahre alt, so etwas ist selten in der heutigen Zeit.

Danke an alle Mitwirkenden!

Nachtrag: Ich muss natürlich erwähnen, dass es die Software schon seit 2002 gibt und gestern "nur" der Namenstag war.