Skip to content

[Feature]: Add Signal-based SMS notification support to WSD using signal-cli #6

@mophawka

Description

@mophawka

💡 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-cli in 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!" +1987654321

Supported Features

Category Example Purpose
Media Alerts “🎬 Oppenheimer added to your library.” Keeps users engaged
Security Alerts ⚠️ New login from 203.0.113.45 (CA).” 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)

Example Notification:

🔔 WSD Secure Alert
Your account logged in from a new location (Germany).
Session terminated for security reasons.


🔗 Related Issues or Discussions


🧩 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions