<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
    <channel>
        <title>All Posts - IT Guy Journals</title>
        <link>https://www.itguyjournals.com/posts/</link>
        <description>All Posts | IT Guy Journals</description>
        <generator>Hugo -- gohugo.io</generator><language>en</language><managingEditor>luka.krapic@gmail.com (Luka Krapić)</managingEditor>
            <webMaster>luka.krapic@gmail.com (Luka Krapić)</webMaster><lastBuildDate>Tue, 05 Aug 2025 15:25:19 &#43;0100</lastBuildDate><atom:link href="https://www.itguyjournals.com/posts/" rel="self" type="application/rss+xml" /><item>
    <title>Installing Cilium and Multus on Talos OS for Advanced Kubernetes Networking</title>
    <link>https://www.itguyjournals.com/installing-cilium-and-multus-on-talos-os-for-advanced-kubernetes-networking/</link>
    <pubDate>Tue, 05 Aug 2025 15:25:19 &#43;0100</pubDate>
    <author>Luka Krapić</author>
    <guid>https://www.itguyjournals.com/installing-cilium-and-multus-on-talos-os-for-advanced-kubernetes-networking/</guid>
    <description><![CDATA[<p>In a <a href="../deploying-ha-kubernetes-cluster-with-proxmox-terraform-and-talos-os/" rel="">previous article</a>, we explored deploying a highly available Kubernetes cluster using Talos OS, running on Proxmox and automated with Terraform. That setup provided a clean, immutable base for Kubernetes. However, its default networking stack—based on Flannel and kube-proxy—offers limited capabilities when it comes to modern network observability, performance tuning, or multi-interface pods.</p>
<p>In this guide, we’ll walk through installing <strong>Cilium</strong> as the primary CNI and <strong>Multus</strong> as a secondary CNI meta-plugin on Talos OS. This combination introduces support for advanced features such as <strong>eBPF-powered</strong> networking, per-pod visibility, and attaching pods to multiple physical or logical networks.</p>]]></description>
</item>
<item>
    <title>Deploying a Highly Available Kubernetes Cluster on Proxmox with Terraform and Talos OS</title>
    <link>https://www.itguyjournals.com/deploying-ha-kubernetes-cluster-with-proxmox-terraform-and-talos-os/</link>
    <pubDate>Sat, 02 Aug 2025 12:05:21 &#43;0100</pubDate>
    <author>Luka Krapić</author>
    <guid>https://www.itguyjournals.com/deploying-ha-kubernetes-cluster-with-proxmox-terraform-and-talos-os/</guid>
    <description><![CDATA[<p>A highly available Kubernetes cluster in a homelab setup creates opportunities to test distributed systems, automation, and failure recovery under real-world conditions. This guide walks through one approach to building such a cluster using <strong>Proxmox</strong> for virtualization, <strong>Terraform</strong> for provisioning, and <strong>Talos OS</strong> for running the Kubernetes nodes.</p>
<p>This setup provides declarative infrastructure and immutable operating systems, eliminating the need for traditional Linux administration—no SSH, no shell, and no drifting configuration. The result is a consistent, secure, and maintainable cluster architecture suitable for long-term experimentation or light production use.</p>]]></description>
</item>
<item>
    <title>How Telemetry Systems Evolve with Infrastructure: Example Architectures from Startup to Enterprise</title>
    <link>https://www.itguyjournals.com/how-telemetry-systems-evolve-with-infrastructure/</link>
    <pubDate>Sun, 20 Jul 2025 13:44:59 &#43;0200</pubDate>
    <author>Luka Krapić</author>
    <guid>https://www.itguyjournals.com/how-telemetry-systems-evolve-with-infrastructure/</guid>
    <description><![CDATA[<p>In <a href="../introduction-to-telemetry-systems/" rel="">our previous post</a>, we introduced the fundamentals of telemetry—covering logs, metrics, traces, and security monitoring. In this follow-up, we’re shifting from theory to practice: what do telemetry stacks actually look like in real-world environments?</p>
<p>The answer depends heavily on infrastructure. In reality, <strong>infrastructure decisions come first</strong>, and the telemetry stack adapts to support what’s already in place—not the other way around. Observability evolves as a response to growing scale, complexity, and operational maturity.</p>]]></description>
</item>
<item>
    <title>Building a Home Virtualization Server With Proxmox</title>
    <link>https://www.itguyjournals.com/building-a-home-virtualization-server-with-proxmox/</link>
    <pubDate>Sat, 05 Jul 2025 19:21:00 &#43;0200</pubDate>
    <author>Luka Krapić</author>
    <guid>https://www.itguyjournals.com/building-a-home-virtualization-server-with-proxmox/</guid>
    <description><![CDATA[<p>Running a dedicated virtualization server at home is a practical way to centralize always-on workloads like self-hosted services, infrastructure tooling, or test environments. In this post, we’ll walk through one possible setup using Proxmox VE as the hypervisor, Ansible for configuration management, and Packer to create reusable virtual machine templates.</p>
<p>The configuration is tailored for a single-node homelab using a compact mini-PC, but the principles can be adapted to larger or different environments. All playbooks, templates, and configuration files used in this guide are available in <a href="https://github.com/LukaK/blog-resources/tree/main/building-virtualization-server-with-proxmox" target="_blank" rel="noopener noreffer ">this GitHub repository</a> for reference and reuse.</p>]]></description>
</item>
<item>
    <title>Structured Logging in Python</title>
    <link>https://www.itguyjournals.com/structured-logging-in-python/</link>
    <pubDate>Sat, 21 Jun 2025 17:50:06 &#43;0200</pubDate>
    <author>Luka Krapić</author>
    <guid>https://www.itguyjournals.com/structured-logging-in-python/</guid>
    <description><![CDATA[<p>In modern DevOps workflows, observability plays an important role. Operating distributed systems often depends on telemetry data, including metrics, traces, and logs. Logs are frequently a detailed source of information during troubleshooting. Traditional unstructured log messages, written as free-form text, can make it difficult to extract useful information automatically.</p>
<p>Structured logging organizes log data into a consistent, machine-readable format. For a primer on telemetry systems and observability fundamentals, see the blog post <a href="../introduction-to-telemetry-systems" rel="">Introduction to Telemetry Systems</a>.</p>]]></description>
</item>
<item>
    <title>Introduction to Telemetry Systems: The Backbone of Observability</title>
    <link>https://www.itguyjournals.com/introduction-to-telemetry-systems/</link>
    <pubDate>Sat, 31 May 2025 12:31:42 &#43;0200</pubDate>
    <author>Luka Krapić</author>
    <guid>https://www.itguyjournals.com/introduction-to-telemetry-systems/</guid>
    <description><![CDATA[<p>Modern software systems are complex, distributed, and constantly evolving. Whether you&rsquo;re deploying microservices in Kubernetes or managing legacy systems in the cloud, one truth holds: you need visibility. That’s where telemetry systems come in. They provide the data and structure needed to observe, understand, and operate IT systems with confidence.</p>
<p>In this post, we’ll explore the fundamentals of telemetry systems, how they work, the types of data they handle, and why they’re indispensable for achieving observability.</p>]]></description>
</item>
<item>
    <title>Building a Portable FastAPI Backend for AWS Lambda and ECS Using Terraform</title>
    <link>https://www.itguyjournals.com/building-fastapi-backend-for-aws-lambda-and-ecs-using-terraform/</link>
    <pubDate>Fri, 02 May 2025 20:59:24 &#43;0100</pubDate>
    <author>Luka Krapić</author>
    <guid>https://www.itguyjournals.com/building-fastapi-backend-for-aws-lambda-and-ecs-using-terraform/</guid>
    <description><![CDATA[<p>In the <a href="../building-backend-apis-with-fastapi-on-aws-lambda" rel="">previous post</a>, we explored how to deploy a FastAPI application on AWS Lambda using an ASGI adapter. This is a great option for early-stage projects: it requires zero infrastructure management, supports rapid iteration, and scales automatically.</p>
<p>But as your application matures, Lambda’s trade-offs can become limiting:</p>
<ul>
<li><strong>Cost scaling</strong> with consistent traffic</li>
<li><strong>Compute/memory coupling</strong> and lack of vertical scaling</li>
<li><strong>Package size limits</strong> and cold starts</li>
</ul>
<p>That’s why many teams adopt a container-based workflow that can run on both <strong>Lambda (via container images)</strong> and <strong>ECS Fargate</strong>. With a little planning, you can build once and deploy to either platform with minimal friction.</p>]]></description>
</item>
<item>
    <title>Setting Up a Synology NAS for Your Homelab: The Complete Guide</title>
    <link>https://www.itguyjournals.com/setting-up-a-synology-nas-for-your-homelab/</link>
    <pubDate>Sat, 26 Apr 2025 13:07:10 &#43;0100</pubDate>
    <author>Luka Krapić</author>
    <guid>https://www.itguyjournals.com/setting-up-a-synology-nas-for-your-homelab/</guid>
    <description><![CDATA[<p>When building or expanding a homelab, setting up a <strong>Synology NAS</strong> is one of several strong options for managing local storage, backups, and remote access. It&rsquo;s a flexible platform that offers many features typically found in enterprise storage solutions, but in a form factor and price point that&rsquo;s accessible to home users.</p>
<p>If you&rsquo;re considering moving more of your important files, services, or backups off of third-party cloud providers and into a system you control, a NAS can be a great fit. (You can read more about why I personally chose Synology <a href="../why-i-switched-to-synology-nas" rel="">here</a>.</p>]]></description>
</item>
<item>
    <title>Cloud Storage Is Getting Expensive — Here’s Why I Switched to Synology NAS</title>
    <link>https://www.itguyjournals.com/why-i-switched-to-synology-nas/</link>
    <pubDate>Sat, 19 Apr 2025 19:13:10 &#43;0100</pubDate>
    <author>Luka Krapić</author>
    <guid>https://www.itguyjournals.com/why-i-switched-to-synology-nas/</guid>
    <description><![CDATA[<p>These days, everything lives in the cloud — photos, videos, documents, backups. And for a while, it felt like cloud storage was the perfect solution: easy to access, always backed up, and simple to share with others.</p>
<p>But if you’re like me and deal with a <em>lot</em> of files — especially big ones like videos or high-res photos — you’ve probably hit the same wall I did: <strong>cloud storage gets really expensive, really fast</strong>.</p>]]></description>
</item>
<item>
    <title>Building Backend APIs with FastAPI on AWS Lambda</title>
    <link>https://www.itguyjournals.com/building-backend-apis-with-fastapi-on-aws-lambda/</link>
    <pubDate>Sat, 12 Apr 2025 19:24:32 &#43;0100</pubDate>
    <author>Luka Krapić</author>
    <guid>https://www.itguyjournals.com/building-backend-apis-with-fastapi-on-aws-lambda/</guid>
    <description><![CDATA[<p>One of the trade-offs of working in the cloud is the risk of vendor lock-in. While cloud platforms offer powerful tools and scalability, they can also tie you into their ecosystem, making it harder to pivot or migrate down the road.</p>
<p>When it comes to building backend APIs in Python, you have a few great frameworks at your disposal—<strong>Django</strong>, <strong>FastAPI</strong>, and <strong>Flask</strong>—each with its own level of complexity and opinionation. Django is feature-rich and great for full-stack apps, Flask is minimal and flexible, but <strong>FastAPI</strong> stands out as a modern, async-first framework that makes it incredibly easy to build fast, clean, and production-ready APIs.</p>]]></description>
</item>
<item>
    <title>Building Websites at Scale With Aws CloudFront and Hugo</title>
    <link>https://www.itguyjournals.com/building-websites-at-scale-with-aws-cloudfront-and-hugo/</link>
    <pubDate>Tue, 14 Jan 2025 10:34:47 &#43;0100</pubDate>
    <author>Luka Krapić</author>
    <guid>https://www.itguyjournals.com/building-websites-at-scale-with-aws-cloudfront-and-hugo/</guid>
    <description><![CDATA[<p>Building websites has become easier than ever. Numerous platforms and third-party providers now offer tools to create and host websites within minutes, complete with custom domains, analytics, and sleek graphical interfaces.</p>
<p>For straightforward websites or smaller-scale projects, these platforms can be a convenient choice. However, they often fall short when it comes to flexibility, automation, and cost-effectiveness at scale. Many lack robust CLI (Command Line Interface) support for streamlining tasks, can become expensive as your needs grow, or demand significant management effort and a steep learning curve.</p>]]></description>
</item>
<item>
    <title>Organizing Terraform Projects With Terragrunt</title>
    <link>https://www.itguyjournals.com/organizing-terraform-projects-with-terragrunt/</link>
    <pubDate>Wed, 25 Sep 2024 16:56:47 &#43;0100</pubDate>
    <author>Luka Krapić</author>
    <guid>https://www.itguyjournals.com/organizing-terraform-projects-with-terragrunt/</guid>
    <description><![CDATA[<p>Infrastructure-as-Code (IaC) tools, like Terraform, have become essential for managing infrastructure in a scalable, repeatable, and automated way. Terraform helps engineers define, provision, and manage cloud resources across multiple providers. However, as infrastructure complexity grows, managing Terraform configurations becomes challenging. This is where Terragrunt—a thin wrapper for Terraform—comes into play. It enhances Terraform&rsquo;s capabilities, making it easier to manage large-scale infrastructures efficiently.</p>
<p>In this blog, we will explore how to organize Terraform projects using Terragrunt, and how it solves common challenges with Terraform&rsquo;s limitations such as managing backend configurations, large state files, and dependencies between multiple stacks.</p>]]></description>
</item>
<item>
    <title>Building SOHO Network With Ubiquiti UniFi: Step-By-Step Guide</title>
    <link>https://www.itguyjournals.com/building-soho-network-with-ubiquiti-unifi/</link>
    <pubDate>Sun, 22 Sep 2024 16:56:47 &#43;0100</pubDate>
    <author>Luka Krapić</author>
    <guid>https://www.itguyjournals.com/building-soho-network-with-ubiquiti-unifi/</guid>
    <description><![CDATA[<p>In this guide, we’ll take you through building a segmented, secure SOHO (Small Office/Home Office) network using Ubiquiti UniFi hardware. The network will be tailored to isolate different types of traffic, set up VLANs for specific use cases, and apply strong firewall rules to protect sensitive data and infrastructure.</p>
<p>While the principles outlined here are generally applicable to most networks, this implementation is specifically designed for UniFi OS version 4.06 and Network Application version 8.4.62.</p>]]></description>
</item>
<item>
    <title>Organizing Terraform Modules</title>
    <link>https://www.itguyjournals.com/organizing-terraform-modules/</link>
    <pubDate>Wed, 04 Sep 2024 16:56:47 &#43;0100</pubDate>
    <author>Luka Krapić</author>
    <guid>https://www.itguyjournals.com/organizing-terraform-modules/</guid>
    <description><![CDATA[<p>As Terraform projects grow in complexity, organizing your modules effectively becomes critical to maintaining clean, reusable, and scalable infrastructure code. How you choose to organize these modules can significantly impact collaboration, code reuse, and overall project maintainability. In this blog post, we will explore three primary approaches to organizing Terraform modules: using local modules, storing all modules in one remote repository, and distributing modules across multiple remote repositories. We’ll discuss the benefits and limitations of each approach, with practical examples to help you decide which strategy best suits your needs.</p>]]></description>
</item>
<item>
    <title>Tiered Access To CloudFront Content With Self-Signed Cookies</title>
    <link>https://www.itguyjournals.com/tiered-access-to-cloudfront-content-with-self-signed-cookies/</link>
    <pubDate>Fri, 19 Jul 2024 16:56:47 &#43;0100</pubDate>
    <author>Luka Krapić</author>
    <guid>https://www.itguyjournals.com/tiered-access-to-cloudfront-content-with-self-signed-cookies/</guid>
    <description><![CDATA[<p>This blog post is a follow-up to our previous post, where we implemented tiered access to S3 data using presigned URLs.</p>
<p>In most production applications, CloudFront is used to serve static content to users.
In this post, we will explore how to implement restricted access when serving content through CloudFront.</p>
<p>You can find the complete example <a href="https://github.com/LukaK/blog-resources/tree/main/cloudfront-signed-cookies?ref=itguyjournals.com" target="_blank" rel="noopener noreffer ">here</a>.</p>
<h2 id="what-is-cloudfront">What is CloudFront?</h2>
<p>In simple terms, CloudFront is a content delivery network (CDN) managed by AWS. A CDN is a network of servers deployed close to end users, serving as a caching layer to improve content delivery speed and reliability.</p>]]></description>
</item>
<item>
    <title>Multi-Account Cloud Deployment With Terraform And Github Actions</title>
    <link>https://www.itguyjournals.com/multi-account-cloud-deployment-with-terraform-and-github-actions/</link>
    <pubDate>Wed, 26 Jun 2024 16:56:47 &#43;0100</pubDate>
    <author>Luka Krapić</author>
    <guid>https://www.itguyjournals.com/multi-account-cloud-deployment-with-terraform-and-github-actions/</guid>
    <description><![CDATA[<p>In this blog post, we will look at how to implement a multi-account deployment pipeline on AWS using GitHub Actions and Terraform.</p>
<p>We will assume that you have access to at least two AWS accounts: one to hold pipeline resources and one target account where resources will be deployed.</p>
<h2 id="architecture">Architecture</h2>
<div id="id-1"><figure><figcaption>
      <h4>Fig 1. Architecture</h4>
    </figcaption>
</figure>
</div>
<p>We will use two accounts: a pipeline account and a target account. The target account is your dev/staging/prod account. Usually, there is more than one target account in a given pipeline, but we will use one for simplicity. The same approach can be extended to an arbitrary number of target accounts.</p>]]></description>
</item>
<item>
    <title>Tiered Access To S3 Data With Presigned URLs</title>
    <link>https://www.itguyjournals.com/tiered-access-to-s3-data-with-presigned-urls/</link>
    <pubDate>Tue, 11 Jun 2024 16:56:47 &#43;0100</pubDate>
    <author>Luka Krapić</author>
    <guid>https://www.itguyjournals.com/tiered-access-to-s3-data-with-presigned-urls/</guid>
    <description><![CDATA[<p>Managing access to your Amazon S3 data is crucial for ensuring security and efficiency in your cloud architecture. You typically have three options for managing access to S3 data for client applications: using Amazon CloudFront distribution, leveraging S3 presigned URLs, or routing through backend APIs.</p>
<p>In this blog post, we will delve into S3 presigned URLs as an effective method for implementing tiered access to your S3 data. We&rsquo;ll discuss their benefits, limitations, and provide a straightforward example to illustrate their use.</p>]]></description>
</item>
<item>
    <title>Kubernetes Secrets Management Using Kubernetes Sealed Secrets</title>
    <link>https://www.itguyjournals.com/kubernetes-secrets-management-with-sealed-secrets/</link>
    <pubDate>Thu, 23 May 2024 16:56:47 &#43;0100</pubDate>
    <author>Luka Krapić</author>
    <guid>https://www.itguyjournals.com/kubernetes-secrets-management-with-sealed-secrets/</guid>
    <description><![CDATA[<p>Security is a major concern in continuous integration (CI), especially when managing sensitive information like API keys, passwords, and other secrets. For Kubernetes resources, Sealed Secrets offer an effective solution for securely managing sensitive information within your repository. In this blog we will explore what are Sealed Secrets, how to use them and some common management tasks around Sealed Secrets.</p>
<h2 id="what-are-sealed-secrets">What are Sealed Secrets?</h2>
<p>Sealed Secrets is a set of Kubernetes resources, controller and custom resource definition, that enables secure storage of secrets in your version control system (VCS). Unlike standard Kubernetes Secrets, which are base64-encoded and easily decoded, Sealed Secrets use asymmetric encryption to ensure your secrets remain encrypted until deployed to your Kubernetes cluster. Once deployed, the Sealed Secrets controller decrypts them into regular Kubernetes secrets, making them accessible to your applications.</p>]]></description>
</item>
<item>
    <title>Building An AI Playground With Ollama And Open WebUI: A Hands-On Introduction For Beginners</title>
    <link>https://www.itguyjournals.com/building-an-ai-playground-with-ollama-and-open-webui/</link>
    <pubDate>Sat, 11 May 2024 16:56:47 &#43;0100</pubDate>
    <author>Luka Krapić</author>
    <guid>https://www.itguyjournals.com/building-an-ai-playground-with-ollama-and-open-webui/</guid>
    <description><![CDATA[<p>Large Language Models (LLMs) have been making waves in the field of artificial intelligence (AI) for quite some time, and their popularity continues to soar. These advanced models have the remarkable ability to understand, generate, and respond to human language with unprecedented accuracy and depth. With this surge in interest comes the rise of open source solutions that enable individuals and organizations to host LLMs locally.</p>
<p>In this blog post we will explore how to turn your existing local computer/server into a simple ai server.</p>]]></description>
</item>
<item>
    <title>Securing Kubernetes Cluster With Cert-Manager And Self-Signed Certificates</title>
    <link>https://www.itguyjournals.com/securing-kubernetes-cluster-with-cert-manager-and-self-signed-certificates/</link>
    <pubDate>Mon, 06 May 2024 16:56:47 &#43;0100</pubDate>
    <author>Luka Krapić</author>
    <guid>https://www.itguyjournals.com/securing-kubernetes-cluster-with-cert-manager-and-self-signed-certificates/</guid>
    <description><![CDATA[<p>Kubernetes is an incredible tool for deploying, scaling, and managing containerized applications. One crucial aspect of kubernetes security is ensuring that communication between different entities is secure. By default, kubernetes management network is secure and pod network is handled by 3rd party plugin which mostly support encryption.</p>
<p>Today we will focus on properly securing outside-in web communication to our cluster with Cert-Manager and self-signed certificates. We assume that you have access to working kubernetes cluster with ingress controller.</p>]]></description>
</item>
</channel>
</rss>
