Push for Nextcloud
Text for the NLnet NGI MobiFree application form (https://nlnet.nl/propose/).
Project proposal code: 2024-12-307
Thematic Call
- NGI Mobifree
Contact information
- Mr Julian Foad
- julian@foad.me.uk
- +44 #### ######
- Trax.im / Rooted Software Ltd.
- UK
General project information
- "Push for Nextcloud"
- https://lab.trax.im/up/push-for-nextcloud
Abstract: Can you explain the whole project and its expected outcome(s).
Overview and References: https://lab.trax.im/up/push-for-nextcloud
What? Nextcloud Instant Updates over WebPush and UnifiedPush.
Why? Nextcloud app gets instant updates. Nextcloud-Talk gets instant updates. Sent by WebPush, received by UnifiedPush. UnifiedPush and Nextcloud are key MobiFree components.
How? Make the Nextcloud 'notifications' component use WebPush.
The current plan is described by karmanyaahm in nextcloud/notifications #1225 and by S1m in NextPush/uppush #17. At least two people previously made a start, in different ways (ZOCKER-1, GAVINE99-1) and we expect substantial parts of their work can be used. The remaining work is mainly in nextcloud-notifications.
- nextcloud-android, nextcloud-talk-android: mostly done by Gavine99.
- nextcloud-notifications: refactoring for multiple notification methods (begun by Zocker); add webpush method.
Outcome is: patches submitted to nextcloud-notifications, nextcloud-android, nextcloud-talk-android (targeting the FOSS apps only), along with expected docs/tests/etc.
Have you been involved with projects or organisations relevant to this project before? And if so, can you tell us a bit about your contributions?
I have been involved for years at a low level with projects in this scene including UnifiedPush, ntfy as a UP server, UP for matrix, /e/OS, LineageOS -- building, self-hosting, experimenting, discussions, blogging.
I have contributed the ntfy server deployment component for the popular Matrix-Docker-Ansible-Deploy playbook, and some UnifiedPush troubleshooting pages.
I consulted S1m (UP key dev) who expressed support for me doing the Nextcloud Notifications work, as well as for my earlier UP-for-IMAP proposal; and Jonathan Klee (Murena, working on /e/OS ntfy integration) who said they don't have clear plans around next steps for UP and are watching how it progresses.
Requested support
- €6400
Labour: 128 hours (research and development, 16 h/week for 8 weeks) x €50/hour: €6400.
This project has no other funding sources.
.Compare your own project with existing or historical efforts.
This project is principally implementation work, following the pattern established in other UnifiedPush/WebPush implementations.
S1m explained the problem with a previous attempt at solving this issue (see project home page): The set of patches proposed by Gavine99 went against the design principle of UP. It tied the Nextcloud application pushes to the particular instance of Nextpush UP server running on the same Nextcloud.
With our UP-conformant approach, instead, the end user's device tells the app-server which push server it shall use, and that serves all the device's pushes from any and all applications, including multiple Nextcloud services and non-Nextcloud applications. This implementaion will have fewer parts and fewer dependencies.
What are significant technical challenges you expect to solve during the project, if any?
Adding webpush method to nextcloud-notifications (the main task) will require attention to detail: I have that, and the protocol and interfaces are documented and other implementations exist.
Learning enough PHP: not too big a deal; I have learnt other languages as needed.
Describe the ecosystem of the project, and how you will engage with relevant actors and promote the outcomes?
UnifiedPush: I'm in touch in their matrix rooms.
Nextcloud: we will keep in touch mainly through their issue trackers.
The main ecosystem for usage is android-compatibles (LineageOS, Murena-/e/OS, CalyxOS, GrapheneOS...). Representatives from /e/OS and likely others are in touch, primarily through the UnifiedPush rooms.
We will publicise the work to these actors through blog posts etc.
Attachments
(none)