Fryboyter

Dateisystem Btrfs wird demnächst Swap-Dateien unterstützen

Seit Jahren verwende ich auf meinen privaten Rechnern kein Swap. Für spezielle Fälle war es aber ganz nützlich mal eben eine Swap-Datei anzulegen. Seit ich Btrfs nutze, war dies leider keine Option mehr, da dieses Dateisytem keine Swap-Dateien unterstützt. Das wird sich demnächst voraussichtlich aber wieder ändern.

Warum wieder? Im Jahre 2009 wurde die Unterstützung von Swap-Dateien entfernt, da Swap-Dateien Probleme gemacht haben. Der Entwickler Omar Sandoval hat nun aber kürzlich einen Patch eingereicht, der die sichere Nutzung von Swap-Files unter Btrfs ermöglicht. Wenn es keine Probleme damit gibt, könnte diese Änderung bereits in der übernächsten Version des Kernels (voraussichtlich März 2019) enthalten sein.


Lesezeichen mit Nextcloud synchronisieren

Inzwischen bieten einige Browser an die Lesezeichen (auch Bookmarks genannt) zu synchronisieren. Dies erfolgt aber meist über Server über die man keine Kontrolle hat. Blöd wenn man Porno-, Islamisten- oder Warez-Seiten gebooktmarkt hat und sich der Anbieter für die Bookmarks interessiert.

Heute bin ich zufällig auf floccus aufmerksam geworden. Hiermit lassen sich die Lesezeichen über die eigene Nextcloud-Instanz synchronisieren. Für Chrome / Chromium und Firefox gibt es entsprechende Erweiterungen.

And Now for Something Completely Different™. Schlagt mich oder geht mit Tiernamen. Aber an der Stelle mache ich einfach mal schamlos Werbung für das Album "We'Re Your Friends,Man" von The Bevis Frond. Wer in den 90ern aufgewachsen ist und / oder mit Mukke wie Pearl Jam, RHCP, Stilskin, REM usw. etwas anfangen kann, sollte ich das neue Album anhören. Ist schon lange her, dass mich ein Album quasi zum Sofortkauf verleitet hat.


Versionsverwaltung mit Fossil

Bisher habe für meine privaten Projekte immer vermieten eine Versionsverwaltung zu verwenden. Da ich Ende des Monats mein Ansible-Projekt umsetzen werde und ein weiteres größeres Projekt geplant ist ist es wohl Zeit für solch ein Tool.

Die meisten werden vermutlich keinen Gedanken daran verschwenden und den Platzhirsch git nutzen. Ich kann mich mit git aber nicht anfreunden. Und vom Funktionsumfang werde ich vermutlich nur einen Bruchteil benötigen. Also mache ich, was ich ganz gut kann. Mir alternative Programme ansehen.

Da ich in einer Kathedrale und nicht auf einem Basar entwicklen werde, habe ich mich spontan für Fossil entschieden. Dieses Tool wird zum Beispiel für die Entwicklung von SQLite verwendet. Zudem sind die Entwickler von SQLite zufällig auch die Entwickler von Fossil. Warum das so ist, kann man unter https://sqlite.org/whynotgit.html nachlesen.

Auch wenn die Bedienung von Fossil Ähnlichkeiten mit der von git aufweist, finde ich Fossil angenehmer zu bedienen.

fossil init ansible #Repository "ansible" erstellen
fossil open ansible #Repository "ansible" öffnen
fossil add install.yml #Datei "install.yml" zum Repository hinzufügen
fossil commit #Änderung bestätigen
fossil close ansible #Repository "ansible" schließen

Fossil bietet natürlich noch weitere Möglichkeiten. Genaueres kann man in der Dokumentation nachlesen. Aber Moment... Warum wird bei obigen Beispiel das Repository geöffnet und geschlossen. An dem Punkt kommen wir zur Besonderheit von Fossil. Ein Repository wird hier in eine SQLite-Datenbank gepackt. Somit wird mit "open" die Verbindung aufgebaut und mit "close" geschlossen. Auf den ersten Blick mit sqlitebrowser macht der Datenbankaufbau keinen schlechten Eindruck.

Abschließend möchte ich noch anmerken, dass Fossil auch über einen grafische Oberfläche verfügt, über die unter anderem eine Timeline der Änderungen, ein Forum und ein Wiki angeboten werden. Im Grunde wie bei Github. Wie das genau aussieht kann man sich auf der offiziellen Seite von Fossil ansehen. Diese läuft mit besagter Oberfläche. Lokal lässt sich diese mit "fossil ui ansible" starten, so dass man das ganze auch einzelner Entwickler intern nutzen kann.


Caddy Webserver

Heutzutage sind die Webserver Apache und nginx weit verbreitet. Selbst nutzt ich nginx um damit eine Paketquelle für selbst erstellte Arch-Pakete im LAN anzubieten. Was die Konfiguration betrifft, kann nginx allerdings etwas umständlich sein.

Heute habe ich mir einmal den Webserver Caddy angesehen. Dieser ist mit Go erstellt und wird seit 2015 aktiv weiterentwickelt. Auf der Downloadseite kann man sich seine eigene Caddy-Datei erstellen in dem man die Plattform wie ARMv7 und eventuelle Plugins auswählt. Ist dies erledigt, wird auch ein Link angezeigt mit dem man sich die Datei mit den gewünschten Einstellungen automatisch herunterladen kann (z. B. https://caddyserver.com/download/linux/arm7?plugins=http.expires&license=personal&telemetry=off). Leider schlägt auch Caddy in die gleiche Kerbe wie Pi Hole und bietet eine alternative Installation in Form von beispielsweise curl https://getcaddy.com | bash -s http.expires an. Das geht eigentlich gar nicht.

Was mir an Caddy besonders gefällt, ist die Konfiguration. So könnte diese zum Beispiel wie folgt aussehen:


192.168.1.2:8888
root /verzeichnis/zum/Webroot
gzip
browse

Der Server ist also über die IP 192.168.1.2 auf Port 8888 erreichbar. Der Webroot ist /verzeichnis/zum/Webroot und gzip sowie Directory Listing sind aktiviert.

Ein Reverse Proxy lässt sich ebenfalls in Sekunden erstellen.

abc.com {
    proxy / localhost:8181
}

Nett finde ich auch die Tatsache, dass Let's Encrypt von Haus aus genutzt wird, ohne etwas machen zu müssen (lässt sich bei Bedarf aber deaktivieren bzw. genauer einstellen). Auf der Seite von Caddy findet man eine leicht Verständliche Dokumentation für den gesamten Server sowie diverse Konfigurationsbeispiele.

Der Sourcecode von Caddy wird unter der Apache Lizenz 2.0 veröffentlicht. Wer die fertigen Binär-Dateien nutzen will, kann dies für den privaten Einsatz kostenlos tun. Im Unternehmensbereich muss allerdings ein monatlicher Beitrag gezahlt werden. Ein Erstellen aus dem Sourcecode ist natürlich kostenlos möglich.


Github - Benachrichtigungen bei neuen Veröffentlichungen

Will man bei Github darüber informiert werden, sobald ein Projekt eine neue Version veröffentlicht hat, musste man kreativ werden. Wer einen RSS-Reader nutzt, hat es am leichtesten, da es es hier reicht den Link auf die Release-Seite um .atom zu erweitern (z. B. https://github.com/bolt/bolt/releases.atom).

Wer allerdings eine Benachrichtigung per E-Mail bevorzugt (wie ich) der musste noch kreativer werden und beispielsweise gut abgehangene Tools wie rss2email oder vergleichbare Dienste wie IFTTT nutzen. Feature Requests, die teilweise schon ein paar Jahre alt sind, zeigen aber, dass viele Nutzer es lieber hätten, wenn Github eine solche Benachrichtigung "out of the box" anbieten würde. Viele werden die Hoffnung schon aufgegeben haben. Aber manchmal dauert es "nur" etwas länger. Als ich mich eben bei Github angemeldet hatte, bekam ich einen Hinweis angezeigt, dass man sich nun auch über neue Veröffentlichungen informieren lassen kann. Zu finden ist das ganze unter der Schaltfläche "Watch".

Ich habe bei einigen Projekten die mich interessieren mal "Release only" ausgewählt. Mal schauen was passiert.