Seafile server in docker doesn't stat without any specific error message

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