Add UnifiedPush to /e/OS to make it possible for developers to avoid FCM and better support F-Droid applications

I was just reading this blog post titled “UnifiedPush: a decentralized, open-source push notification protocol”. Being an Android developer myself, I am aware of the challenge to support push notifications and that there is no real alternative to Google’s Firebase Cloud Messaging (FCM). Currently all of this works thanks to MicroG but we are still depended on Google for this key feature on /e/OS.

I have never worked with UnifiedPush nor am I related to the project in any form, but wouldn’t it be a great to include an open source push notification service additionally to MicroG in /e/OS? Currently I would not use UnifiedPush in one of my Android applications as it would be to hard to explain to a user why they have to install an additional application + setup just to receive push notifications. This would change if /e/OS out of the box supports a decentralized, open-source push notification protocol and in addition F-Droid applications would also get much better support. What do you guys think and what could be the next steps?

18 Likes

I think this would be a great idea. I’m looking into setting up unified push on my personal Nextcloud instance and, as you mention, at the moment this will require the installation of an additional app on all devices that use my cloud server. Luckily that’s only a couple of phones, so it should be alright. But having this integrated in the OS would certainly be helpful. Especially if other apps would start offering UP.

2 Likes

It would only make sense if /e/ also served unified push on their murena cloud platform. Otherwise people could find that they’ve install apps that would want to use the service, but without a default push server.

2 Likes

I agree, this would make a lot of sense. Would be great to keep up /e/'s openness spirit like with their cloud solution. Offer a default push service solution built into their OS and cloud, but make it very easy to use other push services as well. Just like with their Nextcloud, you can use the Murena cloud but you don’t have to and it also works great with other Nexcloud instances. Honestly, that’s one of the main reasons I use and recommend Murena devices :slightly_smiling_face:

1 Like

Hello to all,

I found this topic on push notifications very interesting. One day the problems with push notifications related to google (Firebase Cloud Messaging) will be a distant memory.

The unified push website here:
https://unifiedpush.org/

Regain your privacy! Adopt /e/ the unGoogled mobile OS and online servicesphone

3 Likes
3 Likes

The search function feels very sad and neglected :cry: .

1 Like

maybe @manoj can merge the threads?

unifiedpush is a welcome development. In the last 2 weeks xmpp client Conversations added support to act as unifiedpush Distributor (for other apps) and if you selfhost xmpp with Prosody you can DIY all the way - Conversations (XMPP) - Android | UnifiedPush

3 Likes

If I get it right, nextcloud (murena cloud) supports unified push basically.
‘’

UnifiedPush Provider

Once the mobile phone is connected with NextPush, push notifications can be forwarded to applications implementing UnifiedPush.

More information about UnifiedPush at https://unifiedpush.org’’

As an alternative I recommend ntfy (https://ntfy.sh/) which is available via F-Droid.

5 Likes

Very interesting, thanks for sharing this Nextcloud app! If they would install it, then I guess every Murena Cloud user has their own push backend? Which would be a nice toy to play around as a developer but would probably not be a scalable solution. Hosting your own service such as ntfy would probably be a better approach?

It would work for murena users I guess. Not sure who you mean by scaling. Murena is targeting person with an interest in decentralized infrastructure.

An own server is an option but means work that the majority cannot/won’t do.

Yes I realised my mistake too late :sweat_smile:

2 Likes

I am also very much in favour of decentralised systems, question is if this can be done with push notifications – I hope so. Without knowing the detailed implementations of the UnifiedPush Protocol (and maybe this is already the case), it would need to work as follows if scalable and decentralised:

  1. OS has a UnifiedPush App/Service included
  2. Android app/developer uses an SDK to include a FOSS implementation of UnifiedPush which includes as a setup the endpoint of the UnifiedPush service server of choice. This could be a Murena service or any other such as a private Nextcloud instance.
  3. When installed the app talks with the OS to register with the push service and receive the push token.

Downsides are:

  1. The more custom push services there are, the more battery drain this will create as the OS push service would need to stay in contact with all the different endpoints.
  2. Developers would need to find or host their own push servers (but I guess that’s what it’s all about :smile:)

Update: I just read up a bit on Unified Push and it seems like they do all of the above already :sweat_smile: :partying_face:

2 Likes

I would love to work for or with Murena on their /e/-OS phone. UnifiedPush support is one of the first things I would propose to do.

UnifiedPush is in my humble opinion one of the most important recent developments for freedom phones, granting freedom from Google’s FCM. I followed it from its OpenPush origins.

I would love to work on this if I could find some kind of financial support.

I have already deployed the ‘ntfy’ server implementation in two ways on my home network. I successfully submitted one of these for inclusion in the popular Matrix installer matrix-docker-ansible-deploy, so matrix self-hosters can deploy it easily.

If given the chance to advance UnifiedPush support, I would propose a plan something like this:

  • deploying a UP server for /e/ users (one for the Murena central server, and one in each self-hosted deployment), initially choosing one of the existing kinds of UP server (probably NextPush because obviously it’s built to fit into nextcloud);
  • creating a UP distributor as an /e/-OS system app, by adapting an existing one (NextPush, to match the server), and making it auto-discover/configure the server from the /e/-OS account info;
  • working with important client apps (/e/-OS default apps first) to add support to them;
  • perhaps tweaking the U.P. server and distributor to better suit this use case, if and when needed.
5 Likes

Why then, if you don’t mind my asking, aren’t you a helpful individual and guide the OP into the right direction instead of passive aggressively remarking that there’s a search function?

The posts directly before and after mine are a hint, also consider this answer to my post.
Some posts starting with the one from January 12 were moved from a duplicate topic to here, and the OP of the duplicate topic already got a link to here in the duplicate topic. I just threw in a mention of the search in the duplicate topic because it would have been really easy to find the already existing topic instead of opening a duplicate one.

It’s unfortunate that it’s not easy to see the movement of posts in hindsight here, and so sometimes context is lost. Discourse should be capable of showing this, I’ve seen it elsewhere. Either the settings or the version of Discourse used here don’t show this info, it would be simple inserts between posts telling to where posts went at this point and on the other side from where they came at this point. If you’re quick enough, you can see the outgoing part here sometimes, but not the incoming part on the other side.

1 Like

Hi Julian,

love your enthusiasm very much and I share your views. That is why I started this thread. I think you are on the right track and would be wonderful if you could contribute to the project. /e/ has a Get Involved page where you could start. They list projects who are looking for contributors or you check out Murena’s open positions. Probably best to just get in touch with them and see what is possible :slightly_smiling_face:

@spipau, thanks for the encouragement. I’m already involved, on the fringes, since a couple of years ago: installed and tested /e/ on a couple of phones, once tried (failed) building /e/OS from source, had a quick look at what it would take to make easy-installer support OnePlus-6, researched a lot around the ecosystem (degoogling, self-hosting nextcloud and F-droid, modifying OpenCamera, and more), and I have now made an enquiry about funding, as I was previously being sponsored in FOSS work kindly by my wife and by a previous job, and now need to find new funding. It feels wrong to even mention funding, as if that’s something that should be kept out of sight, but it’s my reality now.

In the meantime I hope my occasional words will inspire others to help, and I may be able to help further with hints and possibly other kinds of work on this issue from time to time.

2 Likes

@julianfoad ha! And there I thought you need an introduction while already being a pro :wink:

I honestly think that getting paid for quality work in the FOSS movement should be the standard and there is nothing wrong with wanting to get paid. The real problem are corporations/people building their fortune on FOSS code while not giving much back. All big technology companies doing so and they should be the ones asking for funding, not you :slightly_smiling_face:

Any way, this is the world we are living in, but there are also good initiatives such as this one which might help you in collaboration with Murena to apply for funding?

finally came around to read the f-droid blog post, play with UP and check its status at key projects. I encourage anyone read the WebPush section. UPs prior position on encryption will be loosened up by supporting rfc8291 of WebPush.

While Nextcloud has an app to be provider, Nextcloud itself doesn’t yet support pushing to a UP provider. Seems to me it’s more likely to arrive with supporting WebPush as it will benefit the browser usage at the same time (notifications when no NC Tab is open).

To check upon a project you care about (Signal, Telegram…), go to the wishlist, the issues link the external repo discussion of the project

As of now, no App I personally use can facilitate UP, mainly due to missing serverside support for pushing to an UP provider (it’s a chicken/egg problem). I mostly care about notifications for Calls, as they’re time critical.

1 Like