Repository navigation
FA Notifications
زبان: English · فارسی
pulsecheck برای هر آدرس، دستور shoutrrr send --url <url> --message <text> را اجرا میکند. اینکه shoutrrr چطور اجرا شود را shoutrrr_bin تعیین میکند:
| مقدار | رفتار |
|---|---|
auto (پیشفرض) |
اگر Docker کار کند (docker info موفق باشد) از docker run --rm nickfedor/shoutrrr:<version> send … استفاده میکند، وگرنه از فایل اجرایی shoutrrr در PATH
|
docker |
همیشه image داکر |
یک مسیر، مثل /usr/local/bin/shoutrrr
|
همیشه همان فایل اجرایی |
shoutrrr_image (پیشفرض nickfedor/shoutrrr:0.21.2) image را مشخص میکند و اولین ارسال آن را دانلود میکند. اگر Docker ندارید، فایل اجرایی را از صفحهی releases نصب کنید (pulsecheck init این کار را هم برایتان انجام میدهد):
curl -fsSL https://github.com/nicholas-fedor/shoutrrr/releases/download/v0.21.2/shoutrrr_linux_amd64_0.21.2.tar.gz | sudo tar xz -C /usr/local/bin shoutrrr
shoutrrr --versionبرای سیستمهای دیگر فایل مناسب (linux_arm64v8، macOS_arm64v8 و …) را از همان release بردارید.
| سرویس | آدرس |
|---|---|
| تلگرام |
telegram://BOT_TOKEN@telegram?chats=@channel (یا شناسهی عددی چت) |
| دیسکورد | discord://TOKEN@WEBHOOK_ID |
| ntfy | ntfy://ntfy.sh/your-topic |
| ایمیل | smtp://user:pass@mail.example.com:587/?from=a@example.com&to=b@example.com |
| اسلک (بات) | slack://xoxb:BOT_TOKEN@CHANNEL_ID |
| وبهوک عمومی | generic://example.com/hook |
سرویسهای بسیار بیشتری هست. این دستورها کمک میکنند:
shoutrrr docs # فهرست سرویسها
shoutrrr docs telegram # گزینههای یک سرویس
shoutrrr verify --url "<url>" # درستی آدرس را بدون ارسال بررسی میکند
shoutrrr generate telegram # آدرس را بهصورت پرسش و پاسخ میسازددر این دو محیط shoutrrr اجرا نمیشود، برای همین pulsecheck هشدار را خودش با یک درخواست HTTPS میفرستد. قالب آدرسها همان قالب shoutrrr است و این سرویسها پشتیبانی میشوند (همهی نمونههای زیر با shoutrrr verify بررسی شدهاند):
| سرویس | آدرس |
|---|---|
| تلگرام | telegram://BOT_TOKEN@telegram?chats=@channel |
| دیسکورد | discord://TOKEN@WEBHOOK_ID |
| وبهوک اسلک | slack://hook:T0000000-B0000000-XXXXXXXXXXXXXXXX@webhook |
| بات اسلک | slack://xoxb:123456789012-1234567890123-TOKEN@CHANNEL_ID |
| ntfy |
ntfy://ntfy.sh/topic (همچنین ntfy://user:pass@host/topic و ?scheme=http) |
| Gotify |
gotify://host/path/TOKEN (?disabletls=yes) |
| Pushover | pushover://:API_TOKEN@USER_KEY?devices=phone |
| Mattermost | mattermost://bot@host/HOOK_TOKEN/channel |
| Rocket.Chat | rocketchat://bot@host/TOKEN_A/TOKEN_B/channel |
| Google Chat | googlechat://chat.googleapis.com/v1/spaces/ID/messages?key=K&token=T |
| Zulip | zulip://bot%40host:KEY@host/?stream=alerts&topic=pulsecheck |
| Bark | bark://:DEVICE_KEY@host/ |
| هر وبهوک |
generic://host/path (بدنهی JSON به شکل {"message": "..."}؛ با ?disabletls=yes و ?messagekey=text) |
برای هر آدرس دیگری (ایمیل، Matrix، Teams و …) پیام notify failed: ... not supported here چاپ میشود و چیزی ارسال نمیشود. روی Vercel اینها هم کار میکنند، چون shoutrrr واقعی در صورت نیاز دانلود میشود. روی Cloudflare باید حالت CLI/CI/cron را به کار ببرید، یا generic:// را به وبهوکی وصل کنید که پیام را به مقصد برساند. جزئیات در سرورلس است.
آدرسها توکن دارند. توکن را در متغیر محیطی (${TG_TOKEN}) یا secret سیستم CI نگه دارید و داخل فایل ننویسید.
notify: # بهطور پیشفرض همهی هشدارها به اینجا میروند
urls: ["ntfy://ntfy.sh/team-alerts"]
events: [down, up]
sites:
- name: payments
url: https://pay.example.com
notify: # هشدارهای این سایت فقط به کانال آنکال میروند، از جمله degraded
urls: ["telegram://${TG_TOKEN}@telegram?chats=${ONCALL}"]
events: [down, up, degraded]هر تغییری را با pulsecheck test-notify امتحان کنید؛ این دستور هم آدرسهای سراسری و هم آدرسهای هر سایت را میآزماید.
متنهای پیشفرض داخلیاند و با messages: در YAML عوض میشوند (کلیدهای down، reminder، degraded، up، ssl_warn، test). جزئیات در مرجع YAML است.