Skip to content

Commit 5c468fc

Browse files
authored
Revise README for clarity and installation guidance
Updated the README to clarify the purpose of iGotify and its integration with Gotify and Apple's APNs. Improved installation instructions and feature descriptions.
1 parent cf516c4 commit 5c468fc

1 file changed

Lines changed: 44 additions & 255 deletions

File tree

README.md

Lines changed: 44 additions & 255 deletions
Original file line numberDiff line numberDiff line change
@@ -4,288 +4,77 @@
44

55
# iGotify
66

7-
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
7+
A notification assistant that bridges [Gotify](https://gotify.net/) with iOS devices via Apple's APNs using the SecNtfy service.
88

9-
Download Link to iGotify down below
9+
> **Important:** This project is **not** Gotify itself. iGotify is a companion service that enables push notifications for iOS devices. The notification payload is only forwarded through SecNtfy to Apple's APNs - **no message content is stored** on any intermediate server.
1010
11-
 
11+
## Features
1212

13-
## ⭐ Features
13+
- End-to-end encrypted push notifications
14+
- Seamless Gotify integration
15+
- Native iOS app with FaceID support
16+
- Multi-user & multi-instance support
1417

15-
* show received notifications with markdown
16-
* decrypted the message with a public key that is generated from the iGotify device
17-
* sending the decrypted message to SecNtfy and forwarded it to Apple's APN service, without saving the payload
18-
* multiuser support
18+
## Installation
1919

20-
 
20+
There are two ways to deploy iGotify:
2121

22-
## 🔧 How to Install Gotify & iGotify-Notification-Assist
22+
### Option 1: Docker (Recommended)
2323

24-
### 🐳 Docker `docker-compose.yaml`
24+
The Docker stack includes both Gotify and iGotify.
2525

26-
### Installation
27-
28-
1. Create a file with the name `docker-compose.yaml` or clone this repo and go to step 3
29-
2. Please use the latest and recommended version of docker and docker compose
30-
3. Copy the code down below in the yaml file
31-
4. change environment variables in the compose file
32-
5. execute `docker compose up -d` to start the docker compose
33-
34-
 
35-
36-
### Needed environment variables
37-
38-
* `GOTIFY_DEFAULTUSER_PASS` = the user password for the defaultuser
39-
40-
### Optional environment variables
41-
42-
* `GOTIFY_URLS` = the local gotify sever URL e.g.: `http://gotify`
43-
* `GOTIFY_CLIENT_TOKENS` = the client token from the Gotify Client e.g.: `cXXXXXXXX`
44-
* `SECNTFY_TOKENS` = the SecNtfy Token that you get from the app after configure it e.g.: `NTFY-DEVICE-XXXXXX`
45-
46-
*These three environment variables above aren't required when the Gotify & iGotify Instances available over a domain!*
47-
48-
* `ENABLE_CONSOLE_LOG` = you can disable unnecessary console logs (default: true)
49-
* `ENABLE_SCALAR_UI` = you can now disable the Endpoint page (default: true)
50-
51-
*please write the boolean variables (true, false) in single quotes 'true'*
52-
53-
#### All these configuration can be found after configure the app. It will display it for you
54-
55-
#### Please note you can configure multiple instances of local gotify server by adding a semicolon `;` after each environment value e.g.:
56-
57-
* `GOTIFY_URLS: 'http://gotify;http://gotify2;http://gotify3;...'`
58-
* `GOTIFY_CLIENT_TOKENS: 'cXXXXXXXX1;cXXXXXXXX2;cXXXXXXXX3;...'`
59-
* `SECNTFY_TOKENS: 'NTFY-DEVICE-XXXXXX1;NTFY-DEVICE-XXXXXX2;NTFY-DEVICE-XXXXXX3;...'`
60-
61-
 
62-
63-
### Docker Compose Konfigurationen
64-
65-
<details>
66-
<summary><b>📦 Standard Docker Compose</b></summary>
67-
68-
```yaml
69-
services:
70-
gotify:
71-
container_name: gotify
72-
hostname: gotify
73-
image: gotify/server # Uncommand correct server image
74-
# image: gotify/server-arm7
75-
# image: gotify/server-arm64
76-
restart: unless-stopped
77-
security_opt:
78-
- no-new-privileges:true
79-
networks:
80-
- net
81-
ports:
82-
- "8680:80"
83-
volumes:
84-
- data:/app/data
85-
environment:
86-
GOTIFY_DEFAULTUSER_PASS: 'my-very-strong-password' # Change me!!!!!
87-
healthcheck:
88-
test: ["CMD-SHELL", "ls /app/data || exit 1"]
89-
interval: 5s
90-
timeout: 3s
91-
retries: 5
92-
start_period: 10s
93-
94-
igotify:
95-
container_name: igotify
96-
hostname: igotify
97-
image: ghcr.io/androidseb25/igotify-notification-assist:latest
98-
restart: unless-stopped
99-
security_opt:
100-
- no-new-privileges:true
101-
pull_policy: always
102-
depends_on:
103-
gotify:
104-
condition: service_healthy
105-
healthcheck:
106-
test: [ "CMD", "curl", "-f", "http://localhost:8080/Version" ]
107-
interval: "3s"
108-
timeout: "3s"
109-
retries: 5
110-
networks:
111-
- net
112-
ports:
113-
- "8681:8080"
114-
volumes:
115-
- api-data:/app/data
116-
#environment: # option environment see above note
117-
# GOTIFY_URLS: ''
118-
# GOTIFY_CLIENT_TOKENS: ''
119-
# SECNTFY_TOKENS: ''
120-
# ENABLE_CONSOLE_LOG: 'true'
121-
# ENABLE_SCALAR_UI: 'true'
122-
123-
networks:
124-
net:
125-
126-
volumes:
127-
data:
128-
api-data:
129-
```
130-
131-
*Thank you The_Think3r for the compose file and @herrpandora*
132-
133-
</details>
134-
135-
<details>
136-
<summary><b>🔀 Traefik Config</b></summary>
137-
138-
```yaml
139-
services:
140-
gotify:
141-
container_name: gotify
142-
hostname: gotify
143-
image: gotify/server # Uncommand correct server image
144-
# image: gotify/server-arm7
145-
# image: gotify/server-arm64
146-
restart: unless-stopped
147-
security_opt:
148-
- no-new-privileges:true
149-
networks:
150-
- net
151-
ports:
152-
- "8680:80"
153-
volumes:
154-
- data:/app/data
155-
environment:
156-
GOTIFY_DEFAULTUSER_PASS: 'my-very-strong-password' # Change me!!!!!
157-
GOTIFY_REGISTRATION: 'false'
158-
labels:
159-
traefik.docker.network: proxy
160-
traefik.enable: "true"
161-
traefik.http.routers.gotify-secure.entrypoints: websecure
162-
traefik.http.routers.gotify-secure.middlewares: default@file
163-
traefik.http.routers.gotify-secure.rule: Host(`gotify.domain-name.de`)
164-
traefik.http.routers.gotify-secure.service: gotify
165-
traefik.http.routers.gotify-secure.tls: "true"
166-
traefik.http.routers.gotify-secure.tls.certresolver: http_resolver
167-
traefik.http.routers.gotify.entrypoints: web
168-
traefik.http.routers.gotify.rule: Host(`gotify.domain-name.de`)
169-
traefik.http.services.gotify.loadbalancer.server.port: "80"
170-
healthcheck:
171-
test: ["CMD-SHELL", "ls /app/data || exit 1"]
172-
interval: 5s
173-
timeout: 3s
174-
retries: 5
175-
start_period: 10s
176-
networks:
177-
default: null
178-
proxy: null
26+
```bash
27+
# Clone the repository
28+
git clone https://github.com/androidseb25/iGotify-Notification-Assistent.git
29+
cd iGotify-Notification-Assistent
17930

180-
igotify:
181-
container_name: igotify
182-
hostname: igotify
183-
image: ghcr.io/androidseb25/igotify-notification-assist:latest
184-
restart: unless-stopped
185-
security_opt:
186-
- no-new-privileges:true
187-
pull_policy: always
188-
depends_on:
189-
gotify:
190-
condition: service_healthy
191-
healthcheck:
192-
test: [ "CMD", "curl", "-f", "http://localhost:8080/Version" ]
193-
interval: "3s"
194-
timeout: "3s"
195-
retries: 5
196-
networks:
197-
- net
198-
ports:
199-
- "8681:8080"
200-
volumes:
201-
- api-data:/app/data
202-
#environment: # option environment see above note
203-
# GOTIFY_URLS: ''
204-
# GOTIFY_CLIENT_TOKENS: ''
205-
# SECNTFY_TOKENS: ''
206-
labels:
207-
traefik.docker.network: proxy
208-
traefik.enable: "true"
209-
traefik.http.routers.igotify-secure.entrypoints: websecure
210-
traefik.http.routers.igotify-secure.middlewares: default@file
211-
traefik.http.routers.igotify-secure.rule: Host(`igotify.domain-name.de`)
212-
traefik.http.routers.igotify-secure.service: igotify
213-
traefik.http.routers.igotify-secure.tls: "true"
214-
traefik.http.routers.igotify-secure.tls.certresolver: http_resolver
215-
traefik.http.routers.igotify.entrypoints: web
216-
traefik.http.routers.igotify.rule: Host(`igotify.domain-name.de`)
217-
traefik.http.services.igotify.loadbalancer.server.port: "8080"
218-
networks:
219-
default: null
220-
proxy: null
31+
# Configure environment
32+
cp .env.example .env
33+
# Edit .env and set GOTIFY_DEFAULTUSER_PASS
22134

222-
networks:
223-
default:
224-
proxy:
225-
external: true
226-
volumes:
227-
data:
228-
api-data:
35+
# Start the stack
36+
docker compose up -d
22937
```
23038

231-
*Thank you to @majo1989 for sharing this config*
232-
233-
</details>
234-
235-
&nbsp;
236-
237-
### (Optional) NGINX Proxy Manager
238-
239-
When someone have problem's with incoming notifications on the app, please try this options under Advance Settings for the setuped proxies
39+
### Option 2: Linux Service
24040

24141
```bash
242-
proxy_set_header Host $http_host;
243-
proxy_connect_timeout 1m;
244-
proxy_send_timeout 1m;
245-
proxy_read_timeout 1m;
42+
curl -sSL https://raw.githubusercontent.com/androidseb25/iGotify-Notification-Assistent/main/install.sh | bash
24643
```
24744

248-
Also **don't** check the boxes which say "HTTP/2 Support" and "HSTS enabled".
249-
250-
*Thank you to @TBT-TBT for sharing this notice*
251-
252-
&nbsp;
253-
254-
## 🔧 Install iGotify app
255-
256-
Download from [AppStore](https://apps.apple.com/de/app/igotify/id6473452512?itsct=apps_box_badge&amp;itscg=30200)
45+
### Default Ports
25746

258-
[![Download on the App Store](https://tools.applemediaservices.com/api/badges/download-on-the-app-store/black/de-de?size=350&amp;releaseDate=1702425600)](https://apps.apple.com/de/app/igotify/id6473452512?itsct=apps_box_badge&amp;itscg=30200)
47+
| Service | Port |
48+
|---------|------|
49+
| Gotify | 8680 |
50+
| iGotify | 8681 |
25951

260-
For Bugs or feedback please send me a PM in Discord under the name sebakaderangler or fill out the issue formular here on GitHub.
52+
## Documentation
26153

262-
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)
54+
For detailed documentation, visit the **[Wiki](https://github.com/androidseb25/iGotify-Notification-Assistent/wiki)**:
26355

264-
After the checks for the URL are finished and correct you need to login with your login credentials. (Image 2)
56+
- [How it works](https://github.com/androidseb25/iGotify-Notification-Assistent/wiki#how-it-works) - Architecture and token explanation
57+
- [Docker Installation](https://github.com/androidseb25/iGotify-Notification-Assistent/wiki#docker) - Full Docker setup with environment variables
58+
- [Linux Service](https://github.com/androidseb25/iGotify-Notification-Assistent/wiki#linux-service) - Native installation guide
59+
- [Reverse Proxy](https://github.com/androidseb25/iGotify-Notification-Assistent/wiki#reverse-proxy) - NGINX Proxy Manager configuration
60+
- [Roadmap](https://github.com/androidseb25/iGotify-Notification-Assistent/wiki#roadmap) - Planned features
26561

266-
&nbsp;
62+
## iOS App
26763

268-
![](https://raw.githubusercontent.com/androidseb25/iGotify-Notification-Assistent/main/login_screen_1.png)
269-
![](https://raw.githubusercontent.com/androidseb25/iGotify-Notification-Assistent/main/login_screen_2.png)
64+
[![Download on the App Store](https://tools.applemediaservices.com/api/badges/download-on-the-app-store/black/en-us?size=250&releaseDate=1702425600)](https://apps.apple.com/app/igotify/id6473452512)
27065

271-
&nbsp;
272-
273-
And if everythink is ok, you're logged in 🎉
66+
## Bugs & Feedback
27467

275-
Now you receive background notifications when Gotify receives a message.
68+
For bugs or feedback please send me a PM in Discord under the name [**sebakaderangler**](https://discord.com/users/432049343802114048) or fill out the [issue form](https://github.com/androidseb25/iGotify-Notification-Assistent/issues) here on GitHub.
27669

277-
## Translation
278-
279-
If you want to be a part of the translation team please create a issue:
280-
281-
**Title: Translation: *language***
70+
## SecNtfy Status
28271

283-
**Description: crowdin username and why you would be a part of the translation team**
72+
[Service Status](https://ipv64.net/status/secntfy)
28473

285-
maybe you've been invited soon
74+
## Contributing
28675

287-
The link to the crowdin project: [https://de.crowdin.com/project/igotify](https://de.crowdin.com/project/igotify)
76+
See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
28877

289-
## SecNtfy Status
78+
## License
29079

291-
Here you can find the online status of the service [Status](https://ipv64.net/status/secntfy)
80+
[MIT License](LICENSE)

0 commit comments

Comments
 (0)