No description
- Go 96.4%
- Makefile 2.8%
- Dockerfile 0.8%
|
|
||
|---|---|---|
| .github/workflows | ||
| cmd/module | ||
| internal | ||
| .env.example | ||
| .gitignore | ||
| .golangci.yml | ||
| CHANGELOG.md | ||
| COMPATIBILITY.md | ||
| Dockerfile | ||
| go.mod | ||
| go.sum | ||
| LICENSE | ||
| Makefile | ||
| muxcore.json | ||
| README.md | ||
notification-default
MuxCore notification sidecar that delivers alerts to Discord, Slack, generic webhooks, and SMTP email.
How it works
gRPC sidecar implementing the NotificationProvider contract (Notify, Configure, Status). Channels are configured via environment variables or runtime Configure. Empty channels on Notify fans out to all configured channels.
Also dials the core mesh and subscribes to media events (movie/TV add/remove, file import, download dispatched), formatting them into notifications.
Configuration
| Env variable | Default | Description |
|---|---|---|
NOTIFY_GRPC_ADDR |
:9441 |
Notification gRPC listen address |
DISCORD_WEBHOOK |
— | Discord incoming webhook URL |
SLACK_WEBHOOK |
— | Slack incoming webhook URL |
WEBHOOK_URL |
— | Generic JSON webhook URL |
SMTP_HOST |
— | SMTP server hostname (enables email) |
SMTP_PORT |
587 |
SMTP port (587 STARTTLS, 465 implicit TLS) |
SMTP_USER |
— | SMTP AUTH username |
SMTP_PASS |
— | SMTP AUTH password |
EMAIL_FROM |
— | From address (required when email enabled) |
EMAIL_TO |
— | Default recipient (override per notify via fields.to) |
MUXCORE_MODULE_ID |
notification-default |
Module ID (SDK) |
MUXCORE_GRPC_ADDR |
localhost:9090 |
Core mesh address |
MUXCORE_INSECURE_DISABLE_TLS |
unset | Set true to disable TLS for mesh/SDK |
Health passes when at least one channel is configured (any webhook or SMTP_HOST).
Runtime Configure (email)
Settings keys: smtp_host, smtp_port, smtp_user, smtp_pass, smtp_from (alias from), to.
Key features
- Discord / Slack / webhook — severity-colored embeds/attachments or plain JSON
- SMTP email — STARTTLS (587) or implicit TLS (465); clear errors if host/from/to unset
- Runtime configure — enable channels via gRPC
Configure - Media event bridge — auto-notify on subscribed core media events
- Capabilities —
notification,notification.default(contracts-notification/NotificationProviderv0.1.0)
Build
make build
make test