notify_push is a backend service to inform Nextcloud clients on file changes. The default behavior of the client is to periodically, at short intervals, request changes from the server. This results in a large proportion of the server load. With notify_push the requests can be greatly reduced.


For this guide you should be familiar with the basic concepts of


We need a running Nextcloud instance with version >= 21 with configured redis.


Install Client Push App in Nextcloud

We need to install the Client Push app from the Nextcloud AppStore.

Install the latest release and make it executable:

[isabell@stardust ~]$ php html/occ app:install notify_push
notify_push 0.2.2 installed
notify_push enabled
[isabell@stardust ~]$ chmod u+x html/apps/notify_push/bin/x86_64/notify_push
[isabell@stardust ~]$ ln --symbolic --verbose $HOME/html/apps/notify_push/bin/x86_64/notify_push bin/notify_push
‘bin/notify_push’ -> ‘/home/isabell/html/apps/notify_push/bin/x86_64/notify_push’
[isabell@stardust ~]$


Setup Supervisord

Create the configuration ${HOME}/etc/services.d/notify_push.ini:


As argument we need to set the path to our config.php from our Nextcloud. Adjust the path to your location.

command=notify_push %(ENV_HOME)s/html/config/config.php

After creating the configuration, tell supervisord to refresh its configuration and start the service:

[isabell@stardust ~]$ supervisorctl reread
SERVICE: available
[isabell@stardust ~]$ supervisorctl update
SERVICE: added process group
[isabell@stardust ~]$ supervisorctl status
SERVICE                            RUNNING   pid 26020, uptime 0:03:14
[isabell@stardust ~]$

Configure the web backend

Create the web backend for notify_push:


The URL for notify_push should be the Nextcloud URL on path /push

[isabell@stardust ~]$ uberspace web backend set /push --http --port 7867
Set backend for /push to port 7867; please make sure something is listening!
You can always check the status of your backend using "uberspace web backend list".
[isabell@stardust ~]$ uberspace web backend list
/push http:7867 => OK, listening: PID 28088, notify_push /home/isabell/html/config/config.php
/ apache (default)
[isabell@stardust ~]$

Add Uberspace user specific VETH IP to trusted proxies

We need to get the IP address:

[isabell@stardust ~]$ ip route
10x.xx.xx.x/30 dev veth_isabell proto kernel scope link src 10x.xx.xx.x
[isabell@stardust ~]$

From the output of the command above we get the IP 10x.xx.xx.x

Now we add this IP to the trusted proxies list:

[isabell@stardust ~]$  php html/occ config:system:set trusted_proxies 0 --value="10x.xx.xx.x"
System config value trusted_proxies => 0 set to string 10x.xx.xx.x
[isabell@stardust ~]$

Configure Client Push App with the notify_push backend

To configure the notify_push app with the notify_push backend, run following command:


Use your URL

[isabell@stardust ~]$  php html/occ notify_push:setup
✓ redis is configured
✓ push server is receiving redis messages
✓ push server can load mount info from database
✓ push server can connect to the Nextcloud server
✓ push server is a trusted proxy
✓ push server is running the same version as the app
configuration saved
[isabell@stardust ~]$


The app and the backend have to be on the same version. After updating the app just restart the service so it runs the latest binary file.

If you are doing your updates with the script you may add the following line or you just run it via console.

supervisorctl restart notify_push

Tested with Nextcloud 22.1.0,notify_push 0.2.2, Uberspace

Written by: Marius Bertram <>