<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Kushagra Kasbi</title>
    <description>The latest articles on DEV Community by Kushagra Kasbi (@kushagrakasbi).</description>
    <link>https://dev.to/kushagrakasbi</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F545822%2Fc2c36275-3588-4013-9fc9-f6d58913ecaf.png</url>
      <title>DEV Community: Kushagra Kasbi</title>
      <link>https://dev.to/kushagrakasbi</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kushagrakasbi"/>
    <language>en</language>
    <item>
      <title>How I Transformed My Old Gaming PC into a Powerful Home Server</title>
      <dc:creator>Kushagra Kasbi</dc:creator>
      <pubDate>Sat, 20 Sep 2025 18:48:59 +0000</pubDate>
      <link>https://dev.to/kushagrakasbi/how-i-transformed-my-old-gaming-pc-into-a-powerful-home-server-12gn</link>
      <guid>https://dev.to/kushagrakasbi/how-i-transformed-my-old-gaming-pc-into-a-powerful-home-server-12gn</guid>
      <description>&lt;p&gt;A detailed breakdown of my first home server build using TrueNAS Scale, Docker, ZFS, and a suite of self-hosted applications for media, photos, and AI.&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;After months of planning and learning, I finally completed my first home server build, and I wanted to document the entire process and final architecture. My primary goal was to repurpose an old gaming PC into a reliable, multi-functional server for my family's needs, focusing on data ownership and privacy. This post covers the hardware, storage strategy, software stack, and the intricate networking setup.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Hardware
&lt;/h3&gt;

&lt;p&gt;The foundation of this project is my retired gaming rig. It provides more than enough power for my use cases, especially with a dedicated GPU for video transcoding.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;CPU:&lt;/strong&gt; Intel i5-7600k&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Motherboard:&lt;/strong&gt; Gigabyte GA-B250M-D2V&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;RAM:&lt;/strong&gt; 32GB DDR4&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GPU:&lt;/strong&gt; Zotac Geforce GTX 1060 3GB&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PSU:&lt;/strong&gt; Corsair VS550&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The Operating System and Storage
&lt;/h3&gt;

&lt;p&gt;I chose &lt;strong&gt;TrueNAS Scale&lt;/strong&gt; as the host OS for its robustness, excellent ZFS support, and native Docker capabilities. My storage is configured as follows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;OS Drive:&lt;/strong&gt; 500GB Crucial SATA SSD&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;andromeda&lt;/code&gt; Pool (4TB Mirror):&lt;/strong&gt; Dedicated ZFS mirror for family photos and videos via Immich.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;orion&lt;/code&gt; Pool (2TB Mirror):&lt;/strong&gt; A ZFS mirror for all media files and, crucially, persistent storage for all Docker application configurations.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;comet&lt;/code&gt; Pool (1TB Stripe):&lt;/strong&gt; A single-disk pool for non-critical, temporary data.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The Self-Hosted Services (via Docker)
&lt;/h3&gt;

&lt;p&gt;All services run as Docker containers, managed via the &lt;strong&gt;Portainer&lt;/strong&gt; UI. My stack is built around three core use cases.&lt;/p&gt;

&lt;h4&gt;
  
  
  1. Automated Media Server
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Streaming:&lt;/strong&gt; Jellyfin (leveraging the GTX 1060 for hardware transcoding).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Automation:&lt;/strong&gt; The full *Arr stack (Sonarr, Radarr, Bazarr, Prowlarr) for a "set it and forget it" media library.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Requests:&lt;/strong&gt; Jellyseers provides a user-friendly request portal.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Privacy:&lt;/strong&gt; All downloaders (qBittorrent, Sabnzbd) are routed through a &lt;strong&gt;Gluetun&lt;/strong&gt; VPN container.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  2. Private Photo Cloud
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Immich:&lt;/strong&gt; This is the star of the show. It provides a self-hosted Google Photos alternative, automatically backing up photos from our mobile devices.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  3. Local AI Hub
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;OpenWebUI &amp;amp; LiteLLM:&lt;/strong&gt; A powerful combination to create a local ChatGPT-like interface that can connect to multiple LLM APIs.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The Networking Architecture
&lt;/h3&gt;

&lt;p&gt;This was the most challenging and rewarding part. I implemented a three-tiered access system using &lt;strong&gt;Nginx Proxy Manager&lt;/strong&gt;, &lt;strong&gt;Cloudflare&lt;/strong&gt;, and &lt;strong&gt;Tailscale&lt;/strong&gt;.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Local DNS (&lt;code&gt;*.local.mydomain.com&lt;/code&gt;):&lt;/strong&gt; For fast and reliable access on the home network.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Tailscale VPN (&lt;code&gt;*.tail.mydomain.com&lt;/code&gt;):&lt;/strong&gt; Secure access from anywhere in the world by simply activating the VPN on a device.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Cloudflare Tunnels (&lt;code&gt;service.mydomain.com&lt;/code&gt;):&lt;/strong&gt; For the few services I want to expose publicly, I use a secure Cloudflare Tunnel with Google OAuth for an extra layer of authentication. No open ports on my router!&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  What's Next?
&lt;/h3&gt;

&lt;p&gt;The journey doesn't end here. My roadmap includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Home Assistant:&lt;/strong&gt; For centralizing and automating smart home devices.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AdGuard Home:&lt;/strong&gt; For network-wide ad and tracker blocking.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Robust Backups:&lt;/strong&gt; Implementing a 3-2-1 backup strategy by using TrueNAS Cloud Sync to push encrypted snapshots of my &lt;code&gt;andromeda&lt;/code&gt; (photos) and &lt;code&gt;orion&lt;/code&gt; (app-configs) pools to Backblaze B2.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This project has been an incredible learning experience. Building and managing your own private cloud is a powerful way to take control of your data and learn a ton in the process.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Feel free to check out the full documentation on my GitHub!&lt;/strong&gt; [&lt;a href="https://github.com/kushagrakasbi/KryNet-Homelab/tree/main" rel="noopener noreferrer"&gt;https://github.com/kushagrakasbi/KryNet-Homelab/tree/main&lt;/a&gt;]&lt;/p&gt;

&lt;p&gt;Let me know your thoughts or if you have any questions in the comments!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>homelab</category>
      <category>opensource</category>
      <category>selfhosted</category>
    </item>
  </channel>
</rss>
