#Tailscale + TSDProxy migration broke uploads and streaming on existing Ente self‑host

1 messages · Page 1 of 1 (latest)

thorn ravineBOT
#

Analyzing your question, please wait...

#
🔍 Similar Solved Posts

Found some similar posts that might help:

📋 Check these out:
modern gull
#

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)

  1. Set up TSDProxy and joined it to my Tailnet.
  2. 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"
  3. 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.
#
  1. 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:
  • 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.