Ente Photos client encounters HTTP 308

Hello there! I've installed Ente on my Ubuntu 24.04 LTS VPS and so far, everything worked well. I connected my Android device (Android 16, Pixel 7a) to my self-hosted server and it immediately started uploading my photos. So far, so great! However, as it hit the 5 GB mark, it stopped. Quota exhausted. "Fine", I thought, increased storage space to 100 GB with the CLI and verified that it worked - yep, the UI now shows 100 GB. But the upload didn't continue. I have 300+ photos queued for upload now, and it still doesn't work. I've inspected the server-side logs - nothing suspicious there. Then, I looked at the client-side logs, which showed me that the client is encountering an HTTP 308 error. Where? When? Which URL? No idea, unfortunately. I googled, did my research, but no one seems to be having this issue. Anyone have an idea? I am using Caddy as a reverse proxy, as described in the Ente docs.
museum.example.com {
reverse_proxy http://localhost:8080
}

minio.example.com {
reverse_proxy http://localhost:3200
}
museum.example.com {
reverse_proxy http://localhost:8080
}

minio.example.com {
reverse_proxy http://localhost:3200
}
Here is my compose.yml:
services:
museum:
image: ghcr.io/ente-io/server
ports:
- 127.0.0.1:8080:8080 # API
volumes:
- ./museum.yaml:/museum.yaml:ro
- ./data:/data:ro
[...]

socat:
image: alpine/socat
network_mode: service:museum
command: "TCP-LISTEN:3200,fork,reuseaddr TCP:minio:3200"
[...]

web:
image: ghcr.io/ente-io/web
ports:
- 127.0.0.1:3000:3000
- 127.0.0.1:3002:3002
restart: always

postgres:
[...]

minio:
image: minio/minio
ports:
- 127.0.0.1:3200:3200 # MinIO API
environment:
MINIO_ROOT_USER: minio-user-sYXPI9/t
MINIO_ROOT_PASSWORD: ...
command: server /data --address ":3200" --console-address ":3201"
volumes:
- minio-data:/data
post_start:
- command: ...
restart: always

volumes:
postgres-data:
minio-data:
services:
museum:
image: ghcr.io/ente-io/server
ports:
- 127.0.0.1:8080:8080 # API
volumes:
- ./museum.yaml:/museum.yaml:ro
- ./data:/data:ro
[...]

socat:
image: alpine/socat
network_mode: service:museum
command: "TCP-LISTEN:3200,fork,reuseaddr TCP:minio:3200"
[...]

web:
image: ghcr.io/ente-io/web
ports:
- 127.0.0.1:3000:3000
- 127.0.0.1:3002:3002
restart: always

postgres:
[...]

minio:
image: minio/minio
ports:
- 127.0.0.1:3200:3200 # MinIO API
environment:
MINIO_ROOT_USER: minio-user-sYXPI9/t
MINIO_ROOT_PASSWORD: ...
command: server /data --address ":3200" --console-address ":3201"
volumes:
- minio-data:/data
post_start:
- command: ...
restart: always

volumes:
postgres-data:
minio-data:
No description
7 Replies
Ducky
Ducky•4mo ago
Remember to use /solved to mark your thread as solved once your question is answered.
Keerthana
Keerthana•4mo ago
Hey there, few things off my mind: 1. I don't think you need to specify 127.0.0.1 as it's explicit it is using loopback address. 2. The 308 should be happening from MinIO side if there are no logs and there's a permanent redirect which can happen with protocol differences (Caddy might be redirecting HTTP to HTTPS). Can you confirm if the same issue happens with web, you can inspect these errors in browser using network tab in developer tools. Try setting up reverse proxy for web apps for this. 3. If same error occurs, it will be helpful if you share your sanitized Compose file.
magnesit
magnesitOP•3mo ago
Thanks for the answer! I am sorry for the delay, I just got back to this. I ended up re-installing Ente, but used their one-command install script this time. I linked a domain to each service (one subdomain per service), re-did my Caddy configuration and now it... seems to work just great! Might've been a fluke.
Ducky
Ducky•3mo ago
-# If your issue is resolved, you can use the /solved command to close the thread. If not, use /unsolve to cancel.
magnesit
magnesitOP•3mo ago
/solved
Brogio
Brogio•3mo ago
Command broke 😅
Ducky
Ducky•3mo ago
Thread marked as solved. It will be closed in <t:1756320405:R>. This thread is now closed.

Did you find this page helpful?