<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Posts on /home/fel1x</title><link>https://phuchoang.sbs/posts/</link><description>Recent content in Posts on /home/fel1x</description><generator>Hugo -- gohugo.io</generator><language>en</language><managingEditor>xuanphuc.a1gv@gmail.com (Felix Hoang)</managingEditor><webMaster>xuanphuc.a1gv@gmail.com (Felix Hoang)</webMaster><copyright>© 2026 Felix Hoang</copyright><lastBuildDate>Mon, 24 Nov 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://phuchoang.sbs/posts/index.xml" rel="self" type="application/rss+xml"/><item><title>Vault (Part 4): Dynamic Secrets for Kubernetes Pods with External Secrets Operator</title><link>https://phuchoang.sbs/posts/gitops-external-secrets-vault/</link><pubDate>Mon, 24 Nov 2025 00:00:00 +0000</pubDate><author>xuanphuc.a1gv@gmail.com (Felix Hoang)</author><guid>https://phuchoang.sbs/posts/gitops-external-secrets-vault/</guid><description>&lt;p&gt;This is Part 4 of the Hashicorp Vault series. In &lt;a href="https://phuchoang.sbs/posts/gitops-github-actions-hashicorp-vault/" target="_blank" rel="noreferrer"&gt;Part 1&lt;/a&gt;, we bootstrapped Vault. In &lt;a href="https://phuchoang.sbs/posts/gitops-github-actions-terraform-ansible/" target="_blank" rel="noreferrer"&gt;Part 2&lt;/a&gt;, we built our CI/CD pipeline. In &lt;a href="https://phuchoang.sbs/posts/gitops-kubernetes-oidc-vault/" target="_blank" rel="noreferrer"&gt;Part 3&lt;/a&gt;, we finally killed the static &lt;code&gt;kubeconfig&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Vault (Part 3): Secure Kubernetes Authentication with HashiCorp Vault OIDC</title><link>https://phuchoang.sbs/posts/gitops-kubernetes-oidc-vault/</link><pubDate>Sun, 23 Nov 2025 00:00:00 +0000</pubDate><author>xuanphuc.a1gv@gmail.com (Felix Hoang)</author><guid>https://phuchoang.sbs/posts/gitops-kubernetes-oidc-vault/</guid><description>&lt;p&gt;This is Part 3 of the Hashicorp Vault series. In &lt;a href="https://phuchoang.sbs/posts/gitops-github-actions-hashicorp-vault/" target="_blank" rel="noreferrer"&gt;Part 1&lt;/a&gt;, we bootstrapped Vault. In &lt;a href="https://phuchoang.sbs/posts/gitops-github-actions-terraform-ansible/" target="_blank" rel="noreferrer"&gt;Part 2&lt;/a&gt;, we built the full CI/CD pipeline. Now, we&amp;rsquo;re solving the final, massive headache: &lt;strong&gt;getting secure, dynamic &lt;code&gt;kubectl&lt;/code&gt; access.&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Vault (Part 2): Secure On-Prem Automation with Ephemeral Runners and Tailscale</title><link>https://phuchoang.sbs/posts/gitops-github-actions-terraform-ansible/</link><pubDate>Mon, 17 Nov 2025 00:00:00 +0000</pubDate><author>xuanphuc.a1gv@gmail.com (Felix Hoang)</author><guid>https://phuchoang.sbs/posts/gitops-github-actions-terraform-ansible/</guid><description>&lt;p&gt;This is Part 2 of the Hashicorp Vault series. Part 1 covered bootstrapping and configuring HashiCorp Vault (the one-time &lt;code&gt;terraform-admin&lt;/code&gt; work) and the design goals for Zero Trust secrets management.&lt;/p&gt;</description></item><item><title>Vault (Part 1): HashiCorp Vault for Zero Trust Secrets Management</title><link>https://phuchoang.sbs/posts/gitops-github-actions-hashicorp-vault/</link><pubDate>Sun, 16 Nov 2025 00:00:00 +0000</pubDate><author>xuanphuc.a1gv@gmail.com (Felix Hoang)</author><guid>https://phuchoang.sbs/posts/gitops-github-actions-hashicorp-vault/</guid><description>&lt;p&gt;In the last two parts of the &lt;strong&gt;On-Premise 101&lt;/strong&gt; series, I showed you how to provision and bootstrap a full Kubernetes cluster. Now, I&amp;rsquo;m tearing part of it down and rebuilding the entire &lt;em&gt;workflow&lt;/em&gt;. Why? The project&amp;rsquo;s goal was always automation, but I hit a wall. The manual steps to &lt;em&gt;set up&lt;/em&gt; that automation - like managing secrets and SSH keys - became a huge liability.&lt;/p&gt;</description></item><item><title>On-Premise 101 (Part 5): From Terraform VMs to a K8s Cluster with Ansible</title><link>https://phuchoang.sbs/posts/on-premise-provison-ansible/</link><pubDate>Tue, 11 Nov 2025 00:00:00 +0000</pubDate><author>xuanphuc.a1gv@gmail.com (Felix Hoang)</author><guid>https://phuchoang.sbs/posts/on-premise-provison-ansible/</guid><description>&lt;p&gt;People are often scared to learn &lt;code&gt;Kubernetes&lt;/code&gt; because it&amp;rsquo;s difficult to set up an environment to play around with. Sure, you can use a project like &lt;code&gt;minikube&lt;/code&gt; to learn on your own, but running it on your laptop seems limited, and you may not get to experience all the awesome features &lt;code&gt;Kubernetes&lt;/code&gt; offers (remember, it was born for high availability). Or, if you have money, you can use a managed &lt;code&gt;Kubernetes&lt;/code&gt; cluster from one of the cloud providers. Often, they&amp;rsquo;ve abstracted away so many things under the hood that you only need to learn &lt;code&gt;kubectl&lt;/code&gt; and you&amp;rsquo;re good to go.&lt;/p&gt;</description></item><item><title>On-Premise 101 (Part 4): Automating 12 VMs creation on Proxmox with Terraform</title><link>https://phuchoang.sbs/posts/on-premise-provision-terraform/</link><pubDate>Thu, 06 Nov 2025 00:00:00 +0000</pubDate><author>xuanphuc.a1gv@gmail.com (Felix Hoang)</author><guid>https://phuchoang.sbs/posts/on-premise-provision-terraform/</guid><description>&lt;p&gt;I&amp;rsquo;m the kind of person who will happily spend 10 hours building an automation script just to save 10 minutes of manual work every day. If that sounds like you, you&amp;rsquo;re in the right place.&lt;/p&gt;</description></item><item><title>Building an AI ArXiv Pipeline: Is n8n the Future of Automation? Not Quite</title><link>https://phuchoang.sbs/posts/arxiv-n8n-docling/</link><pubDate>Sun, 02 Nov 2025 00:00:00 +0000</pubDate><author>xuanphuc.a1gv@gmail.com (Felix Hoang)</author><guid>https://phuchoang.sbs/posts/arxiv-n8n-docling/</guid><description>&lt;p&gt;This is my story of how I attempt to build an AI-powered pipeline for ArXiv papers. It was a journey that started with a cool idea about AI agents and ended with me wrestling Docker, n8n, and Python into submission.&lt;/p&gt;</description></item><item><title>On-Premise 101 (Part 3): My "Fearless" NAS Build with Virtualized TrueNAS, ZFS, and Cloud Backups</title><link>https://phuchoang.sbs/posts/on-premise-storage/</link><pubDate>Sun, 02 Nov 2025 00:00:00 +0000</pubDate><author>xuanphuc.a1gv@gmail.com (Felix Hoang)</author><guid>https://phuchoang.sbs/posts/on-premise-storage/</guid><description>&lt;p&gt;In the previous parts of this series, we went from a single hand-me-down PC to a full 3-node cluster, and then we installed Proxmox as our hypervisor. We even managed to pass through a GPU to a VM for near-native performance.&lt;/p&gt;</description></item><item><title>On-Premise 101 (Part 2): Proxmox, the "Glue" for My Homelab</title><link>https://phuchoang.sbs/posts/on-premise-hypervisor/</link><pubDate>Thu, 30 Oct 2025 00:00:00 +0000</pubDate><author>xuanphuc.a1gv@gmail.com (Felix Hoang)</author><guid>https://phuchoang.sbs/posts/on-premise-hypervisor/</guid><description>&lt;p&gt;In the previous part, we covered how I started playing around with my hand-me-down computer and then escalated to building a whole 3-node cluster. It&amp;rsquo;s been a 3-year journey, and there have been so many changes to the software stack I host. But no matter what, there&amp;rsquo;s one thing I&amp;rsquo;ve used consistently from beginning to end: &lt;code&gt;Proxmox&lt;/code&gt; (Hypervisor). So before we dive into how I deploy my applications on Docker or Kubernetes, I&amp;rsquo;ll show you the glue that connects the hardware we just built to all the software we&amp;rsquo;re going to deploy.&lt;/p&gt;</description></item><item><title>On-Premise 101 (Part 1): Building a 3-Node Cluster</title><link>https://phuchoang.sbs/posts/on-premise-hardware/</link><pubDate>Tue, 28 Oct 2025 00:00:00 +0000</pubDate><author>xuanphuc.a1gv@gmail.com (Felix Hoang)</author><guid>https://phuchoang.sbs/posts/on-premise-hardware/</guid><description>&lt;p&gt;You might have heard about the recent AWS outage that caused many services to go down. To think that half of the internet relies on a single service is crazy, even if it might be the best in its field. The engineers at AWS have done many things to prevent this, such as high availability, multi-region, zones, etc., but if a critical part of it still goes down, the whole thing goes down too. Therefore, if you don&amp;rsquo;t want to give all your money and trust to a single company, you might want to explore the on-premise option, which is self-hosting.&lt;/p&gt;</description></item><item><title>Building a Secure Network for Homelab with OpenWRT, NextDNS, Tailscale, and a VPS</title><link>https://phuchoang.sbs/posts/self-hosted-network-design/</link><pubDate>Mon, 27 Oct 2025 00:00:00 +0000</pubDate><author>xuanphuc.a1gv@gmail.com (Felix Hoang)</author><guid>https://phuchoang.sbs/posts/self-hosted-network-design/</guid><description>&lt;p&gt;A long time ago, my house only had 1 router, located on the third floor. So whenever we needed to access the internet while having dinner on the first floor, we needed to enable 4G or walk near the stairs just to receive a fraction of the WiFi signal. My father decided to give me an important task, which was to figure out how to solve this issue. I initially bought a simple WiFi extender located on the second floor, but after using it for a month, even though we could receive a strong signal from it, we couldn&amp;rsquo;t access the internet because the signal from the router on the 3rd floor to the WiFi extender on the 2nd floor was still really weak.&lt;/p&gt;</description></item><item><title>Accessing a Homelab from a Locked-Down PC with a Travel Router</title><link>https://phuchoang.sbs/posts/self-hosted-travel-router/</link><pubDate>Mon, 20 Oct 2025 00:00:00 +0000</pubDate><author>xuanphuc.a1gv@gmail.com (Felix Hoang)</author><guid>https://phuchoang.sbs/posts/self-hosted-travel-router/</guid><description>&lt;p&gt;A week ago, my laptop died. When I booted it up, it said something like, &lt;code&gt;fTPM is corrupted, press Y to reset or N to do nothing&lt;/code&gt;. Neither of them helped me boot into my machine. So I had a severe mental attack back then, because that machine was the primary one that helped me do my work for school, my lab, and my personal projects. I was lucky to have my friend lend me an old laptop of his, but it was pretty bulky, so I figured I couldn&amp;rsquo;t bring it to school. Therefore, I had to go to the school library to do my work on its public computers.&lt;/p&gt;</description></item><item><title>Running Nintendo Switch Games on iPhone at 60FPS – Free, No Jailbreak Needed</title><link>https://phuchoang.sbs/posts/emulation-switch-ipad/</link><pubDate>Thu, 03 Apr 2025 00:00:00 +0000</pubDate><author>xuanphuc.a1gv@gmail.com (Felix Hoang)</author><guid>https://phuchoang.sbs/posts/emulation-switch-ipad/</guid><description>&lt;p&gt;If you thought the biggest gaming news was the upcoming Switch 2, think again. The emulation community has made a breakthrough: you can now run Nintendo Switch games on your iPhone or iPad at buttery-smooth 60FPS—all offline, with no jailbreak, no shady VPNs, and zero sketchiness.&lt;/p&gt;</description></item><item><title>Automating Manga Translations: My Journey to a Seamless Reading Experience</title><link>https://phuchoang.sbs/posts/self-hosted-manga-trans/</link><pubDate>Mon, 03 Mar 2025 00:00:00 +0000</pubDate><author>xuanphuc.a1gv@gmail.com (Felix Hoang)</author><guid>https://phuchoang.sbs/posts/self-hosted-manga-trans/</guid><description>&lt;h2 class="relative group"&gt;Video demo:&#10; &lt;div id="video-demo" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#video-demo" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h2&gt;&#10;&lt;lite-youtube videoid="RgkC246Ul44" playlabel="RgkC246Ul44" params=""&gt;&lt;/lite-youtube&gt;&#10;&#10;&lt;hr&gt;&#10;&#10;&lt;h2 class="relative group"&gt;The Struggle: Why I Needed This&#10; &lt;div id="the-struggle-why-i-needed-this" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-struggle-why-i-needed-this" aria-label="Anchor"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h2&gt;&#10;&lt;p&gt;Have you ever stumbled upon a manga so niche and obscure that it never gets an official English release? That was me—desperately trying to read intimate and underrated series that weren’t even on MangaDex, likely due to copyright issues.&lt;/p&gt;</description></item><item><title>Organizing My Digital Life - A Nerdy Journey Across Drives, File Management</title><link>https://phuchoang.sbs/posts/productitvity-file-management/</link><pubDate>Thu, 16 Nov 2023 00:00:00 +0000</pubDate><author>xuanphuc.a1gv@gmail.com (Felix Hoang)</author><guid>https://phuchoang.sbs/posts/productitvity-file-management/</guid><description>&lt;p&gt;We all love the idea of being super organized, right? We make these grand plans, give it our all for a few weeks or months, and then, bam! We&amp;rsquo;re back to the good old &amp;ldquo;throw it in the downloads folder with everything else&amp;rdquo; routine. It happens to the best of us, and I&amp;rsquo;m guilty too. But hey, even though I&amp;rsquo;ve still got loads of room for improvement, I can proudly say I&amp;rsquo;ve gotten way faster at finding my files.&lt;/p&gt;</description></item><item><title>Organizing My Digital Life - How My Workspace Evolved from Chaos to Hackintosh</title><link>https://phuchoang.sbs/posts/productivity-workspace/</link><pubDate>Sat, 04 Nov 2023 00:00:00 +0000</pubDate><author>xuanphuc.a1gv@gmail.com (Felix Hoang)</author><guid>https://phuchoang.sbs/posts/productivity-workspace/</guid><description>&lt;p&gt;Today, I would like to introduce you to the journey of optimizing my workspace environment, or in simpler terms, my desk setup. In fact, I am not someone who strictly adheres to principles in life. However, I really enjoy working in a disciplined environment and always strive to optimize it for effective studying and working. To achieve the setup I have today, I had to tear down and rebuild this workstation more than 10 times. Finally, I am truly satisfied with it. It not only satisfies me aesthetically but also makes me eager to work as soon as I step into this room (well, not quite true because nowadays most of the time I feel most productive when working from a coffee shop&amp;hellip;).&lt;/p&gt;</description></item><item><title>My STEAM Hacks 2023 experience</title><link>https://phuchoang.sbs/posts/hackathon-steam-hacks-2023/</link><pubDate>Fri, 20 Oct 2023 00:00:00 +0000</pubDate><author>xuanphuc.a1gv@gmail.com (Felix Hoang)</author><guid>https://phuchoang.sbs/posts/hackathon-steam-hacks-2023/</guid><description>&lt;p&gt;Today, I want to share my experience with you about the project I worked on during the Steam Hacks 2023 competition. Although my team did not win any major awards for this project, it was an incredible learning opportunity for me, particularly in terms of coding. Moreover, I also gained valuable insights into the collaborative process through working with my amazing new friend from Son La - Minh Chau.&lt;/p&gt;</description></item><item><title>My First Server Was Office Trash: A Self-Hosting Story</title><link>https://phuchoang.sbs/posts/self-hosted-initial-story/</link><pubDate>Sun, 27 Aug 2023 00:00:00 +0000</pubDate><author>xuanphuc.a1gv@gmail.com (Felix Hoang)</author><guid>https://phuchoang.sbs/posts/self-hosted-initial-story/</guid><description>&lt;p&gt;It all started with a computer my mom saved from the trash heap at her office. It was a standard HP Prodesk 600 G4—nothing special, and since I already had a PC and a laptop, I had no idea what to do with it. Just installing Windows on it felt like a waste. I knew it could be something more than just another desktop collecting dust.&lt;/p&gt;</description></item><item><title>Lesson Learned in Three-day Trip to Sapa Hope Center</title><link>https://phuchoang.sbs/posts/volunteer-sapa-hope-center/</link><pubDate>Thu, 30 Jun 2022 00:00:00 +0000</pubDate><author>xuanphuc.a1gv@gmail.com (Felix Hoang)</author><guid>https://phuchoang.sbs/posts/volunteer-sapa-hope-center/</guid><description>&lt;p&gt;&lt;em&gt;This is my diary about the trip to Sapa Hope Center with 10 colleagues from Summit Education - a renowned English language teaching center in Hanoi. Therefore, this trip is aimed at fostering cultural exchange and teaching English and basic skills to students from Grade 1 to Grade 2 in Sapa, Lao Cai.&lt;/em&gt;&lt;/p&gt;</description></item></channel></rss>