Building a K3s Cluster from Scratch

🚀 Building My K3s Cluster from Scratch: A Hands-On Journey Over a few days I built a K3s cluster from the ground up. It was a deep dive into lightweight Kubernetes: networking hiccups, control-plane setup, and dashboard deployment. Below is a concise, practical walkthrough of what I did, how I debugged issues, and what I learned. 🧱 Phase 1 — Master node setup Install K3s on the master node: curl -sfL https://get.k3s.io | sh - This installs the K3s server, starts the control plane, and generates a join token for worker nodes. ...

October 12, 2025 Â· 3 min Â· Taner

Automating Development Tools Installation with WinGet and DSC

Automating Development Tools Installation with WinGet and DSC Streamline the installation of essential development tools using winget (Windows Package Manager) and Desired State Configuration (DSC). With this approach, you can automate the setup of applications and tools, ensuring consistency across your environment. General Overview This configuration leverages winget to install applications and tools automatically. It adopts the version format configurationVersion: 0.2.0. Resources are defined using the Microsoft.WinGet.DSC schema for WinGetPackage, simplifying the setup process. Key Resources and Their Purpose 1. Git Installs Git for version control, supporting collaborative coding and repository management. Pre-release versions are enabled (allowPrerelease: true). Package ID: Git.Git. 2. GitHub CLI Facilitates command-line interaction with GitHub repositories, streamlining workflows. Pre-release versions are enabled. Package ID: GitHub.cli. 3. WinMerge Provides powerful tools for comparing and merging files, a must-have for developers. Pre-releases are supported. Package ID: WinMerge.WinMerge. 4. Microsoft .NET SDK 8.0 Installs the latest version of .NET SDK (8.0) for application development. Pre-releases are enabled for early access. Package ID: Microsoft.DotNet.SDK.8. 5. Visual Studio 2022 Community Edition Sets up Visual Studio 2022 Community Edition for comprehensive development. Includes support for pre-release features. Package ID: Microsoft.VisualStudio.2022.Community. 6. VS Components Installs additional Visual Studio workloads as specified in the .vsconfig file located in the ${WinGetConfigRoot} directory. Depends on the installation of Visual Studio. DependsOn: VisualStudio. 7. Visual Studio Code Deploys VS Code, a lightweight and versatile code editor. Supports pre-release versions for cutting-edge features. Package ID: Microsoft.VisualStudioCode. How It Works Directives: Specify metadata like descriptions and enable pre-release versions. Settings: Define the package ID and source (winget) for each tool. Dependencies: Manage installation order; e.g., VS Components require Visual Studio to be installed first. Configuration Example Here is an example configuration using the Microsoft.WinGet.DSC schema: ...

March 15, 2025 Â· 3 min Â· Taner

Specialized Docker Containers: A Detailed Breakdown

Here’s a more detailed explanation of each of my Docker containers and what they specialize in: 1. Authelia Authelia provides identity verification through single sign-on (SSO) and two-factor authentication (2FA). It’s ideal for securing your self-hosted services, requiring users to verify their identity before accessing them. You can configure authentication methods like one-time passwords (OTP) or push notifications. 2. CrowdSec CrowdSec is a modern intrusion detection system that analyzes server logs and identifies suspicious behaviors. It acts as a collaborative threat defense mechanism, sharing community-wide information to prevent cyberattacks. It can block harmful IP addresses, making it a robust tool for proactive security. ...

March 15, 2025 Â· 3 min Â· Taner

Windows → Debian: Manual SSH Key Setup

🪟 Windows → Debian: Manual SSH Key Setup ✅ 1. Generate an SSH key on Windows If you haven’t already, open PowerShell or Git Bash and run: ssh-keygen -t ed25519 -C "[email protected]" Press Enter to accept the default location (C:\Users\<YourName>\.ssh\id_ed25519). Optionally set a passphrase for extra security, or leave it empty for passwordless login. 📋 2. Copy the public key to the Debian server Option A: Pipe the public key over SSH (PowerShell) This method appends your public key directly into the remote user’s authorized_keys file: ...

March 10, 2025 Â· 2 min Â· Taner