<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Selfhosting on M1CH's Log</title><link>https://blog.m1ch.eu/tags/selfhosting/</link><description>Recent content in Selfhosting on M1CH's Log</description><generator>Hugo</generator><language>en-us</language><copyright>Michael Klamminger</copyright><lastBuildDate>Thu, 20 Nov 2025 15:06:14 +0100</lastBuildDate><atom:link href="https://blog.m1ch.eu/tags/selfhosting/index.xml" rel="self" type="application/rss+xml"/><item><title>Using SSH Config `Match exec` to Route Hostnames Dynamically</title><link>https://blog.m1ch.eu/posts/20251120-ssh_config/</link><pubDate>Thu, 20 Nov 2025 15:06:14 +0100</pubDate><guid>https://blog.m1ch.eu/posts/20251120-ssh_config/</guid><description>&lt;h3 id="why-bother-with-a-fancy-match-block"&gt;Why bother with a fancy &lt;code&gt;Match&lt;/code&gt; block?&lt;/h3&gt;
&lt;p&gt;When you SSH into a fleet of servers that share a naming scheme, you usually end up copying-pasting the same options over and over. A &lt;code&gt;Match&lt;/code&gt; block that tests the host name and then tweaks the connection parameters lets you:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Keep a single config file&lt;/strong&gt; that works for every member of the group.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Automate proxying or port-translation&lt;/strong&gt; without having to write a wrapper script.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The example below demonstrates the trick.&lt;/p&gt;</description></item><item><title>Glusterfs down 🫩</title><link>https://blog.m1ch.eu/posts/20251024-glusterfs/</link><pubDate>Fri, 24 Oct 2025 13:22:12 +0200</pubDate><guid>https://blog.m1ch.eu/posts/20251024-glusterfs/</guid><description>&lt;p&gt;This morning I woke up and the radio was not playing. I soon figured out, that my DNS, AdGuard, was for some reason down.&lt;/p&gt;
&lt;p&gt;I started with the debugging, even before I had breakfast. Not evan a coffee!&lt;/p&gt;
&lt;p&gt;The docker-container for AdGuard was running and reported no error. So I dug deeper and deeper, just to find out, that several containers showed strange behavior. For example did Traefik had som error that it could not find the middlewares, that where configured via environment variables.&lt;/p&gt;</description></item></channel></rss>