A Mastodon notification received in Tusky through the Murena push server
Get your notifications without going through Google.

Many apps need to wake your phone up when something happens: a new message, a mention, a calendar invitation. On most Android phones this goes through Google’s push service. UnifiedPush is an open alternative: the notification is delivered by a server you choose, and no Google service is involved.

/e/OS supports UnifiedPush out of the box, and uses the Murena push server (push.murena.com) by default.

How it works

Three parties are involved:

  1. The app on your phone, for example Tusky.
  2. The distributor, an app on your phone that keeps one connection open to a push server and hands the notifications to the right app. /e/OS includes one, based on ntfy.
  3. The push server, push.murena.com by default. The server of the service you use (for example your Mastodon server) sends the notification to it, and it forwards it to your phone.

When you install an app that supports UnifiedPush, it finds the distributor, asks it for an address on the push server, and gives that address to the service. There is nothing to configure.

Compared with the Google push

Google push (through microG)UnifiedPush
ServerGoogle’sMurena’s, or yours
Contacts GoogleYes, anonymously (see Calls to Google servers)No
Supported byApps built for Google Play ServicesApps that implement UnifiedPush
Setup on /e/OSNoneNone

Some apps, such as Tusky, only support UnifiedPush and have no Google push at all: on /e/OS they use it automatically.

Tip: With Web Push, used by Mastodon and Tusky for example, the content of a notification is encrypted between the service and your app. The push server only relays it. How much is encrypted depends on the app, so check its documentation.

Which apps support it

The UnifiedPush project keeps the list of compatible apps. It includes Mastodon clients such as Tusky, Matrix clients such as Element and FluffyChat, and messaging apps such as Molly.

Use it on /e/OS

  1. Install an app that supports UnifiedPush, for example from App Lounge.
  2. Open it and sign in as usual.
  3. Wait for a notification.

The app registers itself with the distributor included in /e/OS. If several distributors are installed on the phone, the app asks you to choose one: pick ntfy.

Warning: If you install another distributor, apps may ask you to choose between them. The distributor included in /e/OS is the one that uses the Murena push server.

Expert mode: use your own server

You can host your own push server and make /e/OS use it instead of push.murena.com. This is meant for people who already run their own services.

Set up the server

The /e/OS distributor talks to a standard ntfy server. Install it by following the ntfy documentation, then check these points:

  • The server must be reachable from the Internet over HTTPS, with a valid certificate. The service you use (Mastodon, Matrix…) sends the notifications to it, so a server reachable only from your home network will not work.

  • The services publish to topics whose name starts with up, without an account. If you run a private server (auth-default-access: deny-all), allow everyone to write to these topics, as explained in ntfy’s UnifiedPush example:

    ntfy access '*' 'up*' write-only
    

    Your phone still has to be allowed to read them: add your account in the distributor’s Manage users setting.

  • Think about the limits of the server (number of topics, requests per visitor) if many people will use it, see ntfy rate limiting.

Point /e/OS to your server

The distributor has no icon on the home screen. To reach its settings, enable USB debugging, connect your phone to a computer with adb and run:

adb shell am start -n foundation.e.ntfy/io.heckel.ntfy.ui.MainActivity

Then:

  1. Tap the three dots menu, then Settings.
  2. Tap Default server.
  3. Enter the root URL of your server, for example https://push.example.org, and tap OK.

The Default server dialog with the URL of a custom server

The new server is used for the apps that register afterwards. An app that is already registered keeps the address it was given: to move it to your server, reinstall it, or remove its registration if the app offers it.

To go back to the Murena push server, empty the Default server field.

Warning: Do not use this setting on a server you do not control: it is the server that relays your notifications.