Matthias Klein

Matthias Klein

Beschreibung Why I migrated my blog from Ghost to WriteFreely and how you can do it too

Why WriteFreely?

After years with various blogging platforms, I was looking for something simpler. Ghost was great, but:

  • Native ActivityPub Integration – My blog is automatically available in the Fediverse
  • Minimal Resource Usage – Single binary, no Node.js, no complex infrastructure
  • Focus on Writing – No distractions, just writing
  • Self-hosted – Full control over my data
  • Markdown-native – No formatting battles
Read more...

Beschreibung After a longer hiatus, I decided yesterday to tackle setting up my own Matrix server again. The last time I tried this, it was quite a battle with cryptic error messages, Docker permission problems, and federation headaches. This time should be different – and indeed: A lot has changed!

TL;DR: It finally works smoothlyThe key takeaways upfront:

  • ✅ Docker installation runs cleanly through
  • .well-known federation is recognized immediately
  • ✅ Element X with Sliding Sync works out-of-the-box
  • ✅ Traefik integration without hickups
  • ✅ IPv4 & IPv6 federation active from the start

In short: What used to cost hours or days now works in under an hour. But let me explain step by step...

Read more...

Beschreibung Short answer: Hell yes.

After completing the full migration and running in production for weeks, I can confidently say GoToSocial is ready for serious use.

Perfect For:

  • Self-hosters with limited resources (VPS with 1-2GB RAM? No problem!)
  • Single-user or small family instances (works great up to ~50 users based on community reports)
  • Homelab enthusiasts who value efficiency and simplicity
  • Privacy-conscious users who want full control over their data
  • Developers who appreciate clean, well-documented APIs

Think Twice If: ⚠️

  • Large communities (100+ users – not extensively tested yet)
  • Power users who rely heavily on advanced Mastodon features
  • Mobile-first users who need perfect app compatibility
  • Non-technical admins who prefer GUI-based administration
Read more...

Beschreibung We live in a time in which our most personal conversations happen through screens and keyboards. Every email, message, and document we send travels through countless servers before reaching its destination. As someone who works in IT, I've seen firsthand how easily digital communication can be intercepted or compromised.

That's why I rely on OpenPGP – not because I have anything to hide, but because I value the fundamental right to private communication. It's one of the most robust encryption standards available, protecting digital conversations for over three decades.

OpenPGP: More Than Just Encryption

OpenPGP operates on a beautifully simple concept. Imagine you have a special lockbox that only you can open. You can give copies of the lock to anyone, but the key stays with you. When someone wants to send you a secret message, they lock it with your lock and send it. Only your key can open it.

This is essentially how OpenPGP works, but with mathematical precision. You generate two mathematically linked keys: a public key you share freely, and a private key that stays securely with you. The mathematics is so solid that even powerful computers would need centuries to break properly implemented encryption.

Beyond hiding messages, OpenPGP also lets you sign them, creating a digital fingerprint that proves authenticity and prevents tampering. Think of it as an impossible-to-forge tamper-evident seal.

Read more...

Beschreibung If you've ever tried to send emails from a shell script, you've likely run into tools like mailmailx, or even sendmail. They seem easy at first glance – but quickly become frustrating: strange formatting, attachment issues, encoding errors, and cryptic failure messages.

💨 Common Issues with mailx

  • Different implementations across distros (BSD vs. Heirloom vs. GNU)
  • Inconsistent or broken attachment support via -a
  • Poor handling of UTF-8 content
  • No built-in HTML mail support
  • Lack of clear error messages or logs
Read more...

Beschreibung When I started blogging (sometime in the 2000's), a popular tradition alongside the blogroll – a curated list of recommended blogs – was the “blog baton.” Bloggers would write about a specific topic and then pass it on to others, encouraging them to share their own perspectives.

These year-end and New Year lists of standard apps used by bloggers feel like a modern take on that tradition, as they pop up across the web. While I wasn’t directly invited to join the conversation this time, I decided to jump in after seeing Oliver’s take on the topic, which caught my interest.

Read more...

Beschreibung

Why Use an Internal Domain?

A domain accessible only within the internal network can be incredibly useful when you host multiple services within your home lab. Not only does it provide a clean organization, but it also offers additional security since the services are not directly accessible from outside. In this article, I’ll show you how to set up an internal domain using an additional Nginx Proxy Manager (NPM) and an AdGuard Home Server within your home lab to structure and secure your self-hosted services.

I wanted to replace my internal root CA with an accepted Let's Encrypt wildcard certificate, so I treated myself to an additional domain for internal use only. Like my external domain ‘klein.ruhr’, this is hosted by netcup and I use the Cloudflare.com name servers (only the pure DNS name servers, no additional services).

Read more...

Beschreibung Recently, a controversy surrounding WordPress founder Matt Mullenweg has caused unrest within the community.

At the center of the conflict is the hosting provider WP Engine, which Mullenweg accused of benefiting from the open-source nature of WordPress without contributing enough back to the project. This dispute escalated when Mullenweg demanded substantial financial compensation and threatened drastic measures. As a result, a significant portion of the workforce at Mullenweg’s company Automattic left the company.

This development, along with the increasing commercialization of WordPress, led me to switch to Ghost. Ghost offers a powerful, streamlined, and privacy-friendly alternative, focusing on what really matters: publishing content.

Read more...

Beschreibung In the era of the GDPR (General Data Protection Regulation), it's essential for you to run your website in compliance with data protection regulations. Ghost is a modern, fast content management system that's gaining popularity in the self-hosting community. In this post, I'll guide you through how to run Ghost CMS with Docker-Compose while meeting GDPR requirements.

Requirements and Setup

Before you begin, make sure that Docker and Docker-Compose are installed on your server.

Read more...

Beschreibung After introducing you to my daily companions in my homelab post, where I explained my Proxmox cluster and showcased other notable features of my #homelab, it’s time to dive into the software that powers my daily workflow.

At work, I’m required to use Windows 11 – sometimes necessity dictates our tools. However, in my personal life, I gravitate toward macOS and always keep at least one Linux system running. My go-to distribution is usually #Debian-based, and right now, it’s Linux Mint.

Since macOS is my primary operating system for personal use, this article will focus heavily on the software I use on macOS. Don’t worry if you’re not a Mac user – I rely on open-source software wherever possible, so many of these tools are available across multiple platforms.

Here’s a rundown of the apps and software that keep my digital life organized and efficient:

Read more...