# -*- ispell-local-dictionary: "english" -*- * Usage ** Basic usage #+begin_src yaml ntfy: options: ## These are default of the charm (different from default of `ntfy`) #auth-default-access: deny-all #enable-signup: false #enable-login: true #enable-reservations: true #+end_src Any option from the help of [[https://docs.ntfy.sh/config/][ntfy]] can be used, to the exception of ~firebase-key-file~. To setup ~firebase~, there are some slight differences you can find here. *** Creating an admin account By default, =ntfy= doesn't provide any account nor permissions. This charm will enforce a different stance, and by default will not allow anything without permission. If you want to follow this route, you'll need to create an admin account: You need to attach to the ntfy container: #+begin_src sh docker exec -ti myproject_ntfy_1 sh #+end_src #+begin_src sh ntfy user add --role=admin admin #+end_src *** Adding user For listening topics #+begin_src sh ntfy user add myuser #+end_src To set access to topics #+begin_src sh ntfy access myuser mytopic read-only #+end_src *** Create a token for a user This allows to give a kind of secret key that is revokable. You would do this to distribute access to services that would need to send notification. To create a token from a user: #+begin_src sh ntfy token add admin #+end_src ** Connection with =Firebase= I you build your own Android/IOS ntfy app, you can use Firebase Cloud Messaging (FCM) to send notification through official channel. To configure your server to send notification with Firebase you can: #+begin_src yaml ntfy: options: firebase: ## content of your firebase service key file in yaml type: service_account project_id: myfirebase-project private_key_id: 0ebce...41480 private_key: | -----BEGIN PRIVATE KEY----- MzynkLGbScqN4XAWCU84Q6LLi6MFsnDyrA883Cdkttg1zI62q/BohgIck+897oyb .. ifQT/X7DVZl42p0M1mwwdAS8Ig== -----END PRIVATE KEY----- client_email: firebase-adminsdk-fodhh@ntfy-0k.iam.gserviceaccount.com client_id: "101777552980915316312" auth_uri: https://accounts.google.com/o/oauth2/auth token_uri: https://oauth2.googleapis.com/token auth_provider_x509_cert_url: https://www.googleapis.com/oauth2/v1/certs client_x509_cert_url: https://www.googleapis.com/robot/v1/metadata/x509/firebase-adminsdk-fxdhj%40myfirebase-project.iam.gserviceaccount.com #+end_src To produce the output from the private service key file you created in =Firebase= you could: #+begin_src sh cat myfirebase-project-firebase-adminsdk-fxdhj-6eaewk4a4.json | yq -p json -o yaml #+end_src To get more information about how to deploy your own app [[https://docs.ntfy.sh/config/#firebase-fcm][ntfy's doc about FCM]] might be helpful.