-
Notifications
You must be signed in to change notification settings - Fork 0
Description
💡 Feature Description
Add support for sending WSD notifications via Signal using signal-cli, extending functionality beyond admin alerts to include end-user and system-wide notifications.
This integration provides a secure, encrypted communication channel between the WSD server and its users — ideal for environments where privacy, reliability, and real-time updates are essential.
The implementation approach follows the Signal Messaging via CLI/API guide and builds on the open-source AsamK/signal-cli project.
📈 Motivation and Context
Not every WSD user, family member, or friend wants to install Discord or use a web dashboard. Signal provides an ideal alternative for direct, private, and secure alerts.
Why It Matters
- Security: End-to-end encryption ensures privacy for server alerts and user data
- Accessibility: Works cross-platform (Android, iOS, Desktop)
- Familiarity: Many users already use Signal daily
- Resilience: Works without email or web dependencies
Use Cases
- 📱 Downtime or health alerts (server offline, high load)
- 🧠 New release or content notifications
- 🔐 Device login or IP change alerts
- 📊 Watch-time summaries or overuse warnings
- 🚨 Geo Lock violation or session termination notifications
By expanding Signal integration to include both admin and user-level alerts, WSD becomes a truly secure and intelligent monitoring ecosystem.
🛠️ Suggested Implementation (if known)
Core Setup
- Use
signal-cliin headless or daemon mode - Configuration section in WSD settings for:
- Signal sender (phone number or UUID)
- List of recipients (users, family, admin, etc.)
- Custom templates per alert type
Example command:
signal-cli -u +1234567890 send -m "New episode of The Bear is available!" +1987654321Supported Features
| Category | Example | Purpose |
|---|---|---|
| Media Alerts | “🎬 Oppenheimer added to your library.” | Keeps users engaged |
| Security Alerts | “ |
Detect account misuse |
| Usage Alerts | “📊 You streamed 120 hours this month.” | Track excessive usage |
| System Alerts | “🖥️ WSD experienced downtime at 2:30 AM.” | Notify admins instantly |
Config Options
- Global toggle: enable/disable Signal integration
- Per-user preference: opt-in for notifications
- Templates: define alert types in JSON or YAML config
- Retry/Fallback: resend failed messages or write to WSD log
Integration Notes
- Supports both phone-based and UUID-based accounts
- Headless mode setup reference: signal-cli discussion #1485
- Can be used without linking a real phone number (UUID option)
- Built-in message queue to avoid API rate limits
🖼️ Visuals or References (optional)
- Blog reference: Using Signal API via CLI
- GitHub project: AsamK/signal-cli
Example Notification:
🔔 WSD Secure Alert
Your account logged in from a new location (Germany).
Session terminated for security reasons.
🔗 Related Issues or Discussions
- Original Issue #6 — Add Signal Notifications to WSD
- Signal CLI Headless Mode Setup
- Related FRs: Geo Lock Enforcement, Watch Statistics, and User Dashboard Panel
🧩 Additional Notes
- Add a “Send Test Notification” button in the admin UI
- Include retry/failover logic for undelivered messages
- Store minimal logs (no phone numbers or message text)
- Add notification history in the WSD web UI
- Future: integrate with the upcoming Android Companion App for unified mobile alerts