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