In Seafile 13.0.19, no activities have been visible in the web interface for several days. I then cleared the Activities table and restarted Docker. New activities are appearing in the table, I’ve checked. But the web interface still isn’t showing any. Does anyone have any ideas? I’ve also checked the time; CET is set everywhere on the Ubuntu server, in Docker, and in the Seafile .env file. The entries in the Activities table are all in datetime format. The server wasn’t an upgrade from version 12, but a fresh install of CE Ubuntu Docker 13.0.18. The activities were visible initially.
Since you have confirmed that the activities are being correctly written to the database table but are not rendering in the web interface, the issue likely lies in the communication or filtering layer between the database and the Seahub API.
Here are a few specific things you should check:
- Check Browser Network Response (F12): Open your browser’s Developer Tools, go to the Network tab, and refresh the Activities page. Look for the request to
/api/v2.1/activities/.
- If it returns
200 OKbut the response body is an empty list[], it means the backend is successfully querying the database but filtering out all results (often due to a timezone mismatch). - If it returns a
500 Internal Server Error, there is a crash occurring during data serialization.
- Verify Timezone Configuration Format: Seafile (Django) expects specific timezone strings. Ensure that your
TIME_ZONEsetting in your configuration (often in the.envfile orseahub_settings.py) is set to a long-form identifier likeEurope/Berlinrather than justCET. If there is a discrepancy between the database’s UTC storage and the application’s timezone interpretation, activities can be filtered out as “future” events and won’t display. - Check for Stale PID Files: Sometimes the
seafeventsprocess (responsible for the activity feed) can encounter issues if a stale.pidfile exists from a previous restart. Check yourpids/directory inside the Docker volume. ifseafevents.pidexists but the process isn’t healthy, try deleting the.pidfile and restarting the container. - Inspect
seahub.logandseafevents.log: Look for any “Incorrect string value” or “DataError” messages. In some cases, if an activity contains a special character that the Python backend fails to serialize into JSON, the entire API call might fail or return an empty set.
729
The API calls all return 200, so that’s okay. I’ve set the timezone in the .env file to TIME_ZONE=Europe/Berlin, and I have the same setting in the Docker environment and on the Ubuntu host. However, I’m using a custom Docker image with its own integrated CA, and it’s possible I built it before adjusting all the timezones. Could it be that the custom Seafile image still contains UTC somewhere, causing my problems? If so, I’d rebuild it and see if that fixes it. But even if there are differences—the image is running on UTC while the server and environment are on Europe/Berlin—shouldn’t something eventually show up? That’s what’s puzzling me. The PIDs creation times are all fresh, no old one hanging.
In the seahub - und seafevents.log there are no data errors or something, the seafevents looks pretty good, I think:
[2026-03-19 11:37:43] [INFO] root:547 [UserActivityCounter] update 1 items.
[2026-03-19 11:37:43] [INFO] root:87 Start counting file operations..
[2026-03-19 11:37:43] [INFO] root:240 Start counting traffic info..
[2026-03-19 11:37:43] [INFO] root:182 Start counting total storage..
[2026-03-19 11:37:43] [INFO] root:169 [FileOpsCounter] Finish counting file operations in 0.019778966903686523 seconds, 0 added, 0 deleted, 0 visited, 0 modified
[2026-03-19 11:37:43] [INFO] root:260 Traffic Counter: 5 items has been updated on 2026-03-19, time: 0.03520512580871582 seconds.
[2026-03-19 11:37:43] [INFO] root:268 Traffic counter finished, total time: 0.037078857421875 seconds.
[2026-03-19 11:37:43] [INFO] root:225 [TotalStorageCounter] Finish counting total storage in 0.03366851806640625 seconds.
[2026-03-19 11:37:43] [INFO] root:403 Start counting monthly traffic info..
[2026-03-19 11:37:43] [INFO] root:74 starts to send email
[2026-03-19 11:37:43] [INFO] root:491 Monthly traffic counter finished, update 12 user items, 1 org items, total time: 0.044254302978515625 seconds.
[2026-03-19 11:41:15] [INFO] root:136 Start counting quota usage by repos, current 1 repos waiting to count
[2026-03-19 11:45:45] [INFO] root:136 Start counting quota usage by repos, current 1 repos waiting to count
[2026-03-19 11:49:15] [INFO] root:136 Start counting quota usage by repos, current 1 repos waiting to count
[2026-03-19 11:50:45] [INFO] root:136 Start counting quota usage by repos, current 1 repos waiting to count
[2026-03-19 11:56:45] [INFO] root:136 Start counting quota usage by repos, current 1 repos waiting to count
[2026-03-19 12:02:45] [INFO] root:136 Start counting quota usage by repos, current 1 repos waiting to count
[2026-03-19 12:07:43] [INFO] root:74 starts to send email
[2026-03-19 12:13:45] [INFO] root:136 Start counting quota usage by repos, current 1 repos waiting to count
[2026-03-19 12:37:43] [INFO] root:534 Start counting user activity info..
[2026-03-19 12:37:43] [INFO] root:547 [UserActivityCounter] update 2 items.
[2026-03-19 12:37:43] [INFO] root:87 Start counting file operations..
[2026-03-19 12:37:43] [INFO] root:169 [FileOpsCounter] Finish counting file operations in 0.009825944900512695 seconds, 0 added, 0 deleted, 0 visited, 0 modified
[2026-03-19 12:37:43] [INFO] root:240 Start counting traffic info..
[2026-03-19 12:37:43] [INFO] root:182 Start counting total storage..
[2026-03-19 12:37:43] [INFO] root:260 Traffic Counter: 3 items has been updated on 2026-03-19, time: 0.01943516731262207 seconds.
[2026-03-19 12:37:43] [INFO] root:268 Traffic counter finished, total time: 0.022650957107543945 seconds.
[2026-03-19 12:37:43] [INFO] root:225 [TotalStorageCounter] Finish counting total storage in 0.019726991653442383 seconds.
[2026-03-19 12:37:43] [INFO] root:74 starts to send email
[2026-03-19 12:37:43] [INFO] root:403 Start counting monthly traffic info..
[2026-03-19 12:37:43] [INFO] root:491 Monthly traffic counter finished, update 12 user items, 1 org items, total time: 0.04033327102661133 seconds.
[2026-03-19 12:38:45] [INFO] root:136 Start counting quota usage by repos, current 1 repos waiting to count
[2026-03-19 12:41:45] [INFO] root:136 Start counting quota usage by repos, current 1 repos waiting to count
The timezone settings will only delay the shown of activities. If you do not see activities after one day, it should be other issues.
Can you check the database table UserActivity and Activity? What contents does it contain?
Here are the entries of the 2 tables:
Table Activities: SELECT id, op_user, obj_type, timestamp, repo_id FROM Activity;
…
71 | 7f7c44a58994459fb287493b2e97c7d7@auth.local | file | 2026-03-19 11:45:26 | cabd2f09-ab02-48b0-928c-43c4c9a4b77f |
| 72 | 7f7c44a58994459fb287493b2e97c7d7@auth.local | file | 2026-03-19 13:52:57 | cabd2f09-ab02-48b0-928c-43c4c9a4b77f |
| 73 | 7f7c44a58994459fb287493b2e97c7d7@auth.local | file | 2026-03-19 14:43:59 | cabd2f09-ab02-48b0-928c-43c4c9a4b77f |
| 74 | 7f7c44a58994459fb287493b2e97c7d7@auth.local | file | 2026-03-19 15:14:02 | cabd2f09-ab02-48b0-928c-43c4c9a4b77f |
| 75 | 7f7c44a58994459fb287493b2e97c7d7@auth.local | file | 2026-03-19 15:33:08 | cabd2f09-ab02-48b0-928c-43c4c9a4b77f |
| 76 | ebd0b0151d194ba1a5d0cd885cd4100b@auth.local | file | 2026-03-19 15:21:54 | cabd2f09-ab02-48b0-928c-43c4c9a4b77f |
| 77 | 7f7c44a58994459fb287493b2e97c7d7@auth.local | file | 2026-03-19 15:27:25 | cabd2f09-ab02-48b0-928c-43c4c9a4b77f |
| 78 | 7f7c44a58994459fb287493b2e97c7d7@auth.local | file | 2026-03-19 15:33:14 | cabd2f09-ab02-48b0-928c-43c4c9a4b77f |
| 79 | 7f7c44a58994459fb287493b2e97c7d7@auth.local | file | 2026-03-19 16:35:40 | cabd2f09-ab02-48b0-928c-43c4c9a4b77f |
| 80 | 7f7c44a58994459fb287493b2e97c7d7@auth.local | file | 2026-03-19 15:35:57 | cabd2f09-ab02-48b0-928c-43c4c9a4b77f |
| 81 | 7f7c44a58994459fb287493b2e97c7d7@auth.local | file | 2026-03-19 15:36:24 | cabd2f09-ab02-48b0-928c-43c4c9a4b77f |
| 82 | 7f7c44a58994459fb287493b2e97c7d7@auth.local | file | 2026-03-19 15:36:26 | cabd2f09-ab02-48b0-928c-43c4c9a4b77f |
| 83 | 7f7c44a58994459fb287493b2e97c7d7@auth.local | file | 2026-03-19 15:44:24 | cabd2f09-ab02-48b0-928c-43c4c9a4b77f |
| 84 | ebd0b0151d194ba1a5d0cd885cd4100b@auth.local | file | 2026-03-19 15:46:02 | cabd2f09-ab02-48b0-928c-43c4c9a4b77f |
| 85 | 7f7c44a58994459fb287493b2e97c7d7@auth.local | file | 2026-03-19 16:34:09 | cabd2f09-ab02-48b0-928c-43c4c9a4b77f |
| 86 | 7f7c44a58994459fb287493b2e97c7d7@auth.local | file | 2026-03-19 16:34:11 | cabd2f09-ab02-48b0-928c-43c4c9a4b77f |
| 87 | 7f7c44a58994459fb287493b2e97c7d7@auth.local | file | 2026-03-19 16:34:37 | cabd2f09-ab02-48b0-928c-43c4c9a4b77f |
| 88 | 7f7c44a58994459fb287493b2e97c7d7@auth.local | file | 2026-03-19 16:34:39 | cabd2f09-ab02-48b0-928c-43c4c9a4b77f |
| 89 | 7f7c44a58994459fb287493b2e97c7d7@auth.local | file | 2026-03-19 16:36:11 | cabd2f09-ab02-48b0-928c-43c4c9a4b77f |
| 90 | 7f7c44a58994459fb287493b2e97c7d7@auth.local | file | 2026-03-19 16:36:13 | cabd2f09-ab02-48b0-928c-43c4c9a4b77f |
| 91 | 7f7c44a58994459fb287493b2e97c7d7@auth.local | file | 2026-03-19 16:43:12 | cabd2f09-ab02-48b0-928c-43c4c9a4b77f |
| 92 | 7f7c44a58994459fb287493b2e97c7d7@auth.local | file | 2026-03-19 16:45:57 | cabd2f09-ab02-48b0-928c-43c4c9a4b77f |
| 93 | 7f7c44a58994459fb287493b2e97c7d7@auth.local | file | 2026-03-19 16:43:25 | cabd2f09-ab02-48b0-928c-43c4c9a4b77f |
| 94 | 7f7c44a58994459fb287493b2e97c7d7@auth.local | file | 2026-03-19 16:44:55 | cabd2f09-ab02-48b0-928c-43c4c9a4b77f |
| 95 | 7f7c44a58994459fb287493b2e97c7d7@auth.local | file | 2026-03-19 16:46:24 | cabd2f09-ab02-48b0-928c-43c4c9a4b77f |
| 96 | 7f7c44a58994459fb287493b2e97c7d7@auth.local | file | 2026-03-19 16:46:59 | cabd2f09-ab02-48b0-928c-43c4c9a4b77f |
| 97 | 7f7c44a58994459fb287493b2e97c7d7@auth.local | file | 2026-03-19 16:47:01 | cabd2f09-ab02-48b0-928c-43c4c9a4b77f |
| 98 | 7f7c44a58994459fb287493b2e97c7d7@auth.local | file | 2026-03-19 16:47:49 | cabd2f09-ab02-48b0-928c-43c4c9a4b77f |
±—±--------------------------------------------±---------±--------------------±-------------------------------------+
98 rows in set (0.001 sec)
Table: UserActivity:
…
50 | 9a94262c222b4f558e8bdb79cc790807@auth.local | 97 | 2026-03-19 16:47:01 |
| 4851 | 01c572da07974abeb860b331c725d37d@auth.local | 98 | 2026-03-19 16:47:49 |
| 4852 | 02e1bf8de5f94fb292391fa28267a023@auth.local | 98 | 2026-03-19 16:47:49 |
| 4853 | 05942d30fbd84b0faf40b9fd48af0d7c@auth.local | 98 | 2026-03-19 16:47:49 |
| 4854 | 07319573bb054f819b4d56f24be0c07b@auth.local | 98 | 2026-03-19 16:47:49 |
| 4855 | 0df54514541b414a83bb999d971f9e35@auth.local | 98 | 2026-03-19 16:47:49 |
| 4856 | 0e16fab8bec44feca9d865fe476eb6d0@auth.local | 98 | 2026-03-19 16:47:49 |
| 4857 | 130ccf1109ad437d9add43b94cf8b9a2@auth.local | 98 | 2026-03-19 16:47:49 |
| 4858 | 1445d487a2b045809e1ab1e0f6de5d1a@auth.local | 98 | 2026-03-19 16:47:49 |
| 4859 | 156c04d4a7d04ca7a9538230b146a519@auth.local | 98 | 2026-03-19 16:47:49 |
| 4860 | 1d01dbc2775f4acbb5bd5be70be435e1@auth.local | 98 | 2026-03-19 16:47:49 |
| 4861 | 210565c97f4b4d77ba5e4c4462ddbbd3@auth.local | 98 | 2026-03-19 16:47:49 |
| 4862 | 211c3058f53d41dc8877c46d516e9ad0@auth.local | 98 | 2026-03-19 16:47:49 |
| 4863 | 258bfaa95ffb4577b40d5fa35cb48dbe@auth.local | 98 | 2026-03-19 16:47:49 |
| 4864 | 27fd9d524219426bbd6526e8605a3b03@auth.local | 98 | 2026-03-19 16:47:49 |
| 4865 | 2b39d0929862456b971d2fa96ef85abf@auth.local | 98 | 2026-03-19 16:47:49 |
| 4866 | 31789759b90a4bc184a46c13da5dd784@auth.local | 98 | 2026-03-19 16:47:49 |
| 4867 | 327282c68bdc45649b609200f6200133@auth.local | 98 | 2026-03-19 16:47:49 |
| 4868 | 3702b15f8e1842a29ed8e052f752da30@auth.local | 98 | 2026-03-19 16:47:49 |
| 4869 | 38f8870437d2416bbe37769c45f42689@auth.local | 98 | 2026-03-19 16:47:49 |
| 4870 | 3ae18b1e9c1a42a4af3a7d6178792a9e@auth.local | 98 | 2026-03-19 16:47:49 |
| 4871 | 3c83d1b67f754ec5ae965a0f1b9f2057@auth.local | 98 | 2026-03-19 16:47:49 |
| 4872 | 40305f7a479b459ca8b49a17bafb6503@auth.local | 98 | 2026-03-19 16:47:49 |
| 4873 | 412a19d9fcd34888bda1fa76b4859127@auth.local | 98 | 2026-03-19 16:47:49 |
| 4874 | 45b79026ce3944d496545aa47afac2e2@auth.local | 98 | 2026-03-19 16:47:49 |
| 4875 | 46cb0e61aeff41e4b3a6ddfe81b193e9@auth.local | 98 | 2026-03-19 16:47:49 |
| 4876 | 473c86fcfb244fb99083386310326107@auth.local | 98 | 2026-03-19 16:47:49 |
| 4877 | 49860e1e4556451387d7def0f5b6f66f@auth.local | 98 | 2026-03-19 16:47:49 |
| 4878 | 506f3967aba24f40b508a19fccdd862d@auth.local | 98 | 2026-03-19 16:47:49 |
| 4879 | 5701590d6a854784a8a59bf10327a723@auth.local | 98 | 2026-03-19 16:47:49 |
| 4880 | 57a11dcfe6884ad0a8d5cbdf62e53987@auth.local | 98 | 2026-03-19 16:47:49 |
| 4881 | 5bce5bcc957145f085c93852aafa99ab@auth.local | 98 | 2026-03-19 16:47:49 |
| 4882 | 5d7e7044d9fd4e5dbea8568691040223@auth.local | 98 | 2026-03-19 16:47:49 |
| 4883 | 5f99b7bab0b2418cbd17bd75c3312c11@auth.local | 98 | 2026-03-19 16:47:49 |
| 4884 | 637e153c849742e4b5d92e0a0cf20e5c@auth.local | 98 | 2026-03-19 16:47:49 |
| 4885 | 6cc8ea5a8a7c478287a6227f5384fc2f@auth.local | 98 | 2026-03-19 16:47:49 |
| 4886 | 6e4477baec374ba880db5395a6eb1a2b@auth.local | 98 | 2026-03-19 16:47:49 |
| 4887 | 6eb45cb253144d6d96dd35ac35bd4259@auth.local | 98 | 2026-03-19 16:47:49 |
| 4888 | 71c466e800f749dc99085e72c093d93f@auth.local | 98 | 2026-03-19 16:47:49 |
| 4889 | 72a29108cfdb4b3ebc325bf84522f66d@auth.local | 98 | 2026-03-19 16:47:49 |
| 4890 | 7650875841004dec8b4d3c4e9221eff0@auth.local | 98 | 2026-03-19 16:47:49 |
| 4891 | 798b90abcf9b4ff0a8c3c172f2fdca6a@auth.local | 98 | 2026-03-19 16:47:49 |
| 4892 | 7b8e6e44bfb14e83a3f79ce3a25a7875@auth.local | 98 | 2026-03-19 16:47:49 |
| 4893 | 7b9929ddfa37405a8e23125bfa57817b@auth.local | 98 | 2026-03-19 16:47:49 |
| 4894 | 7c725fd1542c42ec8f208f74803459af@auth.local | 98 | 2026-03-19 16:47:49 |
| 4895 | 7ef8fe9e68f44f4f829ddf4652b15de3@auth.local | 98 | 2026-03-19 16:47:49 |
| 4896 | 7f7c44a58994459fb287493b2e97c7d7@auth.local | 98 | 2026-03-19 16:47:49 |
| 4897 | 857ffb8013ae4494aa64d3f529df0ca4@auth.local | 98 | 2026-03-19 16:47:49 |
| 4898 | 91688734502f420f847280d34b6abc8e@auth.local | 98 | 2026-03-19 16:47:49 |
| 4899 | 92fb8058a3ed4b1ea6484f83a5414588@auth.local | 98 | 2026-03-19 16:47:49 |
| 4900 | 9a94262c222b4f558e8bdb79cc790807@auth.local | 98 | 2026-03-19 16:47:49 |
±-----±--------------------------------------------±------------±--------------------+
4900 rows in set (0.003 sec)
Another info:
The entries shown in the webinterface stopped a view days ago. But they was shown. After deleting all entries in the 3 Activity-Tables there was not shown anything in the webinterface. So it must be anything not to be delivered to the webinterface, I think.
From your logs, we can confirm that:
- The backend is working:
seafeventsis successfully recording file operations and updating theActivityandUserActivitytables (e.g., Activity ID 98 was recently mapped to many users). - The API is alive: Since you are getting a
200 OKon the/api/v2.1/activities/call, the web server is processing the request.
Suggested Next Step
We can check what the server is sending back to your browser.
- Open your browser’s Developer Tools (F12) and go to the Network tab.
- Refresh the Activities page in the Seafile web interface.
- Click on the request named
activities/(the URL ends in/api/v2.1/activities/). - Look at the Response or Preview tab.
What to look for:
- Scenario A: The response is
{"activities": []}(an empty list). This confirms that the backend is querying the database but filtering the results out before sending them to the UI. - Scenario B: The response actually contains data (JSON with activity details). If the data is there but the screen is blank, the issue is with the frontend Javascript rendering (perhaps a browser cache issue or a conflict with your custom integrated CA/HTTPS setup).
In Scenario A, you may add debug code to /api/v2.1/activities/ API point to further analyze the issue.
There are 2x activities in the network tab, here are the results in a screenshot:
My labels: in seafile: are:
labels:
# caddy: ${SEAFILE_SERVER_PROTOCOL:-http}://${SEAFILE_SERVER_HOSTNAME:?Variable is not set or empty}
caddy: ``xxxxxxxxxxxxxxxxxx.de
caddy.reverse_proxy: “{{upstreams 80}}”
caddy.tls: /data/caddy/server.crt /data/caddy/server.key
The used seafile image is the original actual seafile image only with addition of an CA cert.
seafile:
image: my-seafile:13-ca
# image: ${SEAFILE_IMAGE:-seafileltd/seafile-mc:13.0-latest}
container_name: seafile
rebuilt only with an own CA integrated
# Basis: offizielles Seafile 13 Image (Ubuntu 24.04)
FROM seafileltd/seafile-mc:13.0-latest
# Deine Root-/Intermediate-CA im PEM-Format mit Endung .crt ins
# Verzeichnis der “lokalen” CAs kopieren (Debian/Ubuntu-Konvention)
COPY company-root-ca.crt /usr/local/share/ca-certificates/
# Trust-Store aktualisieren (legt/aktualisiert /etc/ssl/certs/* und ca-certificates.crt)
RUN update-ca-certificates -v
My caddy.conf is this
caddy:
image: ${SEAFILE_CADDY_IMAGE:-lucaslorentz/caddy-docker-proxy:2.9-alpine}
restart: unless-stopped
container_name: seafile-caddy
ports:
- 80:80
- 443:443
environment:
- CADDY_INGRESS_NETWORKS=seafile-net
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ${SEAFILE_CADDY_VOLUME:-/opt/seafile-caddy}:/data/caddy
networks:
- seafile-net
healthcheck:
test: [“CMD-SHELL”, “curl --fail http://localhost:2019/metrics || exit 1”]
start_period: 20s
interval: 20s
timeout: 5s
retries: 3
networks:
seafile-net:
name: seafile-net
The own CA I need more for the LDAPs to a Windows Domain Controller than for the Caddy https. We run a Sophos Firewall as proxy in front of the Seafile Server. But the firewall is not responsible for a result of 0 in the events. Everything else is running fine.
Exactly one activity was displayed: the deletion of a library. However, no file changes are shown, and there have been thousands of these in the last few days and hours. We are currently migrating data to Seafile.
Since the deletion of a library can be shown while others cannot be shown, I suggest you add debug code to /api/v2.1/activities/ API point to further analyze the issue.
ahm, how to do that? ![]()

