# UnifiedPush (/docs/settings/unifiedpush)



## 1. Introduction [#1-introduction]

UnifiedPush is a decentralised push notification system designed to be
privacy-friendly, flexible, and open.
For more information, see the official documentation: [https://unifiedpush.org](https://unifiedpush.org)

Webview Kiosk utilises UnifiedPush to enable you to remotely:

* update app settings
* perform actions via commands

## 2. Distributor [#2-distributor]

To use UnifiedPush with Webview Kiosk, you will need to choose a
[distributor](https://unifiedpush.org/users/distributors)
application, e.g.

* [sunup](https://codeberg.org/Sunup/android)
* [ntfy (android)](https://github.com/binwiederhier/ntfy-android)

You will also need a push server, e.g. by self-hosting or using the public servers for:

* [autopush-rs](https://github.com/p1gp1g/autopush-rs)
* [ntfy (server)](https://github.com/binwiederhier/ntfy)

## 3. Debug Logs [#3-debug-logs]

UnifiedPush operations are recorded in the debug logs, which can be accessed
from the UnifiedPush settings screen.

This includes

* register/unregister
* message received
* new endpoint
* errors

A maximum of 100 messages will be stored for the duration of the app activity
lifecycle. The logs will not persist between app restarts.

## 4. Settings [#4-settings]

### 4.1. Enabled [#41-enabled]

Allow Webview Kiosk to process new push messages or register new endpoints.

**Default:** false

### 4.2. Distributor [#42-distributor]

The package name of the [distributor](https://unifiedpush.org/users/distributors), e.g.

* org.unifiedpush.distributor.sunup
* io.heckel.ntfy

The distributor app serves as the middle-man that receives the app notification
from the push server and forwarding it to Webview Kiosk.

**Default:** (blank)

### 4.3. Instance [#43-instance]

Registration instance. Can be used to create multiple registrations.

Supported variables:

* `APP_INSTANCE_ID`

Example:

* `wk-${APP_INSTANCE_ID}`

If left blank, `default` will be used.

**Default:** (blank)

### 4.4. Message for Distributor [#44-message-for-distributor]

A customised message that may be shown by the distributor UI to
identify this registration.

**Default:** (blank)

### 4.5. VAPID Public Key [#45-vapid-public-key]

VAPID public key (RFC8292), base64url, in uncompressed form (87 chars long).

For more details, see:

* [https://www.rfc-editor.org/rfc/rfc8292](https://www.rfc-editor.org/rfc/rfc8292)

**Default:** (blank)

### 4.6. Process Unencrypted Messages [#46-process-unencrypted-messages]

When enabled, Webview Kiosk will also handle UnifiedPush messages that
did not successfully decrypt.

A valid use case for this would be to for sending simple curl requests
to `ntfy.sh` without encryption for testing or convenience, although
this reduces security.

**Default:** false

### 4.7. Store Endpoint Credentials [#47-store-endpoint-credentials]

When enabled, Webview Kiosk will persist the following values after registration:

* Endpoint URL
* Endpoint Public Key
* Endpoint Auth Secret

Ideally, these values should not be stored at all, and are instead sent
directly to the application server at the point of registration.

However, Webview Kiosk does not yet have an application server. These values are
thus stored locally in the application so they can be copied. They can be
optionally redacted afterwards through the settings UI.

**Default:** true
