Hi there 馃憢

Welcome to my blog. You’ll find a lot of posts about selfhosting with Docker and various reverse proxies from the container universe. Besides, there are also articles about fixes from the everyday life of a computer scientist.

AdGuard Home with Podman Quadlets and DNS-over-HTTPS via Cloudflare Tunnel

I鈥檝e been running AdGuard Home on my Raspberry Pi for a while now, and it鈥檚 been a solid way to block ads and trackers across my entire home network. Recently, I switched to using Podman with quadlets for a cleaner, more systemd-integrated setup. It鈥檚 rootless, which feels safer on a device like the Pi. To make DNS-over-HTTPS (DoH) available when I鈥檓 away from home, I routed it through a Cloudflare Tunnel. This keeps things secure without opening ports on my router. ...

2025-12-16 路 5 min 路 1047 words 路 ae3

Add SearXNG with Autocompletion to Vivaldi

Vivaldi does not Support the opensearch protocol to automatically add new search engines to Vivaldi. Therefore we need to add a custom search engine, to add our (selfhosted) SearXNG instance, to Vivaldi. To enable SearXNG as a search engine with working autocompletion you need these two values: URL: https://your-searxng.tld/search?q=%s Suggest URL: https://your-searxng.tld/autocompleter?q=%s You can now use Vivaldi with your own SearXNG instance. If you have not yet set up your own SearXNG instance, you can find some publicly accessible instances at searx.space.

2024-05-29 路 1 min 路 82 words 路 ae3

Docker error response from daemon: AppArmor

Debian users running the latest Docker version 23 currently receive the following error when starting a container: Error response from daemon: AppArmor enabled on system but the docker-default profile could not be loaded How to fix AppArmor Docker error You may also get the full error message: Error response from daemon: AppArmor enabled on system but the docker-default profile could not be loaded: running `apparmor_parser apparmor_parser --version` failed with output: error: exec: "apparmor_parser": executable file not found in $PATH Error: failed to start containers: container-name To fix this AppArmor Error on Debian 11 all you need to do is installing the AppArmor package. ...

2023-02-07 路 1 min 路 213 words 路 ae3

ownCloud Infinite Scale on a VPS with Hetzner Storage Box and S3

Hetzner offers a lot of storage space for very little money with its storage boxes. In this guide I want to show you how to run oCIS (ownCloud Infinite Scale) on your own VM and store the data on a Hetzner Storage Box with S3. Requirements For this guide I use a Hetzner Cloudserver CPX11 (2 Cores, 2GB RAM, 40GB SSD) and a Hetzner Storage Box BX11 (1TB). Of course, you can also use this tutorial with another provider and another server. I recommend you to use at least 2 cores and 2 GB RAM for your oCIS VPS. ...

2023-01-09 路 7 min 路 1307 words 路 ae3

Systemd timer as a cron replacement

Instead of using a cronjob placed in our crontab, we can make use of a systemd timer on a modern linux system which is running systemd. For a systemd timer to work, it needs two parts. One part consists of a .timer file, and a .service file. The .timer file specifies when our service should be started. Just like a cronjob we can specify here on which days, in which week or at which time our service should be started. Our .service file contains all the details about the script or command we want to run. ...

2022-12-29 路 2 min 路 366 words 路 ae3

How to back up MariaDB databases running in a container

Backups are sometimes not quite present in our everyday life, but if we suddenly face a problem there is nothing but a backup that can save us. In the past, I have mounted the data from MariaDB (or MySQL) containers using Docker on a specific Docker volume and backed it up daily. Depending on the database engine, this data may or may not be consistent. For an installation that has a very large database workload, such backups are almost never consistent and are therefore not an optimal solution. ...

2022-12-23 路 3 min 路 487 words 路 ae3

Telegram Notification on successful SSH Login

With the following script we monitor the SSH login on a server and send a notification via Telegram API. This way you will get a notification in real time when someone logs in to your server via SSH. For me this is a valuable security feature. Telegram Notification on successful SSH Login telegram-send Python Script First, we create the following Python script, which is used to send messages to Telegram鈥檚 API. ...

2022-12-12 路 2 min 路 406 words 路 ae3

Fix macOS pssh logging caused by line buffering

If you want to log the output of an SSH connection under macOS with pssh from Homebrew, the following error occurs: line buffering (buffering=1) isn't supported in binary mode In the pssh command this happens when you define the -o option for output. pssh -t 0 -p 10 -l root -h host.list -o logs 'command' In order to log the output of the SSH session, we have to make a small adjustment to the Python psshlib. ...

2022-12-07 路 2 min 路 254 words 路 ae3

Hosting Mastodon on a currently used domain name

You already use your domain for a company website and now you want to use Mastodon with your domain? It is possible to install Mastodon on a subdomain (mastodon.example.com) and still be found in Fediverse under example.com. Mastodon is a decentralized microblogging network, that is similar to Twitter, and can be self-hosted on your own server. Hosting Mastodon on a currently used domain name Environment Settings Note ...

2022-11-24 路 2 min 路 234 words 路 ae3

Mastodon with Docker and Traefik

Mastodon is a decentralized microblogging network, that is similar to Twitter, and can be self-hosted on your own server. Unlike Twitter, Mastodon consists of many different servers that are connected worldwide. This connection is established through the so-called Fediverse. It doesn鈥檛 matter if you create your account on your own self-hosted Mastodon instance or if you create an account with one of the numerous providers. Since all servers are connected, you can interact with your account from anywhere. ...

2022-11-16 路 6 min 路 1140 words 路 ae3