-
Notifications
You must be signed in to change notification settings - Fork 3
Notifications
The miner supports 6 notification providers. Providers are configured in the notifications section of your account YAML. Credentials are injected via environment variables — never hardcode tokens in config files.
- Create a bot via @BotFather and copy the token.
- Get your chat ID — send a message to the bot, then visit
https://api.telegram.org/bot<TOKEN>/getUpdatesand findchat.id. - Set env vars:
TELEGRAM_TOKEN=123456:ABC-DEF... TELEGRAM_CHAT_ID=987654321
- Enable in config:
notifications: telegram: enabled: true events: - "BET_WIN" - "DROP_CLAIM" - "MINER_CRASHED"
- In your Discord server: Server Settings → Integrations → Webhooks → New Webhook.
- Copy the webhook URL.
- Set env var:
DISCORD_WEBHOOK=https://discord.com/api/webhooks/...
- Enable in config:
notifications: discord: enabled: true events: - "BET_WIN" - "DROP_CLAIM"
Sends a POST or GET request to any URL when events fire. Useful for custom integrations.
WEBHOOK_URL=https://your-server.example.com/miner-eventsnotifications:
webhook:
enabled: true
method: "POST" # GET | POST
events:
- "BET_WIN"- Create an access token for your Matrix account.
- Find your room ID from the room settings.
- Set env vars:
MATRIX_HOMESERVER=https://matrix.example.com MATRIX_ROOM_ID=!roomid:matrix.example.com MATRIX_ACCESS_TOKEN=syt_...
- Register an application at pushover.net to get an API token.
- Copy your user key from the dashboard.
- Set env vars:
PUSHOVER_TOKEN=your_app_token PUSHOVER_USER_KEY=your_user_key
- Create an application in your Gotify instance and copy the token.
- Set env vars:
GOTIFY_URL=https://gotify.example.com GOTIFY_TOKEN=your_app_token
All notification env vars support two scopes. Per-account takes precedence; global is the fallback.
| Global | Per-account (suffix = uppercase username) |
|---|---|
TELEGRAM_TOKEN |
TELEGRAM_TOKEN_GULIVEER_ |
TELEGRAM_CHAT_ID |
TELEGRAM_CHAT_ID_GULIVEER_ |
DISCORD_WEBHOOK |
DISCORD_WEBHOOK_GULIVEER_ |
WEBHOOK_URL |
WEBHOOK_URL_GULIVEER_ |
MATRIX_HOMESERVER |
MATRIX_HOMESERVER_GULIVEER_ |
MATRIX_ROOM_ID |
MATRIX_ROOM_ID_GULIVEER_ |
MATRIX_ACCESS_TOKEN |
MATRIX_ACCESS_TOKEN_GULIVEER_ |
PUSHOVER_TOKEN |
PUSHOVER_TOKEN_GULIVEER_ |
PUSHOVER_USER_KEY |
PUSHOVER_USER_KEY_GULIVEER_ |
GOTIFY_URL |
GOTIFY_URL_GULIVEER_ |
GOTIFY_TOKEN |
GOTIFY_TOKEN_GULIVEER_ |
Multiple accounts can share one global Telegram channel, or each have their own.
| Event | Emoji | Description |
|---|---|---|
STREAMER_ONLINE |
🟢 | Streamer goes live |
STREAMER_OFFLINE |
⚫ | Streamer goes offline |
GAIN_FOR_RAID |
💵 | Points gained from a raid |
GAIN_FOR_CLAIM |
💵 | Points gained from claiming a bonus |
GAIN_FOR_WATCH |
💵 | Points gained from watching |
GAIN_FOR_WATCH_STREAK |
💵 | Points gained from a watch streak |
BET_WIN |
🏆 | Prediction bet won |
BET_LOSE |
💸 | Prediction bet lost |
BET_REFUND |
↩️ | Prediction bet refunded |
BET_FILTERS |
🎰 | Prediction skipped by filter condition |
BET_GENERAL |
🎰 | General prediction information |
BET_FAILED |
🎰 | Prediction bet failed to place |
BET_START |
🎰 | New prediction started |
BONUS_CLAIM |
💵 | Bonus chest claimed |
MOMENT_CLAIM |
🎉 | Community moment claimed |
JOIN_RAID |
⚔️ | Joined a raid |
DROP_CLAIM |
📦 | Drop reward claimed |
DROP_STATUS |
📦 | Drop campaign progress update |
CHAT_MENTION |
💬 | Your account was mentioned in chat |
GIFTED_SUB |
🎁 | Received a gifted subscription |
MINER_STARTED |
🚀 | Miner started (includes version) |
MINER_STOPPED |
🛑 | Miner stopped gracefully |
MINER_CRASHED |
💥 | Miner crashed (includes error); miner auto-restarts with backoff |
ACCOUNT_CONFIG_RELOADED |
🔄 | Config changed in DB or YAML file and miner was restarted |
TEST |
— | Test notification (via API endpoint) |
If the events list is empty or omitted, all events are sent. Lifecycle events (MINER_STARTED, MINER_STOPPED, MINER_CRASHED, ACCOUNT_CONFIG_RELOADED) always bypass batching.
Batching groups notifications and delivers them as a single message at a configurable interval. Reduces notification noise for high-activity streams.
notifications:
batch:
enabled: true
interval: 30m # flush every 30 minutes
max_entries: 15 # split into multiple messages if exceeded
immediate_events: # these bypass batching and send instantly
- "BET_WIN"
- "BET_LOSE"
- "DROP_CLAIM"
- "CHAT_MENTION"
- "GIFTED_SUB"Per-provider overrides:
discord:
enabled: true
batch:
interval: 15m # Discord: flush every 15 minutes (overrides global)
telegram:
enabled: true
batch:
enabled: false # Telegram: send every notification instantlyOn graceful shutdown all pending batched events are flushed before the process exits.
curl -X POST http://localhost:8080/api/test-notificationSends a test event to all enabled providers, bypassing event filters. Check the response:
{ "status": "ok", "message": "Test notification sent to all enabled notifiers" }A partial failure returns:
{ "status": "partial", "errors": ["telegram: 401 Unauthorized"] }