<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Caddy on Thariq&#39;s workplace</title>
    <link>https://blog.aristocat.in/tags/caddy/</link>
    <description>Recent content in Caddy on Thariq&#39;s workplace</description>
    <image>
      <title>Thariq&#39;s workplace</title>
      <url>https://blog.aristocat.in/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E</url>
      <link>https://blog.aristocat.in/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E</link>
    </image>
    <generator>Hugo -- 0.147.1</generator>
    <language>en</language>
    <copyright>thariq shah</copyright>
    <lastBuildDate>Wed, 22 Jul 2026 02:56:00 +0530</lastBuildDate>
    <atom:link href="https://blog.aristocat.in/tags/caddy/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Self-Hosting Ente Photos Behind a Cloudflare Tunnel: Preserving Request Integrity Through the Proxy Chain</title>
      <link>https://blog.aristocat.in/posts/self-hosting-ente-photos/</link>
      <pubDate>Wed, 22 Jul 2026 02:56:00 +0530</pubDate>
      <guid>https://blog.aristocat.in/posts/self-hosting-ente-photos/</guid>
      <description>&lt;h2 id=&#34;summary&#34;&gt;Summary&lt;/h2&gt;
&lt;p&gt;This is a complete account of standing up &lt;a href=&#34;https://ente.com&#34;&gt;Ente&lt;/a&gt; — an end-to-end encrypted photo and video backup service — on a home server, exposed to the internet through a Cloudflare Tunnel, with mobile and web clients connecting to it from arbitrary networks. The straightforward part of this project was running &lt;code&gt;docker compose up&lt;/code&gt;. The interesting part, and the reason this write-up exists, is a single architectural constraint that determines almost every other decision in the stack: &lt;strong&gt;Ente&amp;rsquo;s storage layer issues AWS SigV4 pre-signed URLs directly to the client, and pre-signed URL validation is byte-for-byte sensitive to header mutation along the request path.&lt;/strong&gt; Any reverse proxy sitting between the client and the object store is a candidate for silently breaking uploads and downloads — and Cloudflare&amp;rsquo;s edge, which every hostname routed through a Cloudflare Tunnel passes through, is exactly this kind of proxy.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
