↓ Skip to main content
Melih Savdert

Melih Savdert

Platform Engineer | DevOps | DBA | Kubernetes

Recent

Proxmox VE 9.x Installation on Hetzner: A Complete ZFS Setup Guide

·1551 words·8 mins· loading
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. 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 ZFS RAID0 layout for maximum performance across two disks, configuring native SDN-based NAT, and setting up Tailscale for secure remote management.

Securing Proxmox VE with Cloudflare Tunnel: A Zero Trust Approach

·501 words·3 mins· loading
In my previous post, we set up Proxmox VE on a Hetzner dedicated server. While the installation is complete, accessing the Proxmox dashboard usually involves opening port 8006 to the public internet or using a VPN. A more modern and secure approach is to use Cloudflare Tunnels (Cloudflared). This allows you to access your dashboard via a nice hostname (e.g., proxmox.yourdomain.com) without opening any inbound ports on your server. Why Cloudflare Tunnels? # No Inbound Ports: You can keep your firewall completely closed to the public internet. Identity-Based Access: You can add Cloudflare Access rules (SSO, 2FA) in front of your Proxmox login. Automated SSL: Cloudflare handles the SSL/TLS certificates automatically. 1. Prerequisites # A Proxmox VE server (see the installation guide). A domain managed by Cloudflare. A Cloudflare Zero Trust account (Free tier is fine). 2. Setting Up the Tunnel in Cloudflare Dashboard # Log in to the Cloudflare Dashboard. Navigate to Zero Trust > Networks > Tunnels. Click Create a tunnel and name it (e.g., proxmox-hetzner). Select Cloudflared as the connector. Choose your environment (e.g., Debian 64-bit). 3. Installing Cloudflared on Proxmox # Back in your Proxmox terminal, follow these steps to install the agent:

Proxmox VE on Hetzner Bare Metal: The Complete Deployment Guide

·705 words·4 mins· loading
Deploying Proxmox VE on a Hetzner Dedicated Server can be a bit tricky due to Hetzner’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). If you are looking to expose your Proxmox dashboard securely without opening ports, check out my follow-up guide: Securing Proxmox VE with Cloudflare Tunnel.

Building the Ultimate 'No-Sudo' Modern Dotfiles: A Native & Secure Approach

·463 words·3 mins· loading
Managing my developer environment across multiple machines (macOS, Ubuntu, Oracle Linux, and minimal Docker containers) has always been a challenge. Most dotfiles setups I’ve seen rely on brittle helper scripts, global sudo installations, or manual token handling. I decided to fix this by building a fully native, no-sudo, and secure dotfiles infrastructure from the ground up. Here’s how I modernized my workflow and why it’s a game-changer for my daily productivity.

Documenting My Shift to Platform Engineering

·136 words·1 min· loading
I am in the middle of a career shift. For years, I worked close to legacy database systems. That experience taught me how to think carefully, solve production problems, and respect reliability. Now I am moving toward platform engineering. To make that shift visible and real, I started a public GitHub repository: legacy-dba-to-platform-engineer 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.

Setting Up GitHub Pages with Custom Subdomain Using Cloudflare DNS

·422 words·2 mins· loading
This guide provides the official, recommended steps to configure a custom subdomain (e.g., blog.savdert.com) for GitHub Pages using Cloudflare as your DNS provider, based on GitHub’s official documentation. 1. Configure GitHub Pages # First, you need to tell your GitHub repository that you intend to use a custom domain. Navigate to your GitHub repository. Go to Settings > Pages (under the “Code and automation” section).