#Tailscale + TSDProxy migration broke uploads and streaming on existing Ente self‑host
1 messages · Page 1 of 1 (latest)
🔍 Similar Solved Posts
Found some similar posts that might help:
📋 Check these out:
Ente with Tailscale (59%)
Searched 87 solved posts
Hi, I’m self‑hosting Ente Photos and recently migrated my existing instance from a plain localhost/MinIO setup to the official Tailscale + TSDProxy guide. After this change, I can still log in and see my items listed, but new uploads fail, videos don’t stream, and now even thumbnails no longer load at all.
Environment
- Existing Ente instance with a large library already uploaded
- OS: Alpine Linux
- Runtime: Docker + docker‑compose (rootful)
- Networking:
- Tailscale running on the host
- TSDProxy as per Ente’s “Self‑hosting with Tailscale” guide
- Services:
- museum (Ente backend)
- minio (local S3)
- Clients:
- Ente Photos Desktop 1.7.21 on macOS
- Ente Photos Android client
What I changed (migration steps)
- Set up TSDProxy and joined it to my Tailnet.
- Updated my existing Ente compose file instead of starting from scratch:
- Added a proxy network and attached:
- museum with labels: tsdproxy.enable: "true" tsdproxy.name: "ente"
- minio with labels: tsdproxy.enable: "true" tsdproxy.name: "minio"
- Added a proxy network and attached:
- Initially configured Ente’s S3 endpoints in credentials.yaml to use the Tailnet MinIO URL:
- endpoint: https://minio.<tailnet>.ts.net This caused errors inside museum like:
- dial tcp: lookup minio.<tailnet>.ts.net on 127.0.0.11:53: no such host meaning the museum container could not resolve the Tailnet hostname for MinIO.
- Switched to “Option A” (internal Docker connectivity):
- All MinIO‑backed S3 endpoints in credentials.yaml now use: endpoint: http://minio:3200
- Verified from inside the museum container: curl -v http://minio:3200/minio/health/ready → returns HTTP 200 OK.
- Kept MINIO_SERVER_URL in the MinIO service pointing to the Tailnet URL (for external use only):
MINIO_SERVER_URL= https://minio.<tailnet>.ts.net
Current behavior
- Backend/API:
- https://ente.<tailnet>.ts.net/ping returns {"message":"pong"}.
- API calls like /collections/v2, /trash/v2/diff, /user-entity/entity/diff, /remote-store, /users/session-validity/v2 all return HTTP 200.
- POST /files/upload-url returns HTTP 200 when I attempt an upload.
- GET /files/preview/<id> returns HTTP 307 redirects (expected behavior).
- There are no current S3 errors or HTTP 5xx in museum logs after switching to http://minio:3200.
- MinIO:
- Healthy and reachable from within museum at http://minio:3200.
- Clients (the broken part):
- I can log in from the desktop app using https://ente.<tailnet>.ts.net.
- The grid shows items, but:
- Thumbnails do not load at all — I see placeholders and can’t click/open them.
- Video streaming does not work.
- New uploads fail after several retries.
- Desktop client logs repeatedly show:
- TypeError Failed to fetch
- NetworkDownloadError Failed to fetch both when trying to download thumbnails and when uploading files.
- These client errors appear while the server side continues to respond with 200/307 and shows no obvious errors.