Skip to content

Docker container for sending Gotify notifications to iOS devices (bridge to gotify websocket)

License

Notifications You must be signed in to change notification settings

androidseb25/iGotify-Notification-Assistent

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Donate with PayPal Stars Crowdin

iGotify

A small Gotify server notification assistent that decrypt the message and trigger a Push Notifications to iOS Devices via Apple's APNs with my service SecNtfy

Download Link to iGotify down below

 

⭐ Features

  • show received notifications with markdown
  • decrypted the message with a public key that is generated from the iGotify device
  • sending the decrypted message to SecNtfy and forwarded it to Apple's APN service, without saving the payload
  • multiuser support

 

🔧 How to Install Gotify & iGotify-Notification-Assist

🐳 Docker docker-compose.yaml

Installation

  1. Create a file with the name docker-compose.yaml or clone this repo and go to step 3
  2. Please use the latest and recommended version of docker and docker compose
  3. Copy the code down below in the yaml file
  4. change environment variables in the compose file
  5. execute docker compose up -d to start the docker compose

 

Needed environment variables

  • GOTIFY_DEFAULTUSER_PASS = the user password for the defaultuser

Optional environment variables

  • GOTIFY_URLS = the local gotify sever URL e.g.: http://gotify
  • GOTIFY_CLIENT_TOKENS = the client token from the Gotify Client e.g.: cXXXXXXXX
  • SECNTFY_TOKENS = the SecNtfy Token that you get from the app after configure it e.g.: NTFY-DEVICE-XXXXXX

These three environment variables above aren't required when the Gotify & iGotify Instances available over a domain!

  • ENABLE_CONSOLE_LOG = you can disable unnecessary console logs (default: true)
  • ENABLE_SCALAR_UI = you can now disable the Endpoint page (default: true)

please write the boolean variables (true, false) in single quotes 'true'

All these configuration can be found after configure the app. It will display it for you

Please note you can configure multiple instances of local gotify server by adding a semicolon ; after each environment value e.g.:

  • GOTIFY_URLS: 'http://gotify;http://gotify2;http://gotify3;...'
  • GOTIFY_CLIENT_TOKENS: 'cXXXXXXXX1;cXXXXXXXX2;cXXXXXXXX3;...'
  • SECNTFY_TOKENS: 'NTFY-DEVICE-XXXXXX1;NTFY-DEVICE-XXXXXX2;NTFY-DEVICE-XXXXXX3;...'

 

services: gotify: container_name: gotify hostname: gotify image: gotify/server restart: unless-stopped security_opt: - no-new-privileges:true networks: - net ports: - "8680:80" volumes: - data:/app/data environment: GOTIFY_DEFAULTUSER_PASS: 'my-very-strong-password' # Change me!!!!! igotify: container_name: igotify hostname: igotify image: ghcr.io/androidseb25/igotify-notification-assist:latest restart: unless-stopped security_opt: - no-new-privileges:true pull_policy: always healthcheck: test: [ "CMD", "curl", "-f", "http://localhost:8080/Version" ] interval: "3s" timeout: "3s" retries: 5 networks: - net ports: - "8681:8080" volumes: - api-data:/app/data #environment: # option environment see above note # GOTIFY_URLS: '' # GOTIFY_CLIENT_TOKENS: '' # SECNTFY_TOKENS: '' networks: net: volumes: data: api-data:

Thank you The_Think3r for the compose file and @herrpandora

 

(Optional) NGINX Proxy Manager

When someone have problem's with incoming notifications on the app, please try this options under Advance Settings for the setuped proxies

proxy_set_header Host $http_host; proxy_connect_timeout 1m; proxy_send_timeout 1m; proxy_read_timeout 1m;

Also don't check the boxes which say "HTTP/2 Support" and "HSTS enabled".

Thank you to @TBT-TBT for sharing this notice

 

Traefik Config

services: gotify: container_name: gotify hostname: gotify image: gotify/server restart: unless-stopped security_opt: - no-new-privileges:true volumes: - data:/app/data environment: GOTIFY_DEFAULTUSER_PASS: 'my-very-strong-password' # Change me!!!!! GOTIFY_REGISTRATION: 'false' labels: traefik.docker.network: proxy traefik.enable: "true" traefik.http.routers.gotify-secure.entrypoints: websecure traefik.http.routers.gotify-secure.middlewares: default@file traefik.http.routers.gotify-secure.rule: Host(`gotify.domain-name.de`) traefik.http.routers.gotify-secure.service: gotify traefik.http.routers.gotify-secure.tls: "true" traefik.http.routers.gotify-secure.tls.certresolver: http_resolver traefik.http.routers.gotify.entrypoints: web traefik.http.routers.gotify.rule: Host(`gotify.domain-name.de`) traefik.http.services.gotify.loadbalancer.server.port: "80" networks: default: null proxy: null igotify-notification: # (iGotify-Notification-Assistent) container_name: igotify hostname: igotify image: ghcr.io/androidseb25/igotify-notification-assist:latest restart: always security_opt: - no-new-privileges:true pull_policy: always healthcheck: test: [ "CMD", "curl", "-f", "http://localhost:8080/Version" ] interval: "3s" timeout: "3s" retries: 5 volumes: - api-data:/app/data #environment: # option environment see above note # GOTIFY_URLS: '' # GOTIFY_CLIENT_TOKENS: '' # SECNTFY_TOKENS: '' labels: traefik.docker.network: proxy traefik.enable: "true" traefik.http.routers.igotify-secure.entrypoints: websecure traefik.http.routers.igotify-secure.middlewares: default@file traefik.http.routers.igotify-secure.rule: Host(`igotify.domain-name.de`) traefik.http.routers.igotify-secure.service: igotify traefik.http.routers.igotify-secure.tls: "true" traefik.http.routers.igotify-secure.tls.certresolver: http_resolver traefik.http.routers.igotify.entrypoints: web traefik.http.routers.igotify.rule: Host(`igotify.domain-name.de`) traefik.http.services.igotify.loadbalancer.server.port: "8080" networks: default: null proxy: null networks: default: proxy: external: true volumes: data: api-data:

Thank you to @majo1989 for sharing this config

 

🔧 Install iGotify app

Download from AppStore

Download on the App Store

For Bugs or feedback please send me a PM in Discord under the name sebakaderangler or fill out the issue formular here on GitHub.

On the login screen you need to enter the Gotify Server URL and the URL from the Notification Assist, if you use the URL with a port please enter it, too! (Image 1)

After the checks for the URL are finished and correct you need to login with your login credentials. (Image 2)

 

 

And if everythink is ok, you're logged in 🎉

Now you receive background notifications when Gotify receives a message.

Translation

If you want to be a part of the translation team please create a issue:

Title: Translation: language

Description: crowdin username and why you would be a part of the translation team

maybe you've been invited soon

The link to the crowdin project: https://de.crowdin.com/project/igotify

SecNtfy Status

Here you can find the online status of the service Status

About

Docker container for sending Gotify notifications to iOS devices (bridge to gotify websocket)

Resources

License

Contributing

Stars

Watchers

Forks

Packages