Server application
  • PHP 91.8%
  • Shell 4.5%
  • JavaScript 3.6%
  • Dockerfile 0.1%
Find a file
2026-02-19 17:19:34 +01:00
3rdparty/jwt Change JWT namespace to avoid conflicts 2024-12-05 16:42:18 +00:00
appinfo 2.4.0 2026-02-19 17:14:30 +01:00
img Fix settings icon 2022-06-13 23:57:50 +02:00
js Convert date fields to datetime type and reduce ids length to 32 2024-12-13 09:35:55 +01:00
l10n Translated using Weblate (Russian) 2026-02-14 06:29:09 +00:00
lib Migrate away from removed QueryBuillder::execute function 2026-02-19 13:42:46 +01:00
reverse_proxy_examples Add directives for Caddy 2025-10-15 10:14:51 +02:00
script Update sign script to use passage 2026-02-19 17:19:34 +01:00
templates Convert date fields to datetime type and reduce ids length to 32 2024-12-13 09:35:55 +01:00
.gitattributes Set EOL=LF 2023-02-27 22:22:26 +01:00
3rd-Party.license Implement vapid 2024-11-27 15:22:57 +01:00
CHANGELOG.md 2.3.1 2025-09-29 21:40:42 +02:00
COPYING Init 2021-11-08 12:38:31 +01:00
OVERVIEW.md Add an overview of the architecture 2024-11-22 16:02:47 +00:00
README.md Add directives for Caddy 2025-10-15 10:14:51 +02:00

NextPush - Server App

UnifiedPush provider for Nextcloud - server application

Requirement

Your Nextcloud instance needs to have a Redis server installed and listening for connections.

Installation

  1. Install this Nextcloud application from the store: https://apps.nextcloud.com/apps/uppush .

  2. Configure the reverse-proxy. (See examples of reverse-proxy conf)

    a. The reverse-proxy need to be configured without buffering :

    Nginx: - Server Block

    proxy_buffering off;
    

    Apache: (php configuration): - VirtalHost Block

    <Proxy "fcgi://localhost/" disablereuse=on flushpackets=on max=10>
    </Proxy>
    

    Traefik:

    By default Traefik does not buffer. Please check and make sure you have not enabled buffering for the entryPoint you are using for NextPush. https://doc.traefik.io/traefik/middlewares/http/buffering/

    Caddy:

    By default Caddy does not buffer NextPush requests (SSE events).

    b. The reverse-proxy need to be configured for longer timeout, than keepalive configured in the UnifiedPush Provider administration settings (default=50s):

    Nginx: Default=60s - Server Block

    proxy_connect_timeout   10m;
    proxy_send_timeout      10m;
    proxy_read_timeout      10m;
    

    Apache: Default=TimeOut=60s - VirtalHost Block

    ProxyTimeout 600
    

    Traefik: Default=180s - Entrypoints

    transport:
      respondingTimeouts:
        readTimeout: 10m
        writeTimeout: 10m
        idleTimeout: 10m
    

    Caddy: Default=no timeout - transport

      transport http|fastcgi {
        read_timeout 10m
        write_timeout 10m
      }
    

Gateways

The app can be used as a personal matrix gateway. It requires to pass requests to the path /_matrix/push/v1/notify to /index.php/apps/uppush/gateway/matrix.

See examples of reverse-proxy conf

Nginx: - Server Block

location /_matrix/push/v1/notify {
    proxy_pass http://127.0.0.1:5000/index.php/apps/uppush/gateway/matrix;
}

Apache: - VirtalHost Block

ProxyPass "/_matrix/push/v1/notify" http://127.0.0.1:5000/index.php/apps/uppush/gateway/matrix

Traefik: - Using the middlewares in the dynamic file configuration (cf. example)

Caddy: - Either use the rewrite directive when used as a reverse proxy, or use a vars + env REQUEST_URI when used with php_fastcgi.

Development

Clone the repository to nextcloud/apps/uppush instead of installing from Nextcloud store.

git clone https://codeberg.org/NextPush/uppush.git nextcloud/apps/uppush

Credit

This application has been inspired by Nextcloud Push Notifier

Donations

If you wish to support the project: https://liberapay.com/S1m/