Demian's Blog https://pyte.dev/ Recent content on Demian's Blog Hugo en-us Sun, 04 Jan 2026 20:33:45 +0100 Spaceship Distrobox https://pyte.dev/posts/spaceship-distrobox/ Sun, 04 Jan 2026 20:33:45 +0100 https://pyte.dev/posts/spaceship-distrobox/ <h1 id="how-i-solved-the-distrobox-confusion-in-my-terminal">How I Solved the Distrobox Confusion in My Terminal</h1> <p>Recently, I found myself struggling with something that seemed like a simple problem: when I was working with multiple terminal windows, I could never remember which one was inside a Distrobox and which one was on my local system. If you&rsquo;ve ever juggled between different environments, you know exactly how annoying this can get.</p> <p>So, I decided to create a quick plugin for my favorite terminal prompt, <strong>Spaceship</strong>, that would clearly indicate when I&rsquo;m inside a Distrobox container. The result is a simple, customizable section that appears right in your prompt, showing the name of the active container. This way, I never have to guess or dig deeper to figure out where I&rsquo;m working.</p> Google Groups Spam https://pyte.dev/posts/google-groups-spam/ Fri, 10 Oct 2025 09:26:56 +0200 https://pyte.dev/posts/google-groups-spam/ <h1 id="understanding-the-google-groups-spam-problem">Understanding the Google Groups Spam Problem</h1> <p>Over the past year, I&rsquo;ve noticed a significant increase in spam messages originating from Google Groups. This issue stems from the way Google Groups is designed: It gives spammers an easy way to distribute large volumes of unwanted mail using legitimate Google mail servers, which makes filtering much harder.</p> <h2 id="why-it-happens">Why it Happens</h2> <p>There are a few fundamental problems with how Google Groups works that make it particularly attractive to spammers:</p> Blocking Invalid Recipients Before They Reach Your Exchange Server https://pyte.dev/posts/blocking-invalid-rcpt-postfix/ Fri, 01 Aug 2025 10:03:15 +0200 https://pyte.dev/posts/blocking-invalid-rcpt-postfix/ <p>Recently, I had to deal with a serious problem: <strong>backscatter</strong>.<br> One of our mail gateways ended up listed on the <strong>backscatter.org</strong> blacklist for sending bounce messages to forged senders.</p> <p>After checking the logs, I quickly realized that our system wasn&rsquo;t actually protected against backscatter attacks, so I had to do something about it.</p> <h2 id="what-even-is-backscatter">What Even Is Backscatter?</h2> <p>Backscatter is unwanted email that your mail server sends <strong>after</strong> receiving a message, usually in the form of a <strong>non-delivery report (NDR)</strong> or <strong>bounce</strong> to a <strong>forged sender address</strong>.</p> Dovecot Index Cache Issues https://pyte.dev/posts/dovecot-index-cache-issues/ Sun, 18 May 2025 11:34:09 +0200 https://pyte.dev/posts/dovecot-index-cache-issues/ <h1 id="understanding-dovecotindexcache">Understanding <code>dovecot.index.cache</code></h1> <p>I recently migrated an old mail server system into its new home. After the migration, I checked the logs and noticed some warnings that looked like this:</p> <pre tabindex="0"><code>May 17 11:23:13 server1 dovecot: dsync-local(user@domain.tld)&lt;cRjZCwGnKWiIvicA2dm5Tw&gt;: Error: Mailbox INBOX: mmap(size=511310568) failed with file /var/vmail/domain.tld/user/Maildir/dovecot.index.cache: Cannot allocate memory </code></pre><p>The error indicates that the <code>dovecot.index.cache</code> file is too big to process, and Dovecot cannot allocate enough memory to handle it.</p> <h1 id="what-are-dovecotindexcache-files">What Are <code>dovecot.index.cache</code> Files?</h1> <p>Dovecot, the most popular IMAP server, uses a set of index files (<code>dovecot.index</code>, <code>dovecot.index.cache</code>, <code>dovecot.index.log</code>, etc.) to speed up mailbox access. The file I had to deal with stores cached message metadata (headers, flags, and preview text) so Dovecot does not have to read each message file in the mailbox every time.</p> Introduction https://pyte.dev/posts/my-first-post/ Sun, 11 May 2025 20:13:49 +0200 https://pyte.dev/posts/my-first-post/ <h1 id="welcome-to-my-blog">Welcome to My Blog!</h1> <p>I’m <strong>Demian</strong>, a <strong>Sysadmin</strong>, <strong>Email Infrastructure enthusiast</strong>, and a passionate <strong>Open Source contributor</strong>. This is where I’ll be sharing what I know about system administration, managing email infrastructure, and contributing to open source projects.</p> <h2 id="what-to-expect">What to Expect</h2> <p>On this blog, I’ll be writing about:</p> <ul> <li><strong>Sysadmin tips and tools</strong>: Everything I’ve learned managing servers, networks, and infrastructure.</li> <li><strong>Email Infrastructure</strong>: Best practices for setting up, securing, and managing email systems.</li> <li><strong>Open Source</strong>: How I contribute to open source projects, and tips for getting started if you want to do the same.</li> </ul> <p>This blog is a space to share knowledge, troubleshoot common issues, and explore new tools and techniques. Whether you’re just getting into system administration, looking for email setup guides, or interested in contributing to open source, you’ll find something useful here.</p> Search https://pyte.dev/search/ Mon, 01 Jan 0001 00:00:00 +0000 https://pyte.dev/search/ <link href="https://pyte.dev/pagefind/pagefind-ui.css" rel="stylesheet"> <script src="https://pyte.dev/pagefind/pagefind-ui.js"></script> <div id="search"></div> <script> window.addEventListener('DOMContentLoaded', (event) => { new PagefindUI({ element: "#search", showSubResults: true }); }); </script>