<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Melih Savdert&#39;s Tech Blog</title>
    <link>https://msavdert.github.io/</link>
    <description>Recent content on Melih Savdert&#39;s Tech Blog</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <copyright>© 2026 Melih Savdert</copyright>
    <lastBuildDate>Tue, 05 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://msavdert.github.io/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
      <title>Proxmox VE 9.x Installation on Hetzner: A Complete ZFS Setup Guide</title>
      <link>https://msavdert.github.io/posts/proxmox-9-hetzner-zfs-guide/</link>
      <pubDate>Tue, 05 May 2026 00:00:00 +0000</pubDate>
      
      <guid>https://msavdert.github.io/posts/proxmox-9-hetzner-zfs-guide/</guid>
      <description>&lt;p&gt;Deploying Proxmox VE on a Hetzner dedicated bare metal server with a single public IP can be challenging because Hetzner does not provide standard IPMI/KVM access out of the box unless requested.&lt;/p&gt;&#xA;&lt;p&gt;In this guide, we will walk through the step-by-step process of downloading Proxmox VE 9.x, installing it via QEMU inside the Hetzner Rescue System using a &lt;strong&gt;ZFS RAID0&lt;/strong&gt; layout for maximum performance across two disks, configuring native SDN-based NAT, and setting up Tailscale for secure remote management.&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>Securing Proxmox VE with Cloudflare Tunnel: A Zero Trust Approach</title>
      <link>https://msavdert.github.io/posts/securing-proxmox-with-cloudflare-tunnel/</link>
      <pubDate>Mon, 27 Apr 2026 00:00:00 +0000</pubDate>
      
      <guid>https://msavdert.github.io/posts/securing-proxmox-with-cloudflare-tunnel/</guid>
      <description>&lt;p&gt;In my &lt;a href=&#34;https://msavdert.github.io/posts/proxmox-hetzner-deployment-guide/&#34; &gt;previous post&lt;/a&gt;, we set up Proxmox VE on a Hetzner dedicated server. While the installation is complete, accessing the Proxmox dashboard usually involves opening port &lt;code&gt;8006&lt;/code&gt; to the public internet or using a VPN.&#xA;A more modern and secure approach is to use &lt;strong&gt;Cloudflare Tunnels (Cloudflared)&lt;/strong&gt;. This allows you to access your dashboard via a nice hostname (e.g., &lt;code&gt;proxmox.yourdomain.com&lt;/code&gt;) without opening any inbound ports on your server.&lt;/p&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Why Cloudflare Tunnels?&#xA;    &lt;div id=&#34;why-cloudflare-tunnels&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#why-cloudflare-tunnels&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;No Inbound Ports&lt;/strong&gt;: You can keep your firewall completely closed to the public internet.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Identity-Based Access&lt;/strong&gt;: You can add Cloudflare Access rules (SSO, 2FA) in front of your Proxmox login.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Automated SSL&lt;/strong&gt;: Cloudflare handles the SSL/TLS certificates automatically.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;1. Prerequisites&#xA;    &lt;div id=&#34;1-prerequisites&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#1-prerequisites&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A Proxmox VE server (see the &lt;a href=&#34;https://msavdert.github.io/posts/proxmox-hetzner-deployment-guide/&#34; &gt;installation guide&lt;/a&gt;).&lt;/li&gt;&#xA;&lt;li&gt;A domain managed by Cloudflare.&lt;/li&gt;&#xA;&lt;li&gt;A Cloudflare Zero Trust account (Free tier is fine).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;2. Setting Up the Tunnel in Cloudflare Dashboard&#xA;    &lt;div id=&#34;2-setting-up-the-tunnel-in-cloudflare-dashboard&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#2-setting-up-the-tunnel-in-cloudflare-dashboard&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Log in to the &lt;a href=&#34;https://dash.cloudflare.com/&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Cloudflare Dashboard&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Navigate to &lt;strong&gt;Zero Trust &amp;gt; Networks &amp;gt; Tunnels&lt;/strong&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Click &lt;strong&gt;Create a tunnel&lt;/strong&gt; and name it (e.g., &lt;code&gt;proxmox-hetzner&lt;/code&gt;).&lt;/li&gt;&#xA;&lt;li&gt;Select &lt;strong&gt;Cloudflared&lt;/strong&gt; as the connector.&lt;/li&gt;&#xA;&lt;li&gt;Choose your environment (e.g., &lt;strong&gt;Debian 64-bit&lt;/strong&gt;).&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;3. Installing Cloudflared on Proxmox&#xA;    &lt;div id=&#34;3-installing-cloudflared-on-proxmox&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#3-installing-cloudflared-on-proxmox&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Back in your Proxmox terminal, follow these steps to install the agent:&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>Proxmox VE on Hetzner Bare Metal: The Complete Deployment Guide</title>
      <link>https://msavdert.github.io/posts/proxmox-hetzner-deployment-guide/</link>
      <pubDate>Sun, 26 Apr 2026 00:00:00 +0000</pubDate>
      
      <guid>https://msavdert.github.io/posts/proxmox-hetzner-deployment-guide/</guid>
      <description>&lt;p&gt;Deploying Proxmox VE on a Hetzner Dedicated Server can be a bit tricky due to Hetzner&amp;rsquo;s specific network security policies. In this guide, we will walk through the process of installing Proxmox VE on a fresh Debian 13 (Trixie) installation and configuring a modern, scalable networking stack using Software-Defined Networking (SDN).&lt;/p&gt;&#xA;&lt;p&gt;If you are looking to expose your Proxmox dashboard securely without opening ports, check out my follow-up guide: &lt;a href=&#34;https://msavdert.github.io/posts/securing-proxmox-with-cloudflare-tunnel/&#34; &gt;Securing Proxmox VE with Cloudflare Tunnel&lt;/a&gt;.&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>Building the Ultimate &#39;No-Sudo&#39; Modern Dotfiles: A Native &amp; Secure Approach</title>
      <link>https://msavdert.github.io/posts/no-sudo-modern-dotfiles/</link>
      <pubDate>Thu, 16 Apr 2026 00:00:00 +0000</pubDate>
      
      <guid>https://msavdert.github.io/posts/no-sudo-modern-dotfiles/</guid>
      <description>&lt;p&gt;Managing my developer environment across multiple machines (macOS, Ubuntu, Oracle Linux, and minimal Docker containers) has always been a challenge. Most dotfiles setups I&amp;rsquo;ve seen rely on brittle helper scripts, global &lt;code&gt;sudo&lt;/code&gt; installations, or manual token handling.&lt;/p&gt;&#xA;&lt;p&gt;I decided to fix this by building a &lt;strong&gt;fully native, no-sudo, and secure&lt;/strong&gt; dotfiles infrastructure from the ground up. Here’s how I modernized my workflow and why it’s a game-changer for my daily productivity.&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>Documenting My Shift to Platform Engineering</title>
      <link>https://msavdert.github.io/posts/shift-to-platform-engineering/</link>
      <pubDate>Thu, 09 Apr 2026 00:00:00 +0000</pubDate>
      
      <guid>https://msavdert.github.io/posts/shift-to-platform-engineering/</guid>
      <description>&lt;p&gt;I am in the middle of a career shift.&lt;/p&gt;&#xA;&lt;p&gt;For years, I worked close to legacy database systems. That experience taught me how to think carefully, solve production problems, and respect reliability.&lt;/p&gt;&#xA;&lt;p&gt;Now I am moving toward platform engineering.&lt;/p&gt;&#xA;&lt;p&gt;To make that shift visible and real, I started a public GitHub repository:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/msavdert/legacy-dba-to-platform-engineer&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;legacy-dba-to-platform-engineer&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;This repository is my working log. I will use it to document what I learn, what I build, and how my thinking changes over time.&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>Setting Up GitHub Pages with Custom Subdomain Using Cloudflare DNS</title>
      <link>https://msavdert.github.io/posts/github-pages-cloudflare-setup/</link>
      <pubDate>Fri, 27 Feb 2026 00:00:00 +0000</pubDate>
      
      <guid>https://msavdert.github.io/posts/github-pages-cloudflare-setup/</guid>
      <description>&lt;p&gt;This guide provides the official, recommended steps to configure a custom subdomain (e.g., &lt;code&gt;blog.savdert.com&lt;/code&gt;) for GitHub Pages using Cloudflare as your DNS provider, based on GitHub&amp;rsquo;s official documentation.&lt;/p&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;1. Configure GitHub Pages&#xA;    &lt;div id=&#34;1-configure-github-pages&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#1-configure-github-pages&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;p&gt;First, you need to tell your GitHub repository that you intend to use a custom domain.&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Navigate to your GitHub repository.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Go to &lt;strong&gt;Settings &amp;gt; Pages&lt;/strong&gt; (under the &amp;ldquo;Code and automation&amp;rdquo; section).&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>Getting Started with Pigsty: Self-Hosting PostgreSQL Like a Pro</title>
      <link>https://msavdert.github.io/posts/getting-started-with-pigsty/</link>
      <pubDate>Thu, 26 Feb 2026 00:00:00 +0000</pubDate>
      
      <guid>https://msavdert.github.io/posts/getting-started-with-pigsty/</guid>
      <description>&lt;p&gt;Pigsty is an open-source, battery-included PostgreSQL distribution that allows you to self-host PostgreSQL databases like a professional RDS (Relational Database Service). Developed by Vonng, Pigsty provides a comprehensive platform for deploying, managing, and monitoring PostgreSQL clusters with enterprise-grade features.&lt;/p&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;What is Pigsty?&#xA;    &lt;div id=&#34;what-is-pigsty&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#what-is-pigsty&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty stands for &amp;ldquo;PostgreSQL In Great STYle&amp;rdquo; and encompasses Postgres, Infrastructure, Graphics, Service, Toolbox, and more. It&amp;rsquo;s designed to make PostgreSQL deployment as easy as possible while offering advanced capabilities that rival commercial database services.&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>Building a Modern Tech Blog with Hugo, Blowfish, and GitHub Actions</title>
      <link>https://msavdert.github.io/posts/how-this-blog-was-built/</link>
      <pubDate>Sun, 15 Feb 2026 00:00:00 +0000</pubDate>
      
      <guid>https://msavdert.github.io/posts/how-this-blog-was-built/</guid>
      <description>&lt;p&gt;Building a fast, lightweight, and modern developer blog doesn&amp;rsquo;t have to require heavy server infrastructure or database systems. In this article, I will walk you through the exact technical details of how this blog was initialized, customized, and automated using Hugo, the Blowfish theme, Git submodules, and GitHub Actions.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;The Core Stack&#xA;    &lt;div id=&#34;the-core-stack&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#the-core-stack&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Static Site Generator:&lt;/strong&gt; &lt;a href=&#34;https://gohugo.io/&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Hugo&lt;/a&gt; (known for being incredibly fast to build).&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Theme:&lt;/strong&gt; &lt;a href=&#34;https://blowfish.page/&#34;  target=&#34;_blank&#34; rel=&#34;noreferrer&#34;&gt;Blowfish&lt;/a&gt; (a highly configurable, responsive, and aesthetically premium Hugo theme built with Tailwind CSS).&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Hosting &amp;amp; CI/CD:&lt;/strong&gt; GitHub Pages deployed automatically via a GitHub Actions workflow.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Step 1: Repository Initialization &amp;amp; GitHub Setup&#xA;    &lt;div id=&#34;step-1-repository-initialization--github-setup&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#step-1-repository-initialization--github-setup&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;p&gt;To build a personal site hosted on GitHub Pages, we start by duplicating a starter template.&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>Welcome to my Platform &amp; DevOps Blog</title>
      <link>https://msavdert.github.io/posts/hello-world/</link>
      <pubDate>Sun, 01 Feb 2026 00:00:00 +0000</pubDate>
      
      <guid>https://msavdert.github.io/posts/hello-world/</guid>
      <description>&lt;p&gt;Welcome to my new technical blog! Here, I will be sharing guides, architectural insights, and hands-on tutorials about platform engineering, cloud-native deployments, database administration, and automating complex systems.&lt;/p&gt;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;What We Will Cover&#xA;    &lt;div id=&#34;what-we-will-cover&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#what-we-will-cover&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&lt;p&gt;In-depth technical articles on the following domains:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Platform Engineering:&lt;/strong&gt; Building internal developer platforms (IDPs), Infrastructure as Code (IaC) patterns, and developer self-service tools.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Kubernetes:&lt;/strong&gt; Cloud-native architecture, container orchestration, scaling, ingress management, and operators.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;DevOps &amp;amp; CI/CD:&lt;/strong&gt; Software delivery pipelines, automating GitOps workflows (e.g., ArgoCD, Flux), and security scanning.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Database Administration (DBA):&lt;/strong&gt; Designing high-availability database architectures, automated backups, performance tuning, and database reliability engineering.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Stay tuned for upcoming deep dives!&lt;/p&gt;</description>
      
    </item>
    
  </channel>
</rss>
