Notification Server Not Working Seafile 12.0 Docker

Issue

Notification Server is not being enabled, despite it’s enabled in seafile.conf.

My configurations

Environment

Running seafileltd/seafile-mc:12.0 and seafileltd/notification-server:12.0 on Docker, following the instructions of “Setup Community Edition” in Seafile’s Manual, and “Notification Server” section in “Extensions” from Seafile’s Manual. Both in v12.

seafile.conf

[notification]
enabled = true
host = notification-server
port = 8083

As described in the Notification Server configuration Manual for Notification Server.

Debugging info

seafile-monitor.log

[2025-03-20 00:01:17] Start Monitor
[2025-03-20 00:01:17] Start seafevents.main

notification-server.log

[2025-03-20 03:01:14] [INFO] Database: user = seafile
[2025-03-20 03:01:14] [INFO] Database: host = db
[2025-03-20 03:01:14] [INFO] Database: ccnet_db_name = ccnet_db
[2025-03-20 03:01:14] [INFO] Database: seafile_db_name = seafile_db
[2025-03-20 03:01:14] [INFO] Database: user = seafile
[2025-03-20 03:01:14] [INFO] Database: host = db
[2025-03-20 03:01:14] [INFO] Database: ccnet_db_name = ccnet_db
[2025-03-20 03:01:14] [INFO] Database: seafile_db_name = seafile_db
[2025-03-20 03:01:14] [INFO] notification server started.

seafile.log

[2025-03-20 00:01:15] [INFO] seafile-session.c(64): fileserver: web_token_expire_time = 3600
[2025-03-20 00:01:15] [INFO] seafile-session.c(76): fileserver: max_index_processing_threads= 3
[2025-03-20 00:01:15] [INFO] seafile-session.c(89): fileserver: fixed_block_size = 8388608
[2025-03-20 00:01:15] [INFO] seafile-session.c(101): fileserver: max_indexing_threads = 1
[2025-03-20 00:01:15] [INFO] ../common/seaf-utils.c(401): Use database Mysql
[2025-03-20 00:01:15] [INFO] http-server.c(196): fileserver: worker_threads = 10
[2025-03-20 00:01:15] [INFO] http-server.c(207): fileserver: verify_client_blocks = 1
[2025-03-20 00:01:15] [INFO] http-server.c(229): fileserver: cluster_shared_temp_file_mode = 600

Nginx Reverse Proxy

    log_format seafileformat '$http_x_forwarded_for $remote_addr [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" $upstream_response_time';
    
    map $http_upgrade $connection_upgrade {
            default upgrade;
            ''      "";
    }


    server {
            listen 443 ssl;
            server_name seafile.mydomain.com;

            ssl_certificate         /etc/nginx/certs/mydomain.com/cert.pem;
            ssl_certificate_key     /etc/nginx/certs/mydomain.com/key.pem;

            location / {
                    proxy_pass http://192.168.1.105:10000;
                    proxy_read_timeout 310s;
                    proxy_set_header Host $host;
                    proxy_set_header X-Real-IP $remote_addr;
                    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                    proxy_set_header Connection "";
                    proxy_http_version 1.1;

                    client_max_body_size 0;
            }


            location /sdoc-server/ {
                    proxy_pass         http://192.168.1.105:8888/;
                    proxy_redirect     off;
                    proxy_set_header   Host              $host;
                    proxy_set_header   X-Real-IP         $remote_addr;
                    proxy_set_header   X-Forwarded-For   $proxy_add_x_forwarded_for;
                    proxy_set_header   X-Forwarded-Host  $server_name;

                    client_max_body_size 100m;
            }

            location /socket.io {
                    proxy_pass http://192.168.1.105:8888;
                    proxy_http_version 1.1;
                    proxy_set_header Upgrade $http_upgrade;
                    proxy_set_header Connection 'upgrade';
                    proxy_redirect off;

                    proxy_buffers 8 32k;
                    proxy_buffer_size 64k;

                    proxy_set_header X-Real-IP $remote_addr;
                    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                    proxy_set_header Host $http_host;
                    proxy_set_header X-NginX-Proxy true;
            }

            location /notification/ping {
                    proxy_pass http://192.168.1.105:8083/ping;
                    access_log      /var/log/nginx/notification.access.log seafileformat;
                    error_log       /var/log/nginx/notification.error.log;
            }

            location /notification {
                    proxy_pass http://192.168.1.105:8083/;
                    proxy_http_version 1.1;
                    proxy_set_header Upgrade $http_upgrade;
                    proxy_set_header Connection "upgrade";
                    access_log      /var/log/nginx/notification.access.log seafileformat;
                    error_log       /var/log/nginx/notification.error.log;
            }
    
            location /onlyofficeds/ {
                    proxy_pass http://192.168.1.105:6233/;
                    proxy_http_version 1.1;
                    client_max_body_size 100M;
                    proxy_read_timeout 3600s;
                    proxy_connect_timeout 3600s;
                    proxy_set_header Upgrade $http_upgrade;
                    proxy_set_header Connection $connection_upgrade;
                    proxy_set_header X-Forwarded-Host $server_name/onlyofficeds;
                    proxy_set_header X-Forwarded-Proto $scheme;
                    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            }
    }

What I’ve tried so far

Entering these URLs in the browser:

https://seafile.mydomain.com/notification/ping
http://192.168.1.105:8083/ping

got

{"ret": "pong"}

Looks like it’s ignoring the notification server configuration, because seafile-monitor.log didn’t even logged the line “Start notification-server”

Any help would be appreciated, thanks in advance!

From the log, the notification server already running. How do you think notification server not working?

Hi Daniel,
Thanks for the quick response.

I think it’s not working because, as stated in the manual, it should write the message “Notification server is enabled on the remote server xxxx” in seafile.log and, as in the attached seafile.log, this message did not appear. Apart from that, I tried opening the same library with two different accounts in different browsers, creating 1 file without refreshing the first tab and the file does not appears even after 2-3 minutes, but refreshing the tab makes the file appear. Also, the browser network tab does not show any call to /notification. (And searching in the Nginx log, I found no calls to /notification apart from the test ones).

Currently the notification server only used in desktop client for speeding up file syncing checking. The web interface does not use it right now.

So what you tested with the web interface is not relevant.

By the way, in version 13.0, the notification server will be used in the web interface too.

Oh- my fault then, I misunderstood the availability of this function. I’ll wait for v13.0. Thanks for the help and the great work!