<?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: Ashu_Bharti</title>
    <description>The latest articles on DEV Community by Ashu_Bharti (@ashusosuke).</description>
    <link>https://dev.to/ashusosuke</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4082705%2Fd3ef2ddc-621a-434a-823c-5759e421ce88.jpg</url>
      <title>DEV Community: Ashu_Bharti</title>
      <link>https://dev.to/ashusosuke</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ashusosuke"/>
    <language>en</language>
    <item>
      <title>Tired of Subscriptions, So I Built My Own Server</title>
      <dc:creator>Ashu_Bharti</dc:creator>
      <pubDate>Tue, 18 Aug 2026 07:09:56 +0000</pubDate>
      <link>https://dev.to/ashusosuke/tired-of-subscriptions-so-i-built-my-own-server-14m</link>
      <guid>https://dev.to/ashusosuke/tired-of-subscriptions-so-i-built-my-own-server-14m</guid>
      <description>&lt;p&gt;Another month, another stack of bills for a music app, a movie app, cloud storage — all for things I could technically host myself. So I did.&lt;/p&gt;

&lt;p&gt;That question turned into a home server on a repurposed laptop, a full Docker stack, and a Python pipeline that's had four separate fights with YouTube's anti-bot systems in a single week. And once I had a server I actually controlled, the ideas didn't stop — a personal webpage, automations, my own music/movie player, an AI agent to manage it all. Here's how it came together.&lt;/p&gt;

&lt;p&gt;The setup&lt;/p&gt;

&lt;p&gt;A 16GB/i5 laptop I wasn't using became a Debian 13 VM (headless, VirtualBox), reachable from anywhere via Tailscale. One Docker stack runs on top:&lt;/p&gt;

&lt;p&gt;Jellyfin — my own Netflix&lt;br&gt;
Navidrome — my own Spotify&lt;br&gt;
Samba — a network drive from any device&lt;br&gt;
Portainer / Homepage — management + dashboard&lt;br&gt;
PostgreSQL — shared DB engine&lt;br&gt;
Pi-hole — network-wide ad block (in progress)&lt;/p&gt;

&lt;p&gt;No more monthly bills for things a spare laptop can do for free.&lt;/p&gt;

&lt;p&gt;The hard part: filling it with music&lt;/p&gt;

&lt;p&gt;Hosting a Spotify clone is easy. Filling it with your actual library isn't. Spotify's Feb 2026 API change blocked the clean OAuth route, so I improvised: export playlists as CSVs (via Exportify), then built MusicVault — a pipeline that parses them, finds each track on YouTube, downloads it, and auto-generates playlists Navidrome can serve.&lt;/p&gt;

&lt;p&gt;5,748 tracks. 97 playlists. Starting from zero.&lt;/p&gt;

&lt;p&gt;Four fights with YouTube&lt;br&gt;
Storage — FLAC files were about to blow past my 200GB disk. Switched everything to MP3.&lt;br&gt;
Silent failures — my own script was hiding the real error. Fixed the logging first, which revealed YouTube's bot-check. Fixed with browser cookies.&lt;br&gt;
"Format not available" — YouTube now requires solving a JS challenge for some streams. Installed a JS runtime + solver, and caught a sneaky bug where ~ silently failed inside a command flag.&lt;br&gt;
Mass 403 errors — a live, actively-evolving yt-dlp issue other users were hitting that same week. Fixed by forcing a different YouTube client. Even the fix had a gotcha: a tabs-vs-spaces mismatch silently blocked my first patch attempt.&lt;/p&gt;

&lt;p&gt;Four unrelated failure modes, back to back — each one real debugging, not copy-paste.&lt;/p&gt;

&lt;p&gt;What's next&lt;br&gt;
A personal webpage, hosted off the server&lt;br&gt;
Automations — disk monitoring, auto-cleanup, alerts when things break&lt;br&gt;
A custom-built music/movie player instead of default UIs&lt;br&gt;
An AI agent layer to manage the server in plain language&lt;br&gt;
Eventually: Nextcloud, Gitea, self-hosted photo backup&lt;/p&gt;

&lt;p&gt;What started as "stop paying for four apps" turned into a home-lab I'm still adding to every week — and that's the part I like most.&lt;/p&gt;

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