parent
7b9161899d
commit
d60a79d62f
1 changed files with 83 additions and 1 deletions
84
README.md
84
README.md
|
@ -1,3 +1,85 @@
|
||||||
# nextcloud-ntfy.sh
|
# nextcloud-ntfy.sh
|
||||||
|
|
||||||
Receive Push Notifications on Android without Google services
|
Are you tired of Nextcloud
|
||||||
|
[**still not supporting notifications F-Droid**](https://github.com/nextcloud/talk-android/issues/257)?
|
||||||
|
After 4 years I sure am!
|
||||||
|
|
||||||
|
But you don't have to be because I solved it for you! Simply run this brigde,
|
||||||
|
install install the `ntfy` app and you're done!
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- 💻 Can be run on any machine with Python 3
|
||||||
|
- 🌐 Support for both the official `ntfy.sh` and self-hosted instances
|
||||||
|
- 🔒 Support for token authentication with `ntfy`
|
||||||
|
- 🗑️ Dismiss button to remove the notification on Nextcloud too
|
||||||
|
- 🛠️ Action buttons*
|
||||||
|
|
||||||
|
> [!Note]
|
||||||
|
> \* Action buttons currently open the browser instead of launching the correct
|
||||||
|
> app. I haven't found any mention of Nextcloud supporting app URLs (eg. `twitter://`)
|
||||||
|
|
||||||
|
## Setup
|
||||||
|
|
||||||
|
### 0. Create a new application password for your Nextcloud account
|
||||||
|
|
||||||
|
This is better as if you leak you can easily remove it and no other passwords
|
||||||
|
can be guessed from it.
|
||||||
|
|
||||||
|
> [!Note]
|
||||||
|
> If your passwords can be guessed from knowing other passwords consider
|
||||||
|
> using a password manager and generated passwords...
|
||||||
|
|
||||||
|
### 1. On the machine running the bridge
|
||||||
|
|
||||||
|
1. Grab a release
|
||||||
|
2. Create a config file: `cp config-example.json config.json`
|
||||||
|
3. Fill out the necessary values, they should be self-explanatory:
|
||||||
|
- `ntfy_topic`
|
||||||
|
- `nextcloud_base_url`
|
||||||
|
- `nextcloud_username`
|
||||||
|
- `nextcloud_password`
|
||||||
|
4. Start the bridge: `python3 main.py -c config.json`
|
||||||
|
|
||||||
|
> [!CAUTION]
|
||||||
|
> On `ntfy.sh` (and instances with `auth-default-access` set to `read-write`)
|
||||||
|
> you **need** to set a secure topic id. It acts as your password so
|
||||||
|
> **if anyone gets your topic id they can read all your notifications!**
|
||||||
|
|
||||||
|
### 2. On your phone
|
||||||
|
|
||||||
|
1. Install [the `ntfy.sh` app](https://f-droid.org/en/packages/io.heckel.ntfy/)
|
||||||
|
2. Click the `+` button in the bottom right corner
|
||||||
|
3. Input the topic you set in `config.json`
|
||||||
|
|
||||||
|
### 3. Profit
|
||||||
|
|
||||||
|
## How did this happen?
|
||||||
|
|
||||||
|
I wanted to self-host `ntfy` so that I'd get better UnifiedPush experience
|
||||||
|
than I had with the [Nextcloud UnifiedPush Provider](https://apps.nextcloud.com/apps/uppush)
|
||||||
|
app. My Nextcloud instance shuts down for backups (generates a notification error in the app)
|
||||||
|
and you have to set up redirects in order to get Matrix notifications working.
|
||||||
|
|
||||||
|
So I got `ntfy` working and I saw that the documentation has
|
||||||
|
[Integrations + community projects](https://docs.ntfy.sh/integrations/)
|
||||||
|
section.
|
||||||
|
|
||||||
|
Going through it I found this video: https://www.youtube.com/watch?v=0a6PpfN5PD8
|
||||||
|
|
||||||
|
It's about a script someone created to pull notifications from Nextcloud and
|
||||||
|
push them to `ntfy`. I found it interesting but from a quick look at the script
|
||||||
|
it was more limited than I'd like it to be. for example the notifications
|
||||||
|
were immediately removed from Nextcloud which I didn't like.
|
||||||
|
|
||||||
|
As the script didn't have any license attached I decided to make my own
|
||||||
|
from the ground up. Within 90 minutes I had a working prototype sending
|
||||||
|
notifications to my phone.
|
||||||
|
|
||||||
|
From there I continued my work. First I created the `Dismiss` button.
|
||||||
|
Then I noticed that `ntfy` can create action buttons so
|
||||||
|
I parsed Nextcloud's notification buttons into something `ntfy` can understand.
|
||||||
|
|
||||||
|
In about 4-5 hour I had basically all the features finished. Hopefully I'll
|
||||||
|
be able to add more (like opening the Nextcloud App instead of the browser)
|
||||||
|
but we'll see what's possible.
|
||||||
|
|
Loading…
Reference in a new issue