I cannot get seafile CE to work. I created a docker compose file with Maria db and the docker image, nothing special. On first boot, I see how the tables are being created and stuff. But when it tries to start the server, the script fails without any error:
seafile | mv: not replacing ‘/shared/seafile/seahub-data/avatars/default.png’
seafile | mv: not replacing ‘/shared/seafile/seahub-data/avatars/groups’
seafile | [12/20/2025 17:06:28][upgrade]: Done
seafile |
seafile | Starting seafile server, please wait …
seafile | Failed to start seafile server
seafile | Traceback (most recent call last):
seafile | File “/scripts/start.py”, line 91, in
seafile | main()
seafile | File “/scripts/start.py”, line 76, in main
seafile | call(‘{} start’.format(get_script(‘seafile.sh’)))
seafile | File “/scripts/utils.py”, line 71, in call
seafile | return subprocess.check_call(*a, **kw)
seafile | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
seafile | File “/usr/lib/python3.12/subprocess.py”, line 413, in check_call
seafile | raise CalledProcessError(retcode, cmd)
seafile | subprocess.CalledProcessError: Command ‘/opt/seafile/seafile-server-13.0.12/seafile.sh start’ returned non-zero exit status 1.
What am I doing wrong? How can I debug the start correctly?
The issue you are encountering, “Failed to start seafile server” with a subprocess.CalledProcessError: Command '/opt/seafile/seafile-server-13.0.12/seafile.sh start' returned non-zero exit status 1, indicates that the seafile.sh start script within your Docker container is failing. While the immediate traceback points to a Python subprocess error, the root cause is likely an underlying issue preventing the Seafile server process from initiating correctly.
Here are several key points to analyze for debugging:
1. Examine Seafile-specific Logs for Detailed Errors
The general error from the start.py script doesn’t provide the specific reason for failure. It’s crucial to look at the Seafile server’s internal logs. These are typically located in /opt/seafile-data/seafile/logs/ on your host machine (if mapped correctly via Docker volumes) or /shared/logs/seafile inside the Seafile container
Use the following command to tail the logs of your seafile container:
docker compose logs seafile --follow
# Or if your .env file is elsewhere:
docker compose --env-file /path/to/.env logs seafile --follow
Look for errors in seafile.log, controller.log, and seahub.log within that directory.
2. Verify Database Configuration
A common issue leading to seafile.sh start failures is incorrect database configuration. As seen in a similar issue , older Seafile installations might use different database table naming conventions (e.g., seafile-db vs. seafile_db). If you are reusing an old docker-compose.yml or .env file, ensure your database names in the .env file match the expected values for your Seafile version (e.g., SEAFILE_MYSQL_DB_CCNET_DB_NAME, SEAFILE_MYSQL_DB_SEAFILE_DB_NAME, SEAFILE_MYSQL_DB_SEAHUB_DB_NAME)
Double-check that your docker-compose.yml and .env files are correctly configured according to the official installation guide, especially variables related to the database host, port, user, and passwords:
DB_HOST
DB_PORT
DB_USER
DB_PASSWORD
INIT_SEAFILE_MYSQL_ROOT_PASSWORD