# MacOS with enabled Private Relay - Extremely slow upload

**URL:** <https://community.penpot.app/t/macos-with-enabled-private-relay-extremely-slow-upload/10904>\
**Category:** Front End\
**Tags:** macos, private-relay, upload, slow\
**Created:** [September 22, 2026, 10:48pm UTC](https://community.penpot.app/t/macos-with-enabled-private-relay-extremely-slow-upload/10904 "2026-09-22T22:48:47Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![tomas.frajt](https://avatars.discourse-cdn.com/v4/letter/t/d6d6ee/32.png) [@tomas.frajt](https://community.penpot.app/u/tomas.frajt)\
**Post date:** [September 22, 2026, 10:48pm UTC](https://community.penpot.app/t/macos-with-enabled-private-relay-extremely-slow-upload/10904/1 "2026-09-22T22:48:47Z")

</div>

Hello folks,

I’m not asking for support — I just want to share a story I’ve been dealing with for almost an entire day.

I deployed a self-hosted Penpot instance on my server behind an NGINX reverse proxy. Penpot works perfectly, except for one thing: uploading/importing `.penpot` files to the server is extremely — and I mean _really extremely_ — slow. This applies, for example, to importing templates or library files, although I suspect regular uploads would be affected as well.

To give you some perspective, importing a 128 MB `.penpot` file took around **30 minutes**. Crazy.

I tried to solve the problem together with my good old fellow ChatGPT, and we ended up tweaking, checking, and testing almost every relevant Penpot and NGINX parameter we could think of: maximum upload size, upload timeouts, HTTP/2 vs. HTTP/1.1, proxy settings, traffic between the frontend and backend containers, `curl` from the client versus browser uploads, different browsers and clients… you name it, we tested it.

No success.

As one of our last tests, we repeated the upload from a Windows VM.

And bang — the upload time dropped from about **30 minutes to 5 minutes**.

That’s when the light bulb finally came on.

I thought to myself: there’s one last thing I haven’t tried — temporarily disabling Apple’s iCloud **Private Relay**.

After disabling it, the import time dropped to about **1.4 minutes**. Then I re-enabled HTTP/2, which I had temporarily disabled during testing, and the upload time dropped even further — to about **12 seconds**.

So, in my case, the winning combination was:

**Private Relay OFF + HTTP/2 ON → ~12 seconds instead of ~30 minutes.**

I’m posting this in the hope that it saves the day for some stranger out there who might eventually run into the same issue.

Have a good one!

Cheers,  
Tomas
