<?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: Farhan Muzaki</title>
    <description>The latest articles on DEV Community by Farhan Muzaki (@enkuldes).</description>
    <link>https://dev.to/enkuldes</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%2F3105082%2Fa16f213d-c700-4e31-8921-c51548aa6077.png</url>
      <title>DEV Community: Farhan Muzaki</title>
      <link>https://dev.to/enkuldes</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/enkuldes"/>
    <language>en</language>
    <item>
      <title>Self-Hosted Media Server with Jellyfin + Jellyseerr using Docker</title>
      <dc:creator>Farhan Muzaki</dc:creator>
      <pubDate>Thu, 29 May 2025 07:27:07 +0000</pubDate>
      <link>https://dev.to/enkuldes/self-hosted-media-server-with-jellyfin-jellyseerr-using-docker-58d8</link>
      <guid>https://dev.to/enkuldes/self-hosted-media-server-with-jellyfin-jellyseerr-using-docker-58d8</guid>
      <description>&lt;h2&gt;
  
  
  What is Media Server
&lt;/h2&gt;

&lt;p&gt;As I quote from Wikipedia "A &lt;strong&gt;media server&lt;/strong&gt; is a &lt;a href="https://en.wikipedia.org/wiki/Computer_appliance" rel="noopener noreferrer"&gt;computer appliance&lt;/a&gt; or an &lt;a href="https://en.wikipedia.org/wiki/Application_software" rel="noopener noreferrer"&gt;application software&lt;/a&gt; that stores &lt;a href="https://en.wikipedia.org/wiki/Digital_media" rel="noopener noreferrer"&gt;digital media&lt;/a&gt; (video, audio or images) and makes it available over a network.". in simpler terms, a &lt;strong&gt;media server&lt;/strong&gt; mean an app that can be accessed via network to play movies, images or any stored digital media.&lt;/p&gt;

&lt;p&gt;Media server have a lot of options to choose, from Plex, Kodi, etc. But the one im choosing is Jellyfin. Why Jellyfin? Because its open source and free from ads. Before im choosing Jellyfin, I try using Plex, its a good media server, there's a lot of feature in it such as online connectivity with public, but there is one thing I didnt like, that is ads. I dont want to watch my own self hosted video while ads showing on my login page, while im watching the movies. That one things making me run from Plex, and I found Jellyfin. Jellyfin is a relatively new media server, first released in 2018, with active development and solid community support. Other reason is also because I dont have any intention of make my media server be accessible from outside my LAN network so its better to use Jellyfin with its simple configuration.&lt;/p&gt;

&lt;p&gt;I also will add Jellyseer as a plugin for Jellyfin. Jellyseer will be media request management which user on jellyfin can request what movies/animes/series they want to watch. Jellyseer also can be integrated with other *Arr app but I havent configure it. As for now Jellyseer will be used to manage request.&lt;/p&gt;

&lt;h2&gt;
  
  
  Installing Jellyfin &amp;amp; Jellyseer
&lt;/h2&gt;

&lt;p&gt;To install both these apps im gonna use Docker or more specificaly docker-compose. Here are my directory tree:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;📦 Home Lab
├─ jellyfin
│  ├─ docker-compose.yml
│  └─ README.md
└─ jellyseer
   └─ docker-compose.yml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Below are snippets of docker-compose for each jellyfin and jellyseer folder:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Jellyfin docker compose
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;version: "3"
services:
  jellyfin:
    image: lscr.io/linuxserver/jellyfin:latest
    container_name: jellyfin
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Asia/Jakarta
    volumes:
      - ${JELLYFIN_LIBRARY}:/config
      - ${JELLYFIN_TV_SERIES}:/data/tvshows
      - ${JELLYFIN_MOVIES}:/data/movies
      - ${JELLYFIN_ANIME}:/data/anime
    ports:
      - 8096:8096
    restart: unless-stopped

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Jellyseer docker compose
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;version: '3'
services:
  jellyseerr:
    image: fallenbagel/jellyseerr:latest
    container_name: jellyseerr
    environment:
      - LOG_LEVEL=debug
      - TZ=Asia/Jakarta
    ports:
      - 5055:5055
    volumes:
      - ./config:/app/config
    restart: unless-stopped
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here are few explaination regarding my snippets.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;PUID and GUID are user and group identifiers, this useful because sometimes I got an permission issue between our host and container when I are using Docker Volume. By default the value is &lt;code&gt;1000&lt;/code&gt;, but you can reconfirm it on your terminal by running this
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;id your_user
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For my case it's like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;uid=1000(farhan) gid=1000(farhan) groups=1000(farhan)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;TZ basically a timezone setting.&lt;/li&gt;
&lt;li&gt;Volumes or Docker Volume are a way to store/read data outside the container. For example at Jellyseer snippet, I connect the data inside container of &lt;code&gt;/app/config&lt;/code&gt; to host at jellyseer directory, if I put in tree view it would look like this after you successfully run the docker compose.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;📦 Home Lab
└─ jellyseer
   └─ docker-compose.yml
   └─ config
   │  ├─ cache
   │  ├─ db
   │  ├─ logs
   └─ └─ setting.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This also include the Jellfin snippets, the difference is on Jellyfin snippet I'm using environment variable. I set it up by adding it to all users on &lt;code&gt;/etc/environment&lt;/code&gt;, below are my environment variables&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;JELLYFIN_LIBRARY="/home/homelab/jellyfin/config"
# Media Library Path here
JELLYFIN_TV_SERIES="/home/media-library/TV"
JELLYFIN_MOVIES="/home/media-library/Movies"
JELLYFIN_ANIME="/home/media-library/Anime"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;With this being setup now every config/cache related to jellyfin will be stored inside my host &lt;code&gt;/home/homelab/jellyfin/config&lt;/code&gt; path, while my media is being read by jellyfin based on those paths.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ports are mapper between host and container, in this case I use default port of 8096 and 5055.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now let's run the container, I can run it using docker compose command by access its directory&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# incase there is warning when running it, its probably because the environment variables is not refreshed, can be fix it by relogin your SSH/telnet or entering and exiting root
docker compose up -d
# or
sudo docker compose up -d
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It will building and you can see the progress by doing this command&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# remove -f if dont wanna tailing the output
docker logs -f (container_name)
# for jellyfin
docker logs -f jellyfin
# for jellyseer
docker logs -f jellyseerr
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After building is done, I can access it through my IP and port which is&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;192.168.1.97:8096 for Jellyfin&lt;/li&gt;
&lt;li&gt;192.168.1.97:5055 for Jellyseerr&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;After accessing it, you will be guided through wizard on each of them, input each field based on the setting I have added before.&lt;/p&gt;

&lt;p&gt;There is also a lot of plugin I can have on Jellyfin setting, but I will not explain it futher in this article and some of it also a niche plugins that I use to handle my anime/others collection.&lt;/p&gt;

&lt;h2&gt;
  
  
  Visual Overview
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fppzc0txfmxhedg48icui.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fppzc0txfmxhedg48icui.png" alt="Jellyfin Page" width="800" height="384"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foj2n7jawp5i9gsdiw0lh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foj2n7jawp5i9gsdiw0lh.png" alt="Jellyseer Page" width="800" height="382"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Problems
&lt;/h2&gt;

&lt;p&gt;As Im building this the only problems happen actually when setting up environment variables, which after adding the variable and value its doesnt show when testing it using &lt;code&gt;ECHO&lt;/code&gt; command. To fix it I try to reconnect with my telnet/SSH and viola worker correctly, &lt;strong&gt;OR&lt;/strong&gt; can use sudo command when executing docker compose.&lt;/p&gt;

&lt;h2&gt;
  
  
  Enhancement
&lt;/h2&gt;

&lt;p&gt;There are also several enhancement I can add in the future such as:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Integrating Jellyseerr with *Arr Program to automatically find and download requested media. *Arr apps (like Radarr, Sonarr, etc.) are automation tools commonly used in self-hosted media setups to automatically search, download, and manage media files from various sources.&lt;/li&gt;
&lt;li&gt;Better directory for media. As you already read Im using &lt;code&gt;/home&lt;/code&gt; partition to store all of my config and even media, this is bad practice, since &lt;code&gt;/home&lt;/code&gt; partition have different permission for each own folder, so need to manually add permission to it. Suggesting using a new or specific partition to store any configuration or even media, for example creating &lt;code&gt;/srv&lt;/code&gt; partition and having special permission/user access it is a good example.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  💬 What's Next?
&lt;/h2&gt;

&lt;p&gt;That’s it for my Jellyfin + Jellyseerr setup!&lt;/p&gt;

&lt;p&gt;In my next article, I will be focusing on my setup for download tools such qBittorrent and JDownloader. &lt;/p&gt;

&lt;p&gt;If you have questions or suggestions, feel free to drop them in the comments or connect with me on &lt;a href="https://www.linkedin.com/in/fahm13/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;Repository also coming soon! I’ll update this post once I’ve cleaned up and published the full repo with environment examples and configuration notes.&lt;/p&gt;

&lt;p&gt;Thanks for reading!&lt;/p&gt;

</description>
      <category>homelab</category>
      <category>docker</category>
      <category>personalproject</category>
      <category>selfhosted</category>
    </item>
    <item>
      <title>How I Built My Self-Hosted Homelab with Docker on Ubuntu 24.04</title>
      <dc:creator>Farhan Muzaki</dc:creator>
      <pubDate>Sun, 25 May 2025 09:47:10 +0000</pubDate>
      <link>https://dev.to/enkuldes/how-i-built-my-self-hosted-homelab-with-docker-on-ubuntu-2404-1ccc</link>
      <guid>https://dev.to/enkuldes/how-i-built-my-self-hosted-homelab-with-docker-on-ubuntu-2404-1ccc</guid>
      <description>&lt;h2&gt;
  
  
  🧠 Why I Built This Homelab
&lt;/h2&gt;

&lt;p&gt;This has been one of my personal projects in 2024, but I hadn’t had the time (or motivation) to properly document it — until now. &lt;/p&gt;

&lt;p&gt;The main reason I started this was because I had an old laptop (bought in 2014) that kept crashing. I reinstalled it about 3-4 times last year. Usually, my mom uses it for her work since she uses Excel on that. But now that it’s out of commission, I figured — why not turn it into something fun and useful instead of tossing it? There are several ideas for it, one of which is, of course, to create a gaming device out of it, but after some thought rather than just focusing it as a game center, I thought how about a media server or even my own home lab to dev some app, and here we are. So this is what I'm gonna do for this old laptop, I'm gonna create a media server to store movies, animes, or series using Jellyfin, and also just found out that I can also manage my finance/log my income/outcome using Firefly III (I have been using google spreadsheet since 2019).&lt;/p&gt;

&lt;h2&gt;
  
  
  🧰 Hardware Setup
&lt;/h2&gt;

&lt;p&gt;First, I'm gonna show my specs for Asus X455LA.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;CPU: i3-4030U 1.9Ghz, with 2 Core 4 Threads&lt;/li&gt;
&lt;li&gt;RAM: 6GB DDR3L 1333/1600 (2GB+4GB)&lt;/li&gt;
&lt;li&gt;GPU: Intel HD Graphics 4400 Mobile 2GB VRAM&lt;/li&gt;
&lt;li&gt;2x USB 2.0&lt;/li&gt;
&lt;li&gt;1x USB 3.0&lt;/li&gt;
&lt;li&gt;1x Lan Port (RJ45)&lt;/li&gt;
&lt;li&gt;WiFi 802.11 b/g/n &lt;/li&gt;
&lt;li&gt;HDD 500GB (Upgradeable with SSD Sata 2.5")&lt;/li&gt;
&lt;li&gt;HDD 500GB (connected using HDD caddy, replacing my DVD RW slot)&lt;/li&gt;
&lt;li&gt;1 HDD External using USB port (USB 3.0 1TB)&lt;/li&gt;
&lt;li&gt;Integrated Speaker+Microphone&lt;/li&gt;
&lt;li&gt;1x HDMI Port&lt;/li&gt;
&lt;li&gt;1x VGA Port&lt;/li&gt;
&lt;li&gt;1x Audio Jack&lt;/li&gt;
&lt;li&gt;Card Reader (SD Card)&lt;/li&gt;
&lt;li&gt;1 slot of PCIE 4x1 and 1 slot of 2x4.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This server will be using &lt;strong&gt;Ubuntu Server 24.04&lt;/strong&gt; as the main OS, while &lt;strong&gt;docker&lt;/strong&gt; will be used to deploy the applications. There might be some apps that are unable to run with docker and are being installed on the OS itself. &lt;/p&gt;

&lt;h2&gt;
  
  
  🧩 Services &amp;amp; Applications
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Category&lt;/th&gt;
&lt;th&gt;App(s)&lt;/th&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Media Server&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Jellyfin&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Store and stream movies, anime, and series&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Finance&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;Firefly III&lt;/code&gt; + &lt;code&gt;Firefly Importer&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Manage income/expenses, import from spreadsheets&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Download Tools&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;JDownloader 2&lt;/code&gt;, &lt;code&gt;qBitTorrent&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Download manager and torrent client&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Dashboard&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;Homarr&lt;/code&gt;, &lt;code&gt;Dashdot&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Centralized service dashboard&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SQL Tools&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;CloudBeaver&lt;/code&gt;/&lt;code&gt;DBeaver&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Web-based SQL management&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;File Sharing&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Samba&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Share files with Windows devices&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Development&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Git&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Version control for personal projects&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Admin Tools&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Webmin&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Web-based system administration&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Emulation&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;RomM&lt;/code&gt;, &lt;code&gt;EmulatorJS&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;ROM manager with embedded emulator&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Media Requests&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Jellyseer&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Handle media requests for Jellyfin&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;⚠️ Note: Some plugins or services are more niche or personal. I might cover them in future posts if there's interest.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Each app listed above deserves its own deep dive, so I'm gonna break it down:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Media Server Setup using &lt;strong&gt;Jellyfin&lt;/strong&gt;+&lt;strong&gt;Jellyseer&lt;/strong&gt; &amp;amp; Download tools&lt;/li&gt;
&lt;li&gt;Self Host Finance app using &lt;strong&gt;Firefly III&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;My own SQL playground using &lt;strong&gt;Cloudbeaver&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Self-host game ROM Library using &lt;strong&gt;RomM&lt;/strong&gt;+&lt;strong&gt;EmulatorJS&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Web Development using &lt;strong&gt;PHP&lt;/strong&gt; framework &lt;strong&gt;Laravel&lt;/strong&gt; using &lt;strong&gt;Caddy&lt;/strong&gt; and &lt;strong&gt;FrankenPHP&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  📸 Visual Overview
&lt;/h2&gt;

&lt;h3&gt;
  
  
  My Homarr Dashboard
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5cdqi4jqt8heus3iv89i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5cdqi4jqt8heus3iv89i.png" alt="Homarr screenshot" width="800" height="379"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Topology Logic
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqwch806ol94l6rxznbmk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqwch806ol94l6rxznbmk.png" alt="Topology Logic" width="561" height="694"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  💬 What's Next?
&lt;/h2&gt;

&lt;p&gt;In upcoming posts, I’ll dive deeper into each part of this setup. If there’s any app or setup you want me to write about first, let me know in the comments, or connect with me on &lt;a href="https://www.linkedin.com/in/fahm13/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;Thanks for reading!&lt;/p&gt;

</description>
      <category>homelab</category>
      <category>docker</category>
      <category>personalproject</category>
      <category>selfhosted</category>
    </item>
  </channel>
</rss>
