RSSAmplifier

Blog

s3lph made

s3lph.meRSS feed ↗56 posts

Latest posts

Building AUR Packages with Forgejo Actions and Renovate

The Arch User Repository (AUR) is a collection of user-contributed source packages for Arch Linux . These packages, which may be submitted by anyone without review, simply consist of package metadata, and instructions for downloading and building software from source. This also means that special care must be taken when using …

Unified Kernel Images and Secure Boot using Arch Linux

I recently got a new laptop computer and decided to give Unified Kernel Images and Secure Boot with my own keys another try. When I last looked into these topics almost a decade ago, they were extremely cumbersome to set up and maintain, and required lots of manual steps. A …

Migration of Etherpad Lite from MariaDB to PostgreSQL

I recently migrated an installation of Etherpad Lite from an old setup based on a git checkout to a newer container-based setup. The old setup used MariaDB as its backing database. In the new container setup, I wanted to expose the database's UNIX domain socket to the container. Unfortunately, the …

Libvirt to Proxmox VE Migration

In our hackerspace, we were running a single-node hypervisor for some virtual machines on hardware that was roughly 15 years old. As this system was not only old, but also loud and power-hungry, we wanted to replace it with a more modern one that we had recently obtained. We also …

Talk: «IPv6-only in the Home Network»

I held a talk at CoSin 2025 titled «IPv6-only in the Home Network». The slides (in German) are available in the conference archive: Slides Here's the recording of the talk (also in German):

Vortrag: «IPv6-only im Heimnetz»

Ich habe auf der CoSin 2025 einen Vortrag mit dem Titel «IPv6-only im Heimnetz» gehalten. Die Folien sind im Konferenzarchiv verfügbar: Slides Hier ist die Aufzeichnung des Vortrags:

Manually Replacing Matrix Rooms

In our hackerspace community, we recently ran into some issues with end-to-end encrypted Matrix rooms: In a previously unencrypted public room with around 100 users across lots of different home servers, a room admin had enabled end-to-end encryption by accident. Unfortunately, end-to-end encryption in Matrix can still be unreliable at …

Configuration of Honeywell Barcode Scanners

I had recently obtained an used USB barcode scanner: A Honeywell Hyperion 1300G. These scanners can be configured to use one of multiple USB operation modes: USB Keyboard mode: The scanner emulates a keyboard and "types" the digits of scanned barcodes. USB Serial mode: The scanner emulates a serial console …

Talk: «Propagation of OpenPGP Keys using WKD, WKS and DANE»

I held a talk at CoSin 2024 titled «Propagation of OpenPGP Keys using WKD, WKS and DANE». The slides (in German) are available in the conference archive: Slides Here's the recording of the talk (also in German):

Vortrag: «Verbreitung von OpenPGP-Keys mit WKD, WKS und DANE»

Ich habe auf der CoSin 2024 einen Vortrag mit dem Titel «Verbreitung von OpenPGP-Keys mit WKD, WKS und DANE» gehalten. Die Folien sind im Konferenzarchiv verfügbar: Slides Hier ist die Aufzeichnung des Vortrags:

Issue Let's Encrypt Certificates with TSIG Zone Updates against Knot

To issue wildcard certificates, Let's Encrypt requires the use of the DNS validation method (see Certificate Policy §3.2.2 ). I'm running my own DNS nameserver using Knot DNS , which does not have e.g. a REST API for updating zones. However, Knot supports RFC 2136 zone updates , where a …

Persisting Keycloak Sessions Across Restarts

Update (2024-06-10) Starting with version 25 , Keycloak comes with a new persistent-user-session feature that stores session data in the database in addition to in memory. I recommend enabling that feature using features=persistent-user-session in keycloak.conf rather than using persistent Infinispan caches. In my hackerspace we're running a Keycloak SSO …

Talk: «Sending APRS using an Arduino»

I held a talk at CoSin 2023 titled «Sending APRS using an Arduino». The talk was not recorded, but the slides (in German) are available in the conference archive: Slides

Talk: «Automating DNSSEC using Knot & Child DS»

I held a talk at CoSin 2023 titled «Automating DNSSEC using Knot & Child DS». The talk was not recorded, but the slides (in German) are available in the conference archive: Slides

Vortrag: «APRS senden mit dem Arduino»

Ich habe auf der CoSin 2023 einen Vortrag mit dem Titel «APRS senden mit dem Arduino» gehalten. Der Vortrag wurde nicht aufgezeichnet, aber die Folien sind im Konferenzarchiv verfügbar: Slides

Vortrag: «DNSSEC automatisieren mit Knot & Child DS»

Ich habe auf der CoSin 2023 einen Vortrag mit dem Titel «DNSSEC automatisieren mit Knot & Child DS» gehalten. Der Vortrag wurde nicht aufgezeichnet, aber die Folien sind im Konferenzarchiv verfügbar: Slides

Mein Einbürgerungverfahren in Basel - Teil 7: Fazit

Achtung : Die Informationen in diesem Artikel beziehen sich auf das Verfahren im Kanton Basel-Stadt, die Verfahren in anderen Kantonen weichen z.T. stark ab. Persönliche Eindrücke Im Grossen und Ganzen habe ich das Einbürgerungsverfahren als deutlich «harmloser» empfunden, als ich es erwartet hatte. Insbesondere beim Gespräch mit der Einbürgerungskommission hatte …

Mein Einbürgerungverfahren in Basel - Teil 6: Abschluss des Verfahrens

Gegen Ende Februar habe ich vom Migrationsamt des Kantons Basel-Stadt einen doch eher unzeremoniellen Brief bekommen, der mich darüber informierte, dass mir am 31. Januar 2023 das Bürgerrecht der Stadt Basel, des Kantons Basel-Stadt und der Schweiz verliehen wurde. Damit ist das Einbürgerungsverfahren an sich nun abgeschlossen; als «frischgebackener» Schweizerbürger …

Migration from LDAP to OIDC: Matrix

In my hackerspace we operate various services for our members. Up until this month, most of these services used to do user authentication against a LDAP server. For a multitude of reasons, we replaced the LDAP server with an OpenID Connect SSO using a Keycloak server as the OIDC Identity …

Migration from LDAP to OIDC: Nextcloud

In my hackerspace we operate various services for our members. Up until this month, most of these services used to do user authentication against a LDAP server. For a multitude of reasons, we replaced the LDAP server with an OpenID Connect SSO using a Keycloak server as the OIDC Identity …

Migration from LDAP to OIDC: Forgejo

In my hackerspace we operate various services for our members. Up until this month, most of these services used to do user authentication against a LDAP server. For a multitude of reasons, we replaced the LDAP server with an OpenID Connect SSO using a Keycloak server as the OIDC Identity …

How much ActivityPub can a Static Site Generator implement?

There already are multiple blogging solutions which are part of the Fediverse . Among them are dedicated Fediverse blogs such as Plume or WriteFreely , but there also are plugins which retrofit existing CMS, e.g. for Wordpress or Drupal . ActivityPub , the network protocol behind the Fediverse can only be fully implemented …

Wie viel ActivityPub kann ein Static Site Generator?

Es gibt bereits verschiedene Blog-Lösungen, die Teil des Fediverse sind: Darunter sind sowohl dedizierte Fediverse-Blogs wie Plume und WriteFreely , aber es gibt auch Plugins, die bestehende CMS nachrüsten, z.B. für Wordpress oder für Drupal . ActivityPub , das Netzwerk-Protokoll hinter dem Fediverse, lässt sich nur mit einer aktiven Serverkomponente vollständig umsetzen …

Automated Generation of POI Maps from Open Data

The website of the Chaos Computer Club features a map of Germany and its surrounding countries, where hackerspaces who consider themselves as part of the CCC are marked. Up until now, this map (shown in Figure 1 ) had been created and updated manually in a time consuming process. Not only …

Automatische Erzeugung von POI-Karten aus Offenen Daten

Die Website des Chaos Computer Clubs enthält eine Karte von Deutschland und den umliegenden Ländern, auf der Hackerspaces verzeichnet sind, die sich als Teil des CCC betrachten. Bisher wurde diese Karte (siehe Abbildung 1 ) händisch erzeugt und aktualisiert, was jeweils sehr zeitaufwändig war. Das hat nicht nur dazu geführt, dass …

Talk: «DNSSEC (in the year 2022)»

I held a talk at CCC Basel titled «DNSSEC (in the year 2022) - An introduction to DNSSEC and its development in the recent years». Here's the recording of the talk (in German):

Vortrag: «DNSSEC (im Jahr 2022)»

Ich habe im CCC Basel einen Vortrag mit dem Titel «DNSSEC (im Jahr 2022) - Eine Einführung in DNSSEC und dessen Entwicklung in den letzten Jahren» gehalten. Hier ist die Aufzeichnung des Vortrags:

Mein Einbürgerungverfahren in Basel - Teil 5: Das Einbürgerungsgespräch

Gestern früh hatte ich das Gespräch mit der Einbürgerungskommission der Bürgergemeinde Basel. Das Gespräch dauert gemäss Einladung ca. 20 Minuten, war bei mir aber schon nach ca. 15 Minuten vorbei. Das Gespräch Abbildung 1: Der Bürgerratssaal im Basler Stadthaus, in dem das Einbürgerungsgesprach stattfindet. Quelle: Bürgergemeinde der Stadt Basel, CC-BY-SA-4 …

Mein Einbürgerungverfahren in Basel - Teil 4: «Einbürgerungskurs»

Achtung : Die Informationen in diesem Artikel beziehen sich auf das Verfahren im Kanton Basel-Stadt, die Verfahren in anderen Kantonen weichen z.T. stark ab. Im Rahmen des Einbürgerungsverfahrens muss man einen «Einbürgerungstest» absolvieren, in dem Kenntnisse über die politischen, historischen und geografischen Gegebenheiten der Schweiz geprüft werden. Wie ich bereits …

Talk: «Post Mortem»

I held a talk at CCC Basel titled «Post Mortem: Lessons Learned from the Death of a Sysadmin». Here's the recording of the talk (in German):

Vortrag: «Post Mortem»

Ich habe im CCC Basel einen Vortrag namens «Post Mortem: Lessons Learned aus dem Todesfall eines Serveradmins» gehalten. Hier ist die Aufzeichnung des Vortrags:

Mein Einbürgerungverfahren in Basel - Teil 3: Telefonisches Erhebungsgespräch

Achtung : Die Informationen in diesem Artikel beziehen sich auf das Verfahren im Kanton Basel-Stadt, die Verfahren in anderen Kantonen weichen z.T. stark ab. Letzte Woche hatte ich von Migrationsamt Basel-Stadt einen Brief erhalten, mit der Bitte, mich telefonisch beim Migrationsamt zu melden, da noch ein paar offene Fragen bestünden …

Restoring a Commodore CBM 3016

We recently got our hands on a Commodore CBM 3016 , built between 1978 and 1980. Unfortunately, as we attempted to power it up, we were greeted with a screen full of random characters: Figure 1: CBM 3016 screen filled with random characters. A short web search told us that a …

Layer 2 TFTP Relay for TFTP Recovery with IP Conflicts

Today I had to deal with an embedded device which refused to boot up due to a misconfiguration. Normally, this device, a Mitel DECT RFP 32 IP, obtains a DHCP lease on boot and fetches the firmware to run via TFTP. The firmware is downloaded at every reboot, since the …

Chainload GRUB 2 from GRUB 2

I recently needed to set up a PC to dual boot Windows and Linux. Legacy BIOS, no UEFI. Unfortunately Windows likes to do Windows things and override the first-stage GRUB bootloader in the MBR with its own, and thereafter booting Windows only. As this PC needs to be used by …

DNSSEC Automation with Knot - Automated KSK Rollover

UPDATE : Due to how KSK algorithm rollovers work, cds-cdnskey-publish: double-ds should not be used . The configuration example below has been updated to use cds-cdnskey-publish: always instead. In the previous post I've shown how to bootstrap DNSSEC in a fully automated fashion using the Knot DNS server and a CDS -enabled …

DNSSEC Automation with Knot - Automated Bootstrapping

UPDATE : Due to how KSK algorithm rollovers work, cds-cdnskey-publish: double-ds should not be used . The configuration example below has been updated to use cds-cdnskey-publish: always instead. Knot DNS is an authoritative DNS name server developed by CZ.NIC. One of the features that sets it apart from BIND and other …

Mein Einbürgerungverfahren in Basel - Teil 2: Vorbereitung und Gesuchsstellung

Achtung : Die Informationen in diesem Artikel beziehen sich auf das Verfahren im Kanton Basel-Stadt, die Verfahren in anderen Kantonen weichen z.T. stark ab. Normalerweise muss man sich vor der Einreichung des Einbürgerungsgesuchs vom Migrationsamt beraten lassen. Pandemiebedingt ist die Beratung momentan aber nur telefonisch oder via E-Mail möglich. Beratung …

Mein Einbürgerungverfahren in Basel - Teil 1: Intro

Letzte Woche habe ich mein Einbürgerungsgesuch beim Migrationsamt in Basel eingereicht. Damit beginnt für mich das langwierige (1.5-2 Jahre) Einbürgerungsverfahen, über das ich hier im Blog berichten werde, da ich bisher kaum ausführliche Erfahrungsberichte im Internet finden konnte, und quasi gar keine aus Basel. Hintergrund Ich lebe seit 10 …

Extracting 3D Models From CesiumJS - Part 2: Terrain Map Parsing

CesiumJS is a open source JavaScript framework for rendering 2D and 3D maps - everything from a local area to whole planets - in a web browser using WebGL. In the past few weeks I've been working on obtaining 3D model data in a situation where the only easily available way of …

Mailinglist Archive URL Redirection from Pipermail to Hyperkitty

I recently migrated a mailing list setup running on Mailman 2 to a new Mailman 3 -based setup on a new server. The migration itself is pretty straight forward, especially thanks to the official upgrade guide . The migration from Pipermail (the default archiver used in Mailman 2) to Hyperkitty (Mailman …

Migration of IRC Services from Hybserv2 to Anope

I recently inherited a small IRC network, consisting of a single server and a rather small but still active community. The software on this server was quite outdated, running a version of ircd-hybrid from 8 years ago, and for IRC services a comparably old version of the now-unmaintained hybserv2 . I …

Reminders with VoIP Phones, Asterisk & Crontab

Update (2020-10-30) As it turns out, this solution causes people to get used to the ringing phone, causing not only the reminder to be ignored, but actual incoming calls as well. We have thus stopped using this solution. It is considered best practice to regularly and often ventilate closed rooms …

Cisco 7900 series IP Phone Logo Converter

Last week we discovered a box full of old Cisco 7900 series IP phones hidden deep in a pile of boxes in our hackerspace. Of course we tried to get them up and running and figure out how to configure them. After a bit of research and reading manuals, we …

Scaling and Slicing PDF Documents with pdfjam and mutool

I recently encountered the following challenge: I had a PDF document consisting of multiple A4 pages, each of which I needed to print scaled up to A2. However, I only had an A4 printer available, and the printer driver was not able to perform the scaling and/or slicing on …

Automated Debian package building with Gitlab CI and Reprepro

I previously deployed some ad-hoc services using ugly and difficult to maintain solutions, such as binaries manually extracted from container images and copied into /usr/local/bin . Of course, this is a lot of manual work for each upgrade of the service, and if you upgrade often, a lot of …

Recording IPTV Using ffmpeg

I don't usually watch TV. But from time to time there is something interesting on the programme, such as debates on local politics. Unfortunately, those usually run at a time of day where I'm not able (or more likely not willing) to tune in an pay attention to an hour …

Extracting 3D Models From CesiumJS - Part 1: Terrain Map Scraping

CesiumJS is a open source JavaScript framework for rendering 2D and 3D maps - everything from a local area to whole planets - in a web browser using WebGL. In the past few weeks I've been working on obtaining 3D model data in a situation where the only easily available way of …

Mounting a 2.5" Drive Inside an APU2

At home, I'm using a PC Engines APU2 as a firewall and WiFi access point. Since this is the only device in my home constantly running and constantly connected to the internet, I decided to use it as an additional backup site for my servers. However, for this to become …

Binary Calculator Implementation in Apache mod_rewrite

Many text replacement dialects utilizing regular expressions become turing complete when combined with conditional loops or recursion. Apache's mod_rewrite is no exception here; you can write turing-complete programs using RewriteRule s only. A few weeks ago I decided to try my hand at this and wrote a binary calculator (well …