<?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: Own The Stack</title>
    <description>The latest articles on DEV Community by Own The Stack (@ownthestack).</description>
    <link>https://dev.to/ownthestack</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%2F3970464%2F61546a8b-ee57-4266-930f-c994118cc31d.jpg</url>
      <title>DEV Community: Own The Stack</title>
      <link>https://dev.to/ownthestack</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ownthestack"/>
    <language>en</language>
    <item>
      <title>Why I Bypassed the Cloud Treadmill to Build a 100% Independent Self-Hosted Stack</title>
      <dc:creator>Own The Stack</dc:creator>
      <pubDate>Fri, 05 Jun 2026 22:03:23 +0000</pubDate>
      <link>https://dev.to/ownthestack/why-i-bypassed-the-cloud-treadmill-to-build-a-100-independent-self-hosted-stack-3d1b</link>
      <guid>https://dev.to/ownthestack/why-i-bypassed-the-cloud-treadmill-to-build-a-100-independent-self-hosted-stack-3d1b</guid>
      <description>&lt;p&gt;Philosophy doesn't mean much without execution. If I’m going to advocate for data sovereignty and owning your data, I need to show you exactly what my architecture stands on.&lt;/p&gt;

&lt;p&gt;My project, OWNTHESTACK.co, isn't deployed to a massive managed web service, it doesn't use third-party serverless infrastructure, and it doesn't store media in an invisible corporate bucket. It runs entirely on an independent, flat-rate virtual private server (VPS) running minimal Linux.&lt;/p&gt;

&lt;p&gt;Here is the exact containerized layout and setup powering the application.&lt;br&gt;
The Design Philosophy&lt;/p&gt;

&lt;p&gt;The goal: maximum control, absolute data ownership, and strict network privacy. The host operating system remains completely clean. Everything is modular, portable, and tightly locked down inside isolated internal container environments.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The Core Engine (.NET 8 &amp;amp; React)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The backend processing engine is a clean .NET 8 application. Modern .NET is incredibly fast, memory-efficient, and runs flawlessly inside isolated Linux containers. It handles text payloads and securely encrypted administration sessions. The frontend uses lightweight static production assets served with near-zero resource overhead.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Personal Data Control (PostgreSQL 16)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Every word of text, metadata tag, and background layout setting lives in a localized PostgreSQL 16 data engine running locally inside an isolated container with an explicit disk mount. Backups are raw, automated compressed files controlled by simple shell scripts that back up exactly what matters to an encrypted storage destination I control.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Independent Media Storage (MinIO)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Inline graphics don't stream from a generic public media host or a third-party asset SaaS. They stream straight out of a local MinIO storage vault container running on our hardware using secure, short-lived cryptographic links.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Reversing the Firewall (Cloudflare Tunnels)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This is the most critical privacy and security boundary. If you run an external network port scan on this server's public IP address, port 80 and port 443 are completely closed. Instead of opening the server to the wide-open internet and constantly fighting off automated bot scans, the server runs a secure outbound tunnel daemon. It establishes an encrypted, outbound-only pipeline to the network edge. Web traffic routes securely down this outbound pipe straight to our internal container environment. If it doesn't originate from this authenticated channel, it cannot touch our data.&lt;/p&gt;

&lt;p&gt;I am documenting my entire journey of migrating off corporate platforms, sharing raw configs, and analyzing self-hosted infrastructure. Follow along or subscribe to the raw logs at &lt;a href="https://ownthestack.co/posts/architecture" rel="noopener noreferrer"&gt;OwnTheStack.co&lt;/a&gt;&lt;/p&gt;

</description>
      <category>selfhosted</category>
      <category>architecture</category>
      <category>dotnet</category>
      <category>devops</category>
    </item>
    <item>
      <title>What Am I Actually Depending On? A Practical Approach to Data Sovereignty</title>
      <dc:creator>Own The Stack</dc:creator>
      <pubDate>Fri, 05 Jun 2026 21:57:47 +0000</pubDate>
      <link>https://dev.to/ownthestack/what-am-i-actually-depending-on-a-practical-approach-to-data-sovereignty-dd8</link>
      <guid>https://dev.to/ownthestack/what-am-i-actually-depending-on-a-practical-approach-to-data-sovereignty-dd8</guid>
      <description>&lt;p&gt;Most of us don’t really own our digital lives.&lt;/p&gt;

&lt;p&gt;Our photos live in cloud libraries. Our documents sit in someone else’s storage systems. Our passwords are managed by services we log into, not systems we control. It’s convenient, fast, and mostly invisible.&lt;/p&gt;

&lt;p&gt;But at some point, I started asking a simple question: what am I actually depending on here?&lt;/p&gt;

&lt;p&gt;The more systems I looked into, the more I realized how much personal data flows through platforms I don’t control. What gets stored, how it’s used, where it’s replicated, and who ultimately has access to it is often hidden behind terms of service most people never read. Convenience often comes with tradeoffs that are easy to ignore until they matter.&lt;br&gt;
Thinking Differently About Data Management&lt;/p&gt;

&lt;p&gt;I decided to evaluate where my information lives, how it’s backed up, how portable it is, and what happens if I ever want to leave a service. Not in an extreme way, but in a practical one: reducing dependency, increasing clarity, and keeping control where it matters.&lt;/p&gt;

&lt;p&gt;I broke things. A lot of things. I rebuilt them. I migrated setups that didn’t scale. I replaced tools I thought I needed with simpler systems I could actually explain. And slowly, I started to care less about convenience at any cost, and more about understanding the ground I was standing on.&lt;/p&gt;

&lt;p&gt;The goal isn’t to reject modern tools or pretend everything should be self-hosted. It’s to understand what we use well enough to choose it deliberately instead of passively accepting vendor lock-in.&lt;/p&gt;

&lt;p&gt;Over the next few weeks, I’m putting out raw logs covering:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Self-hosting &amp;amp; app deployment

Data ownership &amp;amp; portability

Docker orchestration &amp;amp; Linux systems

Networking &amp;amp; outbound secure tunnels

Backups &amp;amp; monitoring
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;No schedules, no marketing noise. Just raw building, breaking, and learning what holds up. Check out the project architecture at &lt;a href="//ownthestack.co"&gt;ownthestack.co&lt;/a&gt;&lt;/p&gt;

</description>
      <category>privacy</category>
      <category>opensource</category>
      <category>linux</category>
      <category>sysadmin</category>
    </item>
  </channel>
</rss>
