Operating system
Linux
Joplin version
3.4.2
Sync target
Joplin Server
What issue do you have?
I’ve been working to deploy Joplin Server behind a reverse proxy (Caddy), and I’m running into persistent timeouts.
Problem
Sync requests from clients will hang and then fail after ~170 s.
Joplin Server logs show the TaskService loop (Process shared items) completing quickly (20–30 ms), so the app itself isn’t stuck.
The issue appears only when going through the proxy. Direct access to the server port works instantly.
Environment
Joplin Server v3.4.2 running in Docker
Reverse proxy: Caddy, terminating TLS, forwarding to joplin-server:22300
What I’ve tried
Verified that /api/ping through proxy responds correctly.
Observed that sync (/api/sync) hangs until proxy closes at ~170 s.
Adjusted proxy timeouts (read/write) higher, which avoids the cutoff, but sync shouldn’t take that long in the first place.
Confirmed there’s no database load (Postgres queries return immediately).
Questions
Has anyone else seen sync requests hang when proxied, but not direct?
Could this be related to app_base_url or forwarded headers (X-Forwarded-Proto, X-Forwarded-Host)?
What’s the recommended proxy configuration for Joplin Server to handle sync reliably?
Any advice from those successfully running Joplin Server behind a reverse proxy would help. Right now I’m stuck between raising proxy timeouts artificially high or watching sync fail at ~170 s.