[2026-04-27 17:44:24] [ERROR] path /repos/454f975a-bdae-46d6-8531-8ff7d40dbfc9/files/BRWB4B5B6E396F6_000031.pdf/ internal server error: failed to get access token info: Post “http://127.0.0.1:8000/api/v2.1/internal/repos/454f975a-bdae-46d6-8531-8ff7d40dbfc9/check-access/”: dial tcp 127.0.0.1:8000: connect: connection refused
My Seafile server runs on port 8001 for one simple reason, due to specifics of the system, it can’t run on 8000. It worked since Seafile server 7.
I would like to know, as a long-year Seafile server user, who, and why, thought that hard cording ports would be a good idea?
I still hope someone tells me that I am wrong, and there is a config option for that, but I seem to be unable to find it. Kindly requesting help.
The reason the internal ports are fixed (and why the File Server is still trying to reach Seahub on port 8000) is tied to Seafile’s modern architecture, which is primarily designed to run within Docker containers.
In a containerized or microservice environment, internal service ports are intentionally standardized. This ensures reliable inter-process communication between Seafile’s various internal components without requiring complex configuration files. Because these ports are isolated within the container’s network or bound only to localhost, they do not conflict with the host operating system. Therefore, the internal ports used by different components are not intended to be changed by the user.
To resolve the connection refused error and successfully run Seafile on port 8001, you should revert the internal component port back to 8000 and handle the port change at the outer layer:
- If you are using Docker: Leave all internal configurations at their defaults. Simply change the published port mapping in your
docker-compose.yml file to expose port 8001 on the host (e.g., ports: - "8001:80").
- If you are running a manual/bare-metal installation: Allow Seahub to bind to
127.0.0.1:8000 internally. Then, configure your reverse proxy (Nginx, Caddy, or Apache) to listen externally on port 8001 and proxy the incoming traffic to the internal default ports.
This approach allows your server to be accessible on the port you require without breaking the internal API calls between Seafile’s components.
Containerize and modernize, no biggie