<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>mobifree &amp;mdash; julian</title>
    <link>https://wrily.foad.me.uk/tag:mobifree</link>
    <description>FOSS dev, self-hosting fan, Matrix, degoogling, small tech, indie tech, friendly tech for families and schools. Let&#39;s own our own identity &amp; data.</description>
    <pubDate>Wed, 15 Apr 2026 07:29:59 +0000</pubDate>
    <item>
      <title>UnifiedPush -- Wider Developments</title>
      <link>https://wrily.foad.me.uk/unifiedpush-wider-developments</link>
      <description>&lt;![CDATA[img src=&#34;https://blog.foad.me.uk/wp-content/uploads/2024/11/unifiedpush-favicon-128.png&#34; style=&#34;max-height: 5em&#34; /&#xA;&#xA;An article about Building the Self-Agency Mobile Ecosystem: Push Messaging&#xA;&#xA;Push messaging is the system that enables incoming messages to wake up and reach our apps, instantly and efficiently. But Who Cares Who Delivers Our Notifications? Our answer is: we care, and we do not like being locked in to depending on one mega-corp&#39;s system.&#xA;&#xA;Therefore, in our libre mobile computing devices, we require a push-messaging infrastructure built from open standard technology that gives us freedom to choose our service providers and authority over them.&#xA;&#xA;Read more in Going Google-Free with UnifiedPush in /e/OS and my other articles about UnifiedPush .&#xA;&#xA;How We Get There&#xA;&#xA;How can we build this? What is needed to get widespread UnifiedPush support in /e/ and other mobile OS?&#xA;!--more--&#xA;&#xA;The big picture involves several areas of work.&#xA;&#xA;OS integration of the distributor, including how it&#39;s configured, auto-detected, optimised, etc.&#xA;Server Software: Making sure a suitable server-side component is available, supported, optimised for this use case.&#xA;Server hosting: making sure a server component is easily deployable by others, including making generic deployment methods (Debian, Docker, Nix, K8s, ...) and integrating it in some hosting systems.&#xA;Apps: Working with other apps to make sure they connect and work with UP out-of-the-box.&#xA;Sharing this work among other mobile OS projects (microG, CalyxOS, GrapheneOS, PostmarketOS, ...) .&#xA;Consider standardising a UP client-server protocol so that a built-in distributor can work with several different server implementations and vice-versa.&#xA;&#xA;(Links in this and the following sections lead to relevant issues or discussions, where I could find any.)&#xA;&#xA;OS Integration of the UP Distributor&#xA;&#xA;Including how the UP distributor is configured, auto-detected, optimised, Android permissions, etc.&#xA;&#xA;I recently analysed how /e/OS 2.5 has started the ball rolling&#xA;&#xA;Server Software&#xA;&#xA;Making sure a suitable server-side component is available, supported, optimised for this use case&#xA;&#xA;Nextcloud: UnifiedPush Provider -- exists&#xA;It could alternatively begin with a fork of ntfy-server for example.&#xA;&#xA;Server Hosting: Technical&#xA;&#xA;Making sure a server component is easily deployable by others, including making generic deployment methods (Debian, Docker, Nix, K8s, ...) and integrating it in some hosting systems, ranging from hobbyist to serious commercial systems.&#xA;&#xA;Docker ntfy -- exists&#xA;K8s ntfy helm-chart -- exists&#xA;Nextcloud: UnifiedPush Provider -- exists&#xA;Matrix-Docker-Ansible-Deploy: ntfy-server -- exists&#xA;Yunohost: ntfy-server -- exists&#xA;SelfHostBlocks -- not yet&#xA;CoopCloud -- not yet&#xA;Fediversity (an upcoming hosting project) -- not yet&#xA;&#xA;Server Hosting: Social/Business Aspects&#xA;&#xA;Work out and write up (shareable) policies about who hosts, terms and conditions, privacy, rate limiting and other special measures, etc.?&#xA;&#xA;Apps&#xA;&#xA;Working with other apps to make sure they connect and work with UP out-of-the-box.&#xA;&#xA;Category 1: default apps in /e/OS etc., like...&#xA;&#xA;Mail: K9/Thunderbird-andriod #5165 and UnifiedPush for IMAP (NGI proposal 2024-10-535)&#xA;Nextcloud -uppush #17 -notifications #1225 -android #8684&#xA;Accounts/Calendar/Contacts (DAVx5 #36 + DAV-push)&#xA;&#xA;Category 2: other popular apps like...&#xA;&#xA;HomeAssistant #446344&#xA;Fluffychat -- exists&#xA;Element -- exists&#xA;Signal forks&#xA;Telegram-FOSS #577&#xA;Conversations.im -- exists&#xA;Pixelfed #86&#xA;&#xA;See also the UnifiedPush wish list.&#xA;&#xA;Sharing with other mobile OS projects&#xA;&#xA;Sharing this work among other mobile OS projects.&#xA;&#xA;/e/OS -- exists&#xA;microG #486&#xA;CalyxOS #1395&#xA;GrapheneOS #10455&#xA;PostmarketOS -- UnifiedPush, Push notifications&#xA;SailfishOS -- mentioned in 2023-01-12 meeting minutes as blocked by much work needed to enable background services&#xA;&#xA;And even desktop OS:&#xA;&#xA;KUnifiedPush -- exists -- note also KDE runs their own (ntfy) UP server&#xA;&#xA;Standardising UP client-server protocol?&#xA;&#xA;Should we consider standardising the UP client-server protocol? At present, by design, one must choose a UP distributor and UP server together as a pair. If we standardised the protocol between them, so any distributor would work with any server, this would certainly have some benefits, but also down-sides, and is not necessarily the right thing to do. UP was designed this way on purpose and achieves its goals without needing to standardise there. No ordinary person needs to be able to change their UP implementation. Only techies and service providers might like to do that.&#xA;&#xA;Therefore this is an exploration rather than a development. I discuss this further in a separate article.&#xA;&#xA;---&#xA;&#xA;#unifiedPush #degoogled #awesomeFOSS #eOS #Murena #ntfy #mobiFree&#xA;&#xA;!--more--&#xD;&#xA;----&#xD;&#xA;Follow/Feedback/Contact: RSS feed · Fedi follow this blog: @julian&amp;ZeroWidthSpace;@wrily.foad.me.uk · matrix me · Fedi follow me · email me · julian.foad.me.uk&#xD;&#xA;Donate: via Liberapay&#xD;&#xA;All posts &amp;copy; Julian Foad and licensed CC-BY-ND except quotes, translations, or where stated otherwise&#xD;&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<p><a href="https://unifiedpush.org/" title="UnifiedPush"><img src="https://blog.foad.me.uk/wp-content/uploads/2024/11/unifiedpush-favicon-128.png" style="max-height: 5em"/></a></p>

<p><em>An article about Building the Self-Agency Mobile Ecosystem: Push Messaging</em></p>

<p>Push messaging is the system that enables incoming messages to wake up and reach our apps, instantly and efficiently. But <a href="https://wrily.foad.me.uk/who-cares-who-delivers-our-notifications">Who Cares Who Delivers Our Notifications?</a> Our answer is: we care, and we do not like being locked in to depending on one mega-corp&#39;s system.</p>

<p>Therefore, in our libre mobile computing devices, we require a push-messaging infrastructure built from open standard technology that gives us freedom to choose our service providers and authority over them.</p>

<p>Read more in <a href="https://wrily.foad.me.uk/going-google-free-with-unifiedpush-in-e-os">Going Google-Free with UnifiedPush in /e/OS</a> and my other <a href="https://wrily.foad.me.uk/tag:unifiedPush">articles about UnifiedPush</a> .</p>

<h2 id="how-we-get-there" id="how-we-get-there">How We Get There</h2>

<p>How can we build this? What is needed to get widespread UnifiedPush support in /e/ and other mobile OS?
</p>

<p>The big picture involves several areas of work.</p>
<ul><li>OS integration of the distributor, including how it&#39;s configured, auto-detected, optimised, etc.</li>
<li>Server Software: Making sure a suitable server-side component is available, supported, optimised for this use case.</li>
<li>Server hosting: making sure a server component is easily deployable by others, including making generic deployment methods (Debian, Docker, Nix, K8s, ...) and integrating it in some hosting systems.</li>
<li>Apps: Working with other apps to make sure they connect and work with UP out-of-the-box.</li>
<li>Sharing this work among other mobile OS projects (<a href="https://github.com/microg/GmsCore/issues/486">microG</a>, <a href="https://gitlab.com/CalyxOS/calyxos/-/issues/1395">CalyxOS</a>, <a href="https://discuss.grapheneos.org/d/10455-unifiedpushntfy-integration-in-the-os">GrapheneOS</a>, <a href="https://postmarketos.org/">PostmarketOS</a>, ...) .</li>
<li>Consider standardising a UP client-server protocol so that a built-in distributor can work with several different server implementations and <em>vice-versa</em>.</li></ul>

<p>(Links in this and the following sections lead to relevant issues or discussions, where I could find any.)</p>

<h2 id="os-integration-of-the-up-distributor" id="os-integration-of-the-up-distributor">OS Integration of the UP Distributor</h2>

<p>Including how the UP distributor is configured, auto-detected, optimised, Android permissions, etc.</p>
<ul><li>I recently analysed how <a href="https://wrily.foad.me.uk/going-google-free-with-unifiedpush-in-e-os" title="Going Google-Free with UnifiedPush in /e/OS">/e/OS 2.5 has started the ball rolling</a></li></ul>

<h2 id="server-software" id="server-software">Server Software</h2>

<p>Making sure a suitable server-side component is available, supported, optimised for this use case</p>
<ul><li><a href="https://apps.nextcloud.com/apps/uppush">Nextcloud: UnifiedPush Provider</a> — <strong>exists</strong></li>
<li>It could alternatively begin with a fork of ntfy-server for example.</li></ul>

<h2 id="server-hosting-technical" id="server-hosting-technical">Server Hosting: Technical</h2>

<p>Making sure a server component is easily deployable by others, including making generic deployment methods (Debian, Docker, Nix, K8s, ...) and integrating it in some hosting systems, ranging from hobbyist to serious commercial systems.</p>
<ul><li><a href="https://hub.docker.com/r/binwiederhier/ntfy">Docker ntfy</a> — <strong>exists</strong></li>
<li><a href="https://codeberg.org/wrenix/helm-charts/src/branch/main/ntfy">K8s ntfy helm-chart</a> — <strong>exists</strong></li>
<li><a href="https://apps.nextcloud.com/apps/uppush">Nextcloud: UnifiedPush Provider</a> — <strong>exists</strong></li>
<li><a href="https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/docs/configuring-playbook-ntfy.md">Matrix-Docker-Ansible-Deploy: ntfy-server</a> — <strong>exists</strong></li>
<li><a href="https://apps.yunohost.org/app/ntfy">Yunohost: ntfy-server</a> — <strong>exists</strong></li>
<li><a href="https://shb.skarabox.com/services.html">SelfHostBlocks</a> — not yet</li>
<li><a href="https://recipes.coopcloud.tech/">CoopCloud</a> — not yet</li>
<li><a href="https://www.fediversity.eu/">Fediversity</a> (an upcoming hosting project) — not yet</li></ul>

<h2 id="server-hosting-social-business-aspects" id="server-hosting-social-business-aspects">Server Hosting: Social/Business Aspects</h2>

<p>Work out and write up (shareable) policies about who hosts, terms and conditions, privacy, rate limiting and other special measures, etc.?</p>

<h2 id="apps" id="apps">Apps</h2>

<p>Working with other apps to make sure they connect and work with UP out-of-the-box.</p>

<p>Category 1: default apps in /e/OS etc., like...</p>
<ul><li>Mail: <a href="https://github.com/thunderbird/thunderbird-android/issues/5165">K9/Thunderbird-andriod #5165</a> and <a href="https://lab.trax.im/up-for-imap/up-for-imap/-/wikis/NGI-Proposal">UnifiedPush for IMAP (NGI proposal <code>2024-10-535</code>)</a></li>
<li>Nextcloud <a href="https://codeberg.org/NextPush/uppush/pulls/17">-uppush #17</a> <a href="https://github.com/nextcloud/notifications/issues/1225#issuecomment-2262644834">-notifications #1225</a> <a href="https://github.com/nextcloud/android/issues/8684">-android #8684</a></li>
<li>Accounts/Calendar/Contacts (<a href="https://github.com/bitfireAT/webdav-push/discussions/36" title="Tutorial video- How to use Push with DAVx⁵ and your Nextcloud">DAVx5 #36</a> + <a href="https://github.com/bitfireAT/nc_ext_dav_push">DAV-push</a>)</li></ul>

<p>Category 2: other popular apps like...</p>
<ul><li><a href="https://community.home-assistant.io/t/add-unifiedpush-support-to-home-assistant-android-core/446344">HomeAssistant #446344</a></li>
<li>Fluffychat — <strong>exists</strong></li>
<li>Element — <strong>exists</strong></li>
<li>Signal forks</li>
<li><a href="https://github.com/Telegram-FOSS-Team/Telegram-FOSS/issues/577">Telegram-FOSS #577</a></li>
<li>Conversations.im — <strong>exists</strong></li>
<li><a href="https://github.com/pixelfed/ideas/issues/86">Pixelfed #86</a></li></ul>

<p>See also the <a href="https://codeberg.org/UnifiedPush/wishlist/issues">UnifiedPush wish list</a>.</p>

<h2 id="sharing-with-other-mobile-os-projects" id="sharing-with-other-mobile-os-projects">Sharing with other mobile OS projects</h2>

<p>Sharing this work among other mobile OS projects.</p>
<ul><li><a href="https://wrily.foad.me.uk/going-google-free-with-unifiedpush-in-e-os">/e/OS</a> — <strong>exists</strong></li>
<li><a href="https://github.com/microg/GmsCore/issues/486">microG #486</a></li>
<li><a href="https://gitlab.com/CalyxOS/calyxos/-/issues/1395">CalyxOS #1395</a></li>
<li><a href="https://discuss.grapheneos.org/d/10455-unifiedpushntfy-integration-in-the-os">GrapheneOS #10455</a></li>
<li><a href="https://postmarketos.org/">PostmarketOS</a> — <a href="https://wiki.postmarketos.org/wiki/UnifiedPush" title="wiki page">UnifiedPush</a>, <a href="https://wiki.postmarketos.org/wiki/Push_notifications" title="wiki page">Push notifications</a></li>
<li><a href="https://sailfishos.org">SailfishOS</a> — mentioned <a href="https://forum.sailfishos.org/t/community-meeting-on-irc-12th-january-2023/13729/9">in 2023-01-12 meeting minutes</a> as blocked by much work needed to enable background services</li></ul>

<p>And even desktop OS:</p>
<ul><li><a href="https://blogs.kde.org/2024/10/19/kunifiedpush-1.0.0-is-out/">KUnifiedPush</a> — <strong>exists</strong> — note also KDE runs their own (ntfy) UP server</li></ul>

<h2 id="standardising-up-client-server-protocol" id="standardising-up-client-server-protocol">Standardising UP client-server protocol?</h2>

<p>Should we consider standardising the UP client-server protocol? At present, by design, one must choose a UP distributor and UP server together as a pair. If we standardised the protocol between them, so any distributor would work with any server, this would certainly have some benefits, but also down-sides, and is not necessarily the right thing to do. UP was designed this way on purpose and achieves its goals without needing to standardise there. No ordinary person needs to be able to change their UP implementation. Only techies and service providers might like to do that.</p>

<p>Therefore this is an exploration rather than a development. I discuss this further in <a href="https://wrily.foad.me.uk/unifiedpush-standardise-up-client-server-protocol">a separate article</a>.</p>

<hr>

<p><a href="https://wrily.foad.me.uk/tag:unifiedPush" class="hashtag"><span>#</span><span class="p-category">unifiedPush</span></a> <a href="https://wrily.foad.me.uk/tag:degoogled" class="hashtag"><span>#</span><span class="p-category">degoogled</span></a> <a href="https://wrily.foad.me.uk/tag:awesomeFOSS" class="hashtag"><span>#</span><span class="p-category">awesomeFOSS</span></a> <a href="https://wrily.foad.me.uk/tag:eOS" class="hashtag"><span>#</span><span class="p-category">eOS</span></a> <a href="https://wrily.foad.me.uk/tag:Murena" class="hashtag"><span>#</span><span class="p-category">Murena</span></a> <a href="https://wrily.foad.me.uk/tag:ntfy" class="hashtag"><span>#</span><span class="p-category">ntfy</span></a> <a href="https://wrily.foad.me.uk/tag:mobiFree" class="hashtag"><span>#</span><span class="p-category">mobiFree</span></a></p>



<hr>

<p><em>Follow/Feedback/Contact:</em> <a href="https://wrily.foad.me.uk/feed/"><em>RSS feed</em></a> · <em>Fedi follow this blog: @julian​@wrily.foad.me.uk</em> · <a href="https://matrix.to/#/@julian:foad.me.uk" title="matrix Julian"><em>matrix me</em></a> · <a href="https://fed.foad.me.uk/%40julian%40fed.foad.me.uk" title="follow Julian"><em>Fedi follow me</em></a> · <a href="mailto:julian@foad.me.uk?subject=Wrily" title="email Julian"><em>email me</em></a> · <a href="https://julian.foad.me.uk/"><em>julian.foad.me.uk</em></a>
<em>Donate:</em> <a href="https://liberapay.com/julianfoad" title="Donate to Julian using Liberapay"><em>via Liberapay</em></a>
<em>All posts © Julian Foad and licensed <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC-BY-ND</a> except quotes, translations, or where stated otherwise</em></p>
]]></content:encoded>
      <guid>https://wrily.foad.me.uk/unifiedpush-wider-developments</guid>
      <pubDate>Wed, 27 Nov 2024 14:48:00 +0000</pubDate>
    </item>
    <item>
      <title>UnifiedPush: Standardise UP Client-Server Protocol?</title>
      <link>https://wrily.foad.me.uk/unifiedpush-standardise-up-client-server-protocol</link>
      <description>&lt;![CDATA[img src=&#34;https://blog.foad.me.uk/wp-content/uploads/2024/11/unifiedpush-favicon-128.png&#34; style=&#34;max-height: 5em&#34; /&#xA;&#xA;This is a technical article. For a more general introduction to UnifiedPush you might read the first half of Going Google-Free with UnifiedPush in /e/OS or my other articles about UnifiedPush .&#xA;&#xA;Should we consider standardising a UP client-server protocol so that a built-in distributor can work with several different server implementations and vice-versa?&#xA;&#xA;Not necessarily, and I will attempt to explain why.&#xA;!--more--&#xA;&#xA;UnifiedPush High Level Architecture&#xA;&#xA;UnifiedPush animation.svg&#xA;&#xA;Look at the diagrams on the unifiedpush.org home page. There are four connections involved, shown arranged in a square. UP standardises the protocol for one of the connections, the bottom one (UP distributor - app). It also standardises something about how the whole system works.&#xA;&#xA;The protocol on the top connection (App server -  UP server) has recently been upgraded to be compatible with WebPush.&#xA;&#xA;The other two (App - app-server and UP - UP-server) are two other, separate, independent protocols. The protocol the app developer uses for app - app-server is not relevant to UnifiedPush. At present, UnifiedPush standards also do not specify a protocol to be used for the connection between the UP server and the UP distributor (shown on the left).&#xA;&#xA;The ntfy distributor requires a ntfy server, whereas the nextpush distributor requires a nextpush server, and so on. They use different protocols for that link in the chain.&#xA;&#xA;Multiple Protocols or Standardised Protocol&#xA;&#xA;It would be possible to make a UP server that supports (for example) both the NextPush and ntfy protocol(s). In fact ntfy supports two different protocols (the &#34;json&#34; one and the &#34;websocket&#34; one) and you choose one in the settings. The ntfy server supports both of those.&#xA;&#xA;The point is, UP achieves its goals without needing to standardise there. In some respects it&#39;s beneficial that the user and/or service provider can choose those components and protocol that best suit their needs, while the end-user apps and app servers all still remain completely compatible (standardised) no matter what UP components are used.&#xA;&#xA;Additionally standardising the UP - UP-server protocol could make different UP servers and distributors interoperable. It could potentially help with users bringing their own choice of device (assuming it has a UP distributor built in) from one service provider to another, for example.&#xA;&#xA;But that&#39;s more of a deployment-level standard: something that service providers might want to standardise. Android-compatible mobile OS&#39;s (for example) might get together and declare &#34;we&#34; (as a loose group) like to standardise on (let&#39;s say) ntfy-websocket protocol here, because (suppose) it works best with android&#39;s OS network layer and sleep optimisations. (Just examples; I have not researched what protocol actually works best in each scenario.) Then, Linux-based mobile OS&#39;s might choose a different protocol that works better with Linux&#39;s networking and sleep optimisations. Then, if a certain libre mobile service provider wanted to support both android-compatible and linux-based devices, they might choose to support two protocols. Or would standardising on one protocol be more helpful in such a scenario? It&#39;s not clear.&#xA;&#xA;No ordinary person needs to be able to change their UP implementation. Only techies and service providers might like to do that.&#xA;&#xA;So, at this stage this is perhaps the least important of all the areas to work on.&#xA;&#xA;---&#xA;&#xA;First explained in #unifiedpush:matrix.org.&#xA;&#xA;#unifiedPush #degoogled #awesomeFOSS #eOS #Murena #ntfy #mobiFree&#xA;&#xA;!--more--&#xD;&#xA;----&#xD;&#xA;Follow/Feedback/Contact: RSS feed · Fedi follow this blog: @julian&amp;ZeroWidthSpace;@wrily.foad.me.uk · matrix me · Fedi follow me · email me · julian.foad.me.uk&#xD;&#xA;Donate: via Liberapay&#xD;&#xA;All posts &amp;copy; Julian Foad and licensed CC-BY-ND except quotes, translations, or where stated otherwise&#xD;&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<p><a href="https://unifiedpush.org/" title="UnifiedPush"><img src="https://blog.foad.me.uk/wp-content/uploads/2024/11/unifiedpush-favicon-128.png" style="max-height: 5em"/></a></p>

<p><em>This is a technical article. For a more general introduction to UnifiedPush you might read the first half of <a href="https://wrily.foad.me.uk/going-google-free-with-unifiedpush-in-e-os">Going Google-Free with UnifiedPush in /e/OS</a> or my other <a href="https://wrily.foad.me.uk/tag:unifiedPush">articles about UnifiedPush</a> .</em></p>

<p>Should we consider standardising a UP client-server protocol so that a built-in distributor can work with several different server implementations and <em>vice-versa</em>?</p>

<p>Not necessarily, and I will attempt to explain why.
</p>

<h2 id="unifiedpush-high-level-architecture" id="unifiedpush-high-level-architecture">UnifiedPush High Level Architecture</h2>

<p><a href="https://unifiedpush.org/"><img src="https://unifiedpush.org/img/animation.svg" alt="UnifiedPush animation.svg" title="UnifiedPush High Level Architecture diagram, from its home page"></a></p>

<p>Look at the diagrams on the <a href="https://unifiedpush.org/">unifiedpush.org</a> home page. There are four connections involved, shown arranged in a square. UP standardises the protocol for one of the connections, the bottom one (UP distributor &lt;–&gt; app). It also standardises something about how the whole system works.</p>

<p>The protocol on the top connection (App server –&gt; UP server) has recently been upgraded to be compatible with WebPush.</p>

<p>The other two (App &lt;–&gt; app-server and UP &lt;–&gt; UP-server) are two other, separate, independent protocols. The protocol the app developer uses for app &lt;–&gt; app-server is not relevant to UnifiedPush. At present, UnifiedPush standards also do not specify a protocol to be used for the connection between the UP server and the UP distributor (shown on the left).</p>

<p>The ntfy distributor requires a ntfy server, whereas the nextpush distributor requires a nextpush server, and so on. They use different protocols for <em>that</em> link in the chain.</p>

<h2 id="multiple-protocols-or-standardised-protocol" id="multiple-protocols-or-standardised-protocol">Multiple Protocols or Standardised Protocol</h2>

<p>It would be possible to make a UP server that supports (for example) both the NextPush and ntfy protocol(s). In fact ntfy supports two different protocols (the “json” one and the “websocket” one) and you choose one in the settings. The ntfy server supports both of those.</p>

<p>The point is, UP achieves its goals without needing to standardise there. In some respects it&#39;s beneficial that the user and/or service provider can choose those components and protocol that best suit their needs, while the end-user apps and app servers all still remain completely compatible (standardised) no matter what UP components are used.</p>

<p>Additionally standardising the UP &lt;–&gt; UP-server protocol could make different UP servers and distributors interoperable. It could potentially help with users bringing their own choice of device (assuming it has a UP distributor built in) from one service provider to another, for example.</p>

<p>But that&#39;s more of a deployment-level standard: something that service providers might want to standardise. Android-compatible mobile OS&#39;s (for example) might get together and declare “we” (as a loose group) like to standardise on (let&#39;s say) ntfy-websocket protocol here, because (suppose) it works best with android&#39;s OS network layer and sleep optimisations. (Just examples; I have not researched what protocol actually works best in each scenario.) Then, Linux-based mobile OS&#39;s might choose a different protocol that works better with Linux&#39;s networking and sleep optimisations. Then, if a certain libre mobile service provider wanted to support both android-compatible and linux-based devices, they might choose to support two protocols. Or would standardising on one protocol be more helpful in such a scenario? It&#39;s not clear.</p>

<p>No ordinary person needs to be able to change their UP implementation. Only techies and service providers might like to do that.</p>

<p>So, at this stage this is perhaps the least important of all the areas to work on.</p>

<hr>

<p><em>First explained in <a href="https://matrix.to/#/%23unifiedpush:matrix.org"><code>#unifiedpush:matrix.org</code></a>.</em></p>

<p><a href="https://wrily.foad.me.uk/tag:unifiedPush" class="hashtag"><span>#</span><span class="p-category">unifiedPush</span></a> <a href="https://wrily.foad.me.uk/tag:degoogled" class="hashtag"><span>#</span><span class="p-category">degoogled</span></a> <a href="https://wrily.foad.me.uk/tag:awesomeFOSS" class="hashtag"><span>#</span><span class="p-category">awesomeFOSS</span></a> <a href="https://wrily.foad.me.uk/tag:eOS" class="hashtag"><span>#</span><span class="p-category">eOS</span></a> <a href="https://wrily.foad.me.uk/tag:Murena" class="hashtag"><span>#</span><span class="p-category">Murena</span></a> <a href="https://wrily.foad.me.uk/tag:ntfy" class="hashtag"><span>#</span><span class="p-category">ntfy</span></a> <a href="https://wrily.foad.me.uk/tag:mobiFree" class="hashtag"><span>#</span><span class="p-category">mobiFree</span></a></p>



<hr>

<p><em>Follow/Feedback/Contact:</em> <a href="https://wrily.foad.me.uk/feed/"><em>RSS feed</em></a> · <em>Fedi follow this blog: @julian​@wrily.foad.me.uk</em> · <a href="https://matrix.to/#/@julian:foad.me.uk" title="matrix Julian"><em>matrix me</em></a> · <a href="https://fed.foad.me.uk/%40julian%40fed.foad.me.uk" title="follow Julian"><em>Fedi follow me</em></a> · <a href="mailto:julian@foad.me.uk?subject=Wrily" title="email Julian"><em>email me</em></a> · <a href="https://julian.foad.me.uk/"><em>julian.foad.me.uk</em></a>
<em>Donate:</em> <a href="https://liberapay.com/julianfoad" title="Donate to Julian using Liberapay"><em>via Liberapay</em></a>
<em>All posts © Julian Foad and licensed <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC-BY-ND</a> except quotes, translations, or where stated otherwise</em></p>
]]></content:encoded>
      <guid>https://wrily.foad.me.uk/unifiedpush-standardise-up-client-server-protocol</guid>
      <pubDate>Tue, 26 Nov 2024 20:00:00 +0000</pubDate>
    </item>
    <item>
      <title>Going Google-Free with UnifiedPush in /e/OS</title>
      <link>https://wrily.foad.me.uk/going-google-free-with-unifiedpush-in-e-os</link>
      <description>&lt;![CDATA[img src=&#34;https://blog.foad.me.uk/wp-content/uploads/2024/11/unifiedpush-favicon-128.png&#34; style=&#34;max-height: 5em&#34; / img src=&#34;https://blog.foad.me.uk/wp-content/uploads/2024/11/eos-logose-logo-color.png&#34; style=&#34;max-height: 5em&#34; /&#xA;&#xA;Congratulations UnifiedPush! Congratulations Murena!&#xA;&#xA;Murena&#39;s /e/OS 2.5 ships with UnifiedPush support included as announced by a small note in the 2.5-t release notes .&#xA;&#xA;This exciting development brings Google-free push messaging to the regular users of an important player in the freedom mobile OS space.&#xA;!--more--&#xA;&#xA;So What?&#xA;&#xA;Push messaging is the system that enables incoming messages to wake up and reach our apps, instantly and efficiently.&#xA;&#xA;To achieve this, the phone operating system keeps a single network connection open to a push messaging server. The apps don&#39;t need to keep running in the background: they can go to sleep. When a push message arrives, the OS wakes up the relevant app and hands it the message.&#xA;&#xA;All our apps share this push service -- even the &#34;private&#34; ones -- if they want push messaging. &#xA;&#xA;That&#39;s great, except... Who Cares Who Delivers Our Notifications?&#xA;&#xA;Until now, most people&#39;s phones run Google or Apple software. The Big Techs operate and control those phones. Along with everything else, they provide the push messaging service. And so they, Big Tech, control it.&#xA;&#xA;The UnifiedPush public open standard changes this. With UnifiedPush, we are no longer merely &#34;users&#34; of our devices but are in charge of them. With UnifiedPush, we can choose which service provider will deliver our push messaging. Thereby we are in control of who has the ability to monitor or block our push messaging.&#xA;&#xA;UnifiedPush has been available to those interested, for a while now, but until now it has required installing extra software.&#xA;&#xA;Putting the support for push messaging into the operating system means delusers/del people who choose not to be operated by Big Tech will now be able to simply install the apps they care about and immediately have the alternative system working for them.&#xA;&#xA;Technical&#xA;&#xA;I&#39;m going to delve into the technical side of this initial release, because it&#39;s a big interest area of mine. If you are a regular user, I suggest at this stage you might concentrate on switching to /e/OS or another freedom mobile OS and expect this functionality will be maturing quickly from now on and soon be seamless. If you&#39;re an early adopter or interested in its development, read on.&#xA;&#xA;I am trying it out. I already run /e/OS on my main phone and upgrading to version 2.5 was simple with the built-in upgrader.&#xA;&#xA;The OS embeds a custom fork of ntfy, calling itself &#34;foundation.e.ntfy 1.17.0&#34;. So, congratulations also to ntfy! At this stage the developer of ntfy, Philip Heckel, told me in #ntfy room he was &#34;not yet involved&#34; in this development and this is the &#34;First I&#39;m hearing about it.&#34;&#xA;&#xA;ntfy is a notification system that can also provide UnifiedPush service. It is so good at this job that it has for some time been the UnifiedPush implementation recommended for most people. One can install the ntfy app and it provides UnifiedPush service to our other apps.&#xA;&#xA;When we install the ntfy app ourself, we may either let it use the creator&#39;s default server (at ntfy.sh) or configure it to use our choice of ntfy server, if we know of one or if we run our own. As with anything, using someone else&#39;s server comes with conditions and restrictions, especially if we don&#39;t pay for the service, so we need to think about that.&#xA;&#xA;Let&#39;s see what /e/OS does.&#xA;&#xA;If not Google&#39;s then Whose Server?&#xA;&#xA;In this push service built in to /e/OS, there is no configuration UI. There is a tiny settings UI where we have to &#34;enable&#34; the service -- see below. Technically, the full ntfy UI is also available, but not accessible through the normal system UI -- neither the app launcher nor the settings. But as curious techies we can hack in to it if we like. See below.&#xA;&#xA;What we can do is install and use the UP-example app. Click the &#34;REGISTER&#34; button, and we discover it&#39;s preconfigured to connect to... . o O (their own ntfy server?) No! It connects to ntfy.sh, the server run by the author of ntfy. Hmm.&#xA;&#xA;I should say that I found this while not signed in to Murena&#39;s &#34;e cloud&#34; services. It&#39;s possible and would make some sense if it would point to a different server if signed in. I will be interested to find out.&#xA;&#xA;The first thing to comment on, then, is Murena will surely need to run their own push server, for privacy and scaling and economic reasons, or else make an agreement with ntfy. In the short term, to get things started, it may be acceptable for everyone to be subject to the free (gratis) ntfy service&#39;s rate limits and other conditions. That&#39;s something that can be changed later, seamlessly, because UnifiedPush doesn&#39;t require app (server) developers to know or care which service provider they will eventually be connecting to.&#xA;&#xA;Secondly, for privacy and self-determination reasons, there should be a way to use our own choice of server, but not necessarily as a dedicated configuration option. A better way might be to tie it to the main Nextcloud account through a single-sign-on, so that when we set up the phone we have only to make that one choice of service provider and expect it to cover all services. That would give people the advantage of simplicity which is how the Big Techs play that game, but now with open standard technologies enabling us to have a choice among service providers.&#xA;&#xA;When an app registers for UnifiedPush service, if more than one distributor is installed, it asks which to use. A normal user would have only one, and would not see this. Here as an experimentor and developer I already had both ntfy and NextPush installed:&#xA;&#xA;  It&#39;s not ideal that it identifies as &#34;ntfy&#34;, exactly the same as the official ntfy app. I expect this will soon be changed to /e/OS branding.&#xA;&#xA;The tiny settings UI is found a the bottom of the system settings menu.&#xA;&#xA;    It&#39;s disabled by default. In this state, the UnifiedPush service is still advertised to apps, and they can register, but push messages are not delivered. (I suspect this isn&#39;t how we want the disabled state to be. Probably it should not advertise as available.)&#xA;&#xA;That&#39;s all the configuration we get in this version of /e/OS.&#xA;&#xA;(Aside: I couldn&#39;t find this in settings, to begin with. Searching in settings for &#34;ntfy&#34; or &#34;push&#34; or &#34;unifiedpush&#34; doesn&#39;t return any results, for me.)&#xA;&#xA;Let&#39;s Hack In&#xA;&#xA;As a developer we can access the ntfy UI through the system terminal, for example through an ADB shell (running this command on a USB-connected computer with &#34;adb&#34; tool installed, with ADB USB debugging enabled in the phone&#39;s developer settings):&#xA;&#xA;adb shell am start -n foundation.e.ntfy/io.heckel.ntfy.ui.MainActivity&#xA;&#xA;  Just the same as in the user-installed ntfy app. (I can compare them side by side because I also have it installed, because I was already using it before this upgrade.)&#xA;&#xA;We first notice this screen prominently shows some warnings about battery optimisation and choice of connection protocol. Are these warnings relevant to this version?, I wonder. (At first it showed only the first, and later both.)&#xA;&#xA;And it lets us open its settings. In the ntfy settings we can choose our own server, and I can confirm this takes effect and works.&#xA;&#xA;  This screen also shows the currently subscribed topics -- here, the &#34;example&#34; one -- and after configuring it to use my own server, the displayed URL confirms that. (Generally one &#34;topic&#34; corresponds to one app.)&#xA;&#xA;Ntfy Not NextPush?&#xA;&#xA;I&#39;m a little surprised Murena chose ntfy, seeing as their system is closely coupled to Nextcloud: there is also Nextpush (source on Codeberg, yay!), a Nextcloud-hosted UnifiedPush server module and its client app, that could be used instead. Perhaps they found ntfy is more stable or refined than Nextpush.&#xA;&#xA;UnifiedPush developer S1m says the &#34;Next version of NextPush will be a lot more stable, and I&#39;ve rewritten the UI.&#34;&#xA;&#xA;The Future&#xA;&#xA;While UnifiedPush is pretty good standard already, it is still maturing. Some important, recent improvements are making their way into the standard and into implementations like ntfy right now. These include full compatibility with the WebPush standard, and a better way to wake an app without it needing permission for unrestricted battery usage.&#xA;&#xA;An adjacent recent development is DAV Push, an open standard for pushing instant updates to our shared files, calendars and contacts through CalDAV, CardDAV and WebDAV, which can also work through UnifiedPush.&#xA;&#xA;To ensure people can exercise their right NOT to depend on Google, we have wider work to do. Integrating a UnifiedPush distributor is one useful step towards it. Beyond this, we need to be working with the developers of popular apps to get them supported, sharing this development across the freedom mobile OS ecosystem, deploying servers, ensuring reliability, and more. I write about this in a follow-up post: UnifiedPush — Wider Developments .&#xA;&#xA;Conclusion&#xA;&#xA;The details of this initial implementation seem to me to indicate an early preview release, with significant changes still needed. But that&#39;s OK: these technical implementation details can be changed.&#xA;&#xA;Leaving that aside, the social side of this is amazing: it&#39;s making UP available to main-stream users. That&#39;s a big deal for the libre mobile ecosystem. Hurray!&#xA;&#xA;---&#xA;&#xA;Add UnifiedPush to /e/OS to make it possible for developers to avoid FCM and better support F-Droid applications -- an /e/ community forum thread requesting UP support.&#xA;Source code of /e/ fork of ntfy: https://gitlab.e.foundation/e/os/ntfy-android&#xA;&#34;Integrate ntfy in /e/OS&#34; --merge request, including a simple settings UI (just enable/disable).&#xA;Romain Hunault of Murena is presenting it at Capitole du Libre 2024 this afternoon.&#xA;&#xA;---&#xA;&#xA;#unifiedPush #degoogled #awesomeFOSS #eOS #Murena #ntfy #mobiFree&#xA;&#xA;!--more--&#xD;&#xA;----&#xD;&#xA;Follow/Feedback/Contact: RSS feed · Fedi follow this blog: @julian&amp;ZeroWidthSpace;@wrily.foad.me.uk · matrix me · Fedi follow me · email me · julian.foad.me.uk&#xD;&#xA;Donate: via Liberapay&#xD;&#xA;All posts &amp;copy; Julian Foad and licensed CC-BY-ND except quotes, translations, or where stated otherwise&#xD;&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<p><a href="https://unifiedpush.org/" title="UnifiedPush"><img src="https://blog.foad.me.uk/wp-content/uploads/2024/11/unifiedpush-favicon-128.png" style="max-height: 5em"/></a> <a href="https://e.foundation/" title="/e/ foundation"><img src="https://blog.foad.me.uk/wp-content/uploads/2024/11/eos-logos_e-logo-color.png" style="max-height: 5em"/></a></p>

<p>Congratulations UnifiedPush! Congratulations Murena!</p>

<p>Murena&#39;s /e/OS 2.5 <a href="https://community.e.foundation/t/add-unifiedpush-to-e-os-to-make-it-possible-for-developers-to-avoid-fcm-and-better-support-f-droid-applications/46197/28" title="an /e/ community forum thread requesting UP support">ships with UnifiedPush support included</a> as announced by a small note in <a href="https://gitlab.e.foundation/e/os/releases/-/releases/v2.5-t">the 2.5-t release notes</a> .</p>

<p>This exciting development brings Google-free push messaging to the regular users of an important player in the freedom mobile OS space.
</p>

<h2 id="so-what" id="so-what">So What?</h2>

<p>Push messaging is the system that enables incoming messages to wake up and reach our apps, instantly and efficiently.</p>

<p>To achieve this, the phone operating system keeps a single network connection open to a push messaging server. The apps don&#39;t need to keep running in the background: they can go to sleep. When a push message arrives, the OS wakes up the relevant app and hands it the message.</p>

<p>All our apps share this push service — even the “private” ones — if they want push messaging.</p>

<p>That&#39;s great, except... <a href="https://wrily.foad.me.uk/who-cares-who-delivers-our-notifications">Who Cares Who Delivers Our Notifications?</a></p>

<p>Until now, most people&#39;s phones run Google or Apple software. The Big Techs operate and control those phones. Along with everything else, they provide the push messaging service. And so they, Big Tech, control it.</p>

<p>The <a href="https://unifiedpush.org/">UnifiedPush</a> public open standard changes this. With UnifiedPush, we are no longer merely “users” of our devices but are in charge of them. With UnifiedPush, we can choose which service provider will deliver our push messaging. Thereby we are in control of who has the ability to monitor or block our push messaging.</p>

<p>UnifiedPush has been available to those interested, for a while now, but until now it has required installing extra software.</p>

<p>Putting the support for push messaging into the operating system means <del>users</del> people who choose not to be operated by Big Tech will now be able to simply install the apps they care about and immediately have the alternative system working for them.</p>

<h2 id="technical" id="technical">Technical</h2>

<p>I&#39;m going to delve into the technical side of this initial release, because it&#39;s a big interest area of mine. If you are a regular user, I suggest at this stage you might concentrate on <a href="https://wrily.foad.me.uk/freedom-respecting-smart-phone-want-get-have" title="You Too Can Have a Freedom-Respecting Smart Phone!">switching to /e/OS or another freedom mobile OS</a> and expect this functionality will be maturing quickly from now on and soon be seamless. If you&#39;re an early adopter or interested in its development, read on.</p>

<p>I am trying it out. I already run /e/OS on my main phone and upgrading to version 2.5 was simple with the built-in upgrader.</p>

<p>The OS embeds a custom fork of <a href="https://ntfy.sh">ntfy</a>, calling itself “foundation.e.ntfy 1.17.0”. So, congratulations also to <a href="https://ntfy.sh">ntfy</a>! At this stage the developer of ntfy, Philip Heckel, <a href="https://matrix.to/#/!KQaqifczWbCaidLETg:matrix.org/$Fpj8SD6Cih0sFmtGgLgxWINMWrHJs2711YzLP5zhWMM?via=foad.me.uk&amp;amp;via=t2bot.io&amp;amp;via=matrix.org">told me</a> in <a href="https://matrix.to/#/%23ntfy:matrix.org"><code>#ntfy</code></a> room he was “not yet involved” in this development and this is the “First I&#39;m hearing about it.”</p>

<p><a href="https://ntfy.sh">ntfy</a> is a notification system that can also provide UnifiedPush service. It is so good at this job that it has for some time been the UnifiedPush implementation recommended for most people. One can install the <a href="https://ntfy.sh">ntfy</a> app and it provides UnifiedPush service to our other apps.</p>

<p>When we install the ntfy app ourself, we may either let it use the creator&#39;s default server (at <code>ntfy.sh</code>) or configure it to use our choice of ntfy server, if we know of one or if we run our own. As with anything, using someone else&#39;s server comes with conditions and restrictions, especially if we don&#39;t pay for the service, so we need to think about that.</p>

<p>Let&#39;s see what /e/OS does.</p>

<h2 id="if-not-google-s-then-whose-server" id="if-not-google-s-then-whose-server">If not Google&#39;s then Whose Server?</h2>

<p>In this push service built in to /e/OS, there is no configuration UI. There is a tiny settings UI where we have to “enable” the service — see below. Technically, the full ntfy UI is also available, but not accessible through the normal system UI — neither the app launcher nor the settings. But as curious techies we can hack in to it if we like. See below.</p>

<p>What we can do is install and use the <a href="https://f-droid.org/en/packages/org.unifiedpush.example/">UP-example</a> app. Click the “REGISTER” button, and we discover it&#39;s preconfigured to connect to... . o O (their own ntfy server?) No! It connects to ntfy.sh, the server run by the author of ntfy. Hmm.</p>

<p>I should say that I found this while <strong>not</strong> signed in to Murena&#39;s “e cloud” services. It&#39;s possible and would make some sense if it would point to a different server if signed in. I will be interested to find out.</p>

<p>The first thing to comment on, then, is Murena will surely need to run their own push server, for privacy and scaling and economic reasons, or else make an agreement with ntfy. In the short term, to get things started, it may be acceptable for everyone to be subject to the free (gratis) ntfy service&#39;s rate limits and other conditions. That&#39;s something that can be changed later, seamlessly, because UnifiedPush doesn&#39;t require app (server) developers to know or care which service provider they will eventually be connecting to.</p>

<p>Secondly, for privacy and self-determination reasons, there should be a way to use our own choice of server, but not necessarily as a dedicated configuration option. A better way might be to tie it to the main Nextcloud account through a single-sign-on, so that when we set up the phone we have only to make that one choice of service provider and expect it to cover all services. That would give people the advantage of simplicity which is how the Big Techs play that game, but now with open standard technologies enabling us to have a choice among service providers.</p>

<p>When an app registers for UnifiedPush service, if more than one distributor is installed, it asks which to use. A normal user would have only one, and would not see this. Here as an experimentor and developer I already had both ntfy and NextPush installed:</p>

<blockquote><p><img src="https://blog.foad.me.uk/wp-content/uploads/2024/11/20241119-UP-chooser.png" alt=""></p></blockquote>

<p>It&#39;s not ideal that it identifies as “ntfy”, exactly the same as the official ntfy app. I expect this will soon be changed to /e/OS branding.</p>

<p>The tiny settings UI is found a the bottom of the system settings menu.</p>

<blockquote><p><img src="https://blog.foad.me.uk/wp-content/uploads/2024/11/20241116-eOS-ntfy-Settings1.png" alt=""></p>

<p><img src="https://blog.foad.me.uk/wp-content/uploads/2024/11/20241116-eOS-ntfy-Settings2.png" alt=""></p></blockquote>

<p>It&#39;s disabled by default. In this state, the UnifiedPush service is still advertised to apps, and they can register, but push messages are not delivered. (I suspect this isn&#39;t how we want the disabled state to be. Probably it should not advertise as available.)</p>

<p>That&#39;s all the configuration we get in this version of /e/OS.</p>

<p>(Aside: I couldn&#39;t find this in settings, to begin with. Searching in settings for “ntfy” or “push” or “unifiedpush” doesn&#39;t return any results, for me.)</p>

<h2 id="let-s-hack-in" id="let-s-hack-in">Let&#39;s Hack In</h2>

<p>As a developer we can access the ntfy UI through the system terminal, for example through an ADB shell (running this command on a USB-connected computer with “adb” tool installed, with ADB USB debugging enabled in the phone&#39;s developer settings):</p>

<pre><code class="language-sh">adb shell am start -n foundation.e.ntfy/io.heckel.ntfy.ui.MainActivity
</code></pre>

<blockquote><p><img src="https://blog.foad.me.uk/wp-content/uploads/2024/11/20241119-eOS-ntfy-UI-main.png" alt=""></p></blockquote>

<p>Just the same as in the user-installed ntfy app. (I can compare them side by side because I also have it installed, because I was already using it before this upgrade.)</p>

<p>We first notice this screen prominently shows some warnings about battery optimisation and choice of connection protocol. Are these warnings relevant to this version?, I wonder. (At first it showed only the first, and later both.)</p>

<p>And it lets us open its settings. In the ntfy settings we can choose our own server, and I can confirm this takes effect and works.</p>

<blockquote><p><img src="https://blog.foad.me.uk/wp-content/uploads/2024/11/20241119-eOS-ntfy-UI-settings.png" alt=""></p></blockquote>

<p>This screen also shows the currently subscribed topics — here, the “example” one — and after configuring it to use my own server, the displayed URL confirms that. (Generally one “topic” corresponds to one app.)</p>

<h2 id="ntfy-not-nextpush" id="ntfy-not-nextpush">Ntfy Not NextPush?</h2>

<p>I&#39;m a little surprised Murena chose ntfy, seeing as their system is closely coupled to Nextcloud: there is also <a href="https://unifiedpush.org/users/distributors/nextpush/">Nextpush</a> (source <a href="https://codeberg.org/NextPush/">on Codeberg</a>, yay!), a Nextcloud-hosted UnifiedPush server module and its client app, that could be used instead. Perhaps they found ntfy is more stable or refined than Nextpush.</p>

<p>UnifiedPush developer S1m says the “Next version of NextPush will be a lot more stable, and I&#39;ve rewritten the UI.”</p>

<h2 id="the-future" id="the-future">The Future</h2>

<p>While UnifiedPush is pretty good standard already, it is still maturing. Some important, recent improvements are making their way into the standard and into implementations like ntfy right now. These include full compatibility with the WebPush standard, and a <a href="https://unifiedpush.org/developers/spec/android/#service-to-raise-to-the-foreground">better way to wake an app</a> without it needing permission for unrestricted battery usage.</p>

<p>An adjacent recent development is <a href="https://wrily.foad.me.uk/davx5-developing-dav-push-standard">DAV Push</a>, an open standard for pushing instant updates to our shared files, calendars and contacts through CalDAV, CardDAV and WebDAV, which can also work through UnifiedPush.</p>

<p>To ensure people can exercise their right NOT to depend on Google, we have wider work to do. Integrating a UnifiedPush distributor is one useful step towards it. Beyond this, we need to be working with the developers of popular apps to get them supported, sharing this development across the freedom mobile OS ecosystem, deploying servers, ensuring reliability, and more. I write about this in a follow-up post: <a href="https://wrily.foad.me.uk/unifiedpush-wider-developments">UnifiedPush — Wider Developments</a> .</p>

<h2 id="conclusion" id="conclusion">Conclusion</h2>

<p>The details of this initial implementation seem to me to indicate an early preview release, with significant changes still needed. But that&#39;s OK: these technical implementation details can be changed.</p>

<p>Leaving that aside, the social side of this is amazing: it&#39;s making UP available to main-stream users. That&#39;s a big deal for the libre mobile ecosystem. Hurray!</p>

<hr>
<ul><li><a href="https://community.e.foundation/t/add-unifiedpush-to-e-os-to-make-it-possible-for-developers-to-avoid-fcm-and-better-support-f-droid-applications/46197/28">Add UnifiedPush to /e/OS to make it possible for developers to avoid FCM and better support F-Droid applications</a> — an /e/ community forum thread requesting UP support.</li>
<li>Source code of /e/ fork of ntfy: <a href="https://gitlab.e.foundation/e/os/ntfy-android">https://gitlab.e.foundation/e/os/ntfy-android</a></li>
<li><a href="https://gitlab.e.foundation/e/os/ntfy-android/-/merge_requests/12">“Integrate ntfy in /e/OS”</a> —merge request, including a simple settings UI (just enable/disable).</li>
<li>Romain Hunault of Murena is <a href="https://cfp.capitoledulibre.org/cdl-2024/talk/89HG8E/">presenting it at Capitole du Libre 2024</a> this afternoon.</li></ul>

<hr>

<p><a href="https://wrily.foad.me.uk/tag:unifiedPush" class="hashtag"><span>#</span><span class="p-category">unifiedPush</span></a> <a href="https://wrily.foad.me.uk/tag:degoogled" class="hashtag"><span>#</span><span class="p-category">degoogled</span></a> <a href="https://wrily.foad.me.uk/tag:awesomeFOSS" class="hashtag"><span>#</span><span class="p-category">awesomeFOSS</span></a> <a href="https://wrily.foad.me.uk/tag:eOS" class="hashtag"><span>#</span><span class="p-category">eOS</span></a> <a href="https://wrily.foad.me.uk/tag:Murena" class="hashtag"><span>#</span><span class="p-category">Murena</span></a> <a href="https://wrily.foad.me.uk/tag:ntfy" class="hashtag"><span>#</span><span class="p-category">ntfy</span></a> <a href="https://wrily.foad.me.uk/tag:mobiFree" class="hashtag"><span>#</span><span class="p-category">mobiFree</span></a></p>



<hr>

<p><em>Follow/Feedback/Contact:</em> <a href="https://wrily.foad.me.uk/feed/"><em>RSS feed</em></a> · <em>Fedi follow this blog: @julian​@wrily.foad.me.uk</em> · <a href="https://matrix.to/#/@julian:foad.me.uk" title="matrix Julian"><em>matrix me</em></a> · <a href="https://fed.foad.me.uk/%40julian%40fed.foad.me.uk" title="follow Julian"><em>Fedi follow me</em></a> · <a href="mailto:julian@foad.me.uk?subject=Wrily" title="email Julian"><em>email me</em></a> · <a href="https://julian.foad.me.uk/"><em>julian.foad.me.uk</em></a>
<em>Donate:</em> <a href="https://liberapay.com/julianfoad" title="Donate to Julian using Liberapay"><em>via Liberapay</em></a>
<em>All posts © Julian Foad and licensed <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC-BY-ND</a> except quotes, translations, or where stated otherwise</em></p>
]]></content:encoded>
      <guid>https://wrily.foad.me.uk/going-google-free-with-unifiedpush-in-e-os</guid>
      <pubDate>Tue, 19 Nov 2024 12:00:00 +0000</pubDate>
    </item>
  </channel>
</rss>