Skip to content

Commit fe75679

Browse files
committed
improve readme, update screenshots for light/dark mode,
1 parent 510a2d6 commit fe75679

File tree

7 files changed

+25
-70
lines changed

7 files changed

+25
-70
lines changed

README.md

Lines changed: 24 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -4,64 +4,55 @@
44

55
# Prism
66

7-
**Self-hosted notification gateway with email monitoring**
7+
**Notification gateway with email monitoring**
88

99
[Setup](#setup)[Integrations](#integrations)[API](#api)[Examples](#real-world-examples)[Monitoring](#monitoring)
1010

1111
</div>
1212

1313
<!-- markdownlint-enable MD033 -->
1414

15-
Prism is a self-hosted notification gateway. Prism can receive messages and route them to Signal, Telegram or WebPush URLs. Messages can be sent via webhooks or monitored from a Proton Mail account integration.
15+
Route notifications to Signal, Telegram, or WebPush via webhooks or Proton Mail monitoring.
1616

17-
Prism also comes with an Android companion app: [prism-android](https://github.com/lone-cloud/prism-android)
17+
Android companion app: [prism-android](https://github.com/lone-cloud/prism-android)
18+
19+
<p align="center">
20+
<img src="assets/screenshots/light.webp" alt="Prism Dashboard (light)" width="70%" />
21+
<img src="assets/screenshots/dark.webp" alt="Prism Dashboard (dark)" width="70%" />
22+
</p>
1823

1924
## Setup
2025

2126
### Docker (Recommended)
2227

2328
```bash
24-
# Create .env file
2529
curl -L -O https://raw.githubusercontent.com/lone-cloud/prism/master/.env.example
2630
mv .env.example .env
2731
nano .env # Set API_KEY=your-secret-key-here
2832

29-
# Run Prism
30-
docker run -d \
31-
--name prism \
32-
-p 8080:8080 \
33-
-v prism-data:/app/data \
34-
-v signal-data:/home/prism/.local/share/signal-cli \
35-
--env-file .env \
36-
ghcr.io/lone-cloud/prism:latest
33+
curl -L -O https://raw.githubusercontent.com/lone-cloud/prism/master/docker-compose.yml
34+
docker compose up -d
3735
```
3836

3937
### Binary (Alternative)
4038

4139
```bash
42-
# Download latest release
4340
curl -L -O https://github.com/lone-cloud/prism/releases/latest/download/prism-linux-amd64
4441
chmod +x prism-linux-amd64
4542
mv prism-linux-amd64 prism
4643

47-
# Create .env file
4844
curl -L -O https://raw.githubusercontent.com/lone-cloud/prism/master/.env.example
4945
mv .env.example .env
5046
nano .env # Set API_KEY=your-secret-key-here
5147

52-
# Run Prism
5348
./prism
5449
```
5550

5651
Prism is now running at <http://localhost:8080>.
5752

58-
![Prism Dashboard](assets/screenshots/dashboard.webp)
59-
6053
## Integrations
6154

62-
All integrations are configured through the web UI - no environment variables or command-line setup needed!
63-
64-
Authenticate using your `API_KEY` as the password (username can be anything).
55+
All integrations are configured through the web UI. Authenticate with your `API_KEY` as the password (username can be anything).
6556

6657
### Signal
6758

@@ -77,9 +68,7 @@ Send notifications through Signal Messenger.
7768
- Scan the displayed QR code
7869
5. Your device will link automatically
7970

80-
All notifications will be sent via Signal.
81-
82-
**Note:** If running the binary directly (not Docker), you'll need [signal-cli](https://github.com/AsamK/signal-cli/releases) installed and in your PATH. Docker images include signal-cli automatically.
71+
> **Note:** Binary installs require [signal-cli](https://github.com/AsamK/signal-cli/releases) in your PATH. Docker includes it automatically.
8372
8473
### Telegram
8574

@@ -102,20 +91,10 @@ Send notifications through a Telegram bot.
10291
- Enter your bot token and chat ID
10392
- Click "Configure"
10493

105-
All notifications will be sent to your Telegram chat.
106-
10794
### Proton Mail
10895

10996
Monitor a Proton Mail account and forward new emails as notifications through Signal or Telegram.
11097

111-
**Features:**
112-
113-
- Monitors inbox for new emails in real-time
114-
- Supports 2FA-enabled accounts
115-
- Auto-creates "Proton Mail" app for received emails
116-
- Secure credential storage with AES-256-GCM encryption
117-
- Automatic token refresh - no re-authentication needed
118-
11998
**Setup:**
12099

121100
1. Visit <http://localhost:8080> and authenticate with your API_KEY
@@ -127,9 +106,7 @@ Monitor a Proton Mail account and forward new emails as notifications through Si
127106
- 2FA code (if enabled)
128107
5. Click "Link"
129108

130-
Proton Mail will connect and begin monitoring. New emails will appear as notifications from the "Proton Mail" app.
131-
132-
**Note:** Prism uses the official Proton Mail API (same as the Proton Bridge). Credentials are encrypted and stored locally. Tokens refresh automatically in the background.
109+
New emails appear as notifications from the "Proton Mail" app. Credentials are encrypted (AES-256-GCM) and tokens refresh automatically.
133110

134111
### WebPush
135112

@@ -141,8 +118,6 @@ Send notifications directly to your browser.
141118
2. Allow browser notifications when prompted
142119
3. Apps without Signal or Telegram configured will automatically use WebPush
143120

144-
You'll receive browser notifications when messages arrive.
145-
146121
## API
147122

148123
All API endpoints require authentication with your API key:
@@ -229,15 +204,9 @@ curl -X DELETE http://localhost:8080/api/v1/webpush/subscriptions/SUBSCRIPTION_I
229204

230205
## Real-World Examples
231206

232-
### Email Monitoring
233-
234-
Receive instant Signal, Telegram or WebPush notifications when new emails arrive in your Proton Mail inbox.
235-
236-
Prism monitors your Proton Mail account using the official Proton API and forwards new emails as notifications. Perfect for monitoring important accounts without constantly checking email.
237-
238-
### Home Assistant Alerts
207+
### Home Assistant
239208

240-
Add a rest notification configuration (eg. add to configuration.yaml) to Home Assistant like:
209+
Add to `configuration.yaml`:
241210

242211
```yaml
243212
notify:
@@ -250,46 +219,39 @@ notify:
250219
Authorization: !secret prism_api_key
251220
```
252221
253-
Since Home Assistant and Prism are both on your local network, HTTP is allowed automatically - no additional configuration needed.
254-
255-
Add your API_KEY to your secrets.yaml:
222+
Add to `secrets.yaml`:
256223

257224
```bash
258225
prism_api_key: "Bearer YOUR_API_KEY_HERE"
259226
```
260227

261-
Reboot your Home Assistant system and you'll then be able to send Signal notifications to yourself by using this notify prism action.
262-
263-
### Beszel Alerts
228+
Then use the `notify.prism` action in automations.
264229

265-
[Beszel](https://beszel.dev) is a lightweight server monitoring tool. You can forward its alerts through Prism using the ntfy-compatible URL format.
230+
### Beszel
266231

267-
In Beszel's **Settings → Notifications**, add a URL:
232+
In [Beszel](https://beszel.dev)'s **Settings → Notifications**, add:
268233

269234
```
270-
ntfy://:YOUR_API_KEY@<your-prism-host>:<port>/Beszel?disableTLS=yes
235+
ntfy://:YOUR_API_KEY@<prism-host>:<port>/Beszel?disableTLS=yes
271236
```
272237

273-
- Replace `YOUR_API_KEY` with your Prism API key
274-
- Replace `<your-prism-host>:<port>` with your Prism server address (e.g. `192.168.0.10:8080`)
275-
- `disableTLS=yes` is only required for local HTTP deployments
276-
- `Beszel` is the app name that will appear in Prism — change it to anything you like
238+
`disableTLS=yes` is only needed for local HTTP. The app name (`Beszel`) can be anything.
277239

278240
## Monitoring
279241

280242
### Health Endpoints
281243

282244
#### GET /health
283245

284-
Public health check endpoint (no authentication required). Returns `200 OK` when the service is running. Used for Docker health checks and load balancer health probes.
246+
Public. Returns `200 OK` when running.
285247

286248
```bash
287249
curl http://localhost:8080/health
288250
```
289251

290252
#### GET /api/v1/health
291253

292-
Detailed health endpoint (requires authentication). Returns JSON with uptime and integration status:
254+
Authenticated. Returns uptime and integration status:
293255

294256
```bash
295257
curl http://localhost:8080/api/v1/health \
@@ -298,14 +260,10 @@ curl http://localhost:8080/api/v1/health \
298260

299261
```json
300262
{
301-
"version": "0.2.0",
263+
"version": "1.2.0",
302264
"uptime": "2h15m",
303265
"signal": {"linked": true, "account": "+1234567890"},
304266
"telegram": {"linked": true, "account": "123456789"},
305267
"proton": {"linked": true, "account": "[email protected]"}
306268
}
307269
```
308-
309-
## API Key Security
310-
311-
Your API_KEY is both the login password and the master encryption key for all integration credentials. Use a strong unique password. Changing it will make all encrypted credentials unrecoverable.

assets/screenshots/dark.webp

23.3 KB
Loading

assets/screenshots/dashboard.webp

-28.5 KB
Binary file not shown.

assets/screenshots/light.webp

24.7 KB
Loading

public/icon-192.png

2.98 KB
Loading

public/icon-512.png

26.4 KB
Loading

signal-cli/README.md

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
11
# signal-cli binaries
22

3-
GraalVM native builds from https://media.projektzentrisch.de/temp/signal-cli/
4-
(@m-ueberall, listed on the [official wiki](https://github.com/AsamK/signal-cli/wiki/Binary-distributions)).
5-
6-
Files on the server are named `signal-cli_ubuntu2004_{amd64,arm64}.gz`. Current version: **v0.14.2**
3+
GraalVM native builds from https://media.projektzentrisch.de/temp/signal-cli/

0 commit comments

Comments
 (0)