ntfy — การแจ้งเตือนแบบพุชที่มีน้ำหนักเบา
ntfy — การแจ้งเตือนแบบพุชที่มีน้ำหนักเบา — คู่มือที่เข้าใจง่ายอ้างอิงจากเอกสารอย่างเป็นทางการ
เคยไหมที่อยากให้มือถือสั่นเตือนทันทีที่สคริปต์ทำงานเสร็จ—โดยไม่ต้องติดตั้งแอปแม้แต่ตัวเดียว? นี่คือความมหัศจรรย์ในชีวิตประจำวันของ ntfy: มันเปลี่ยนทุกหัวข้อ (topic) ให้กลายเป็นช่องทาง pub-sub ที่คุณสามารถส่ง ping ได้ด้วยคำขอ HTTP ง่ายๆ
สำหรับผู้ใช้ Hermes Agent แล้ว ntfy คือวิธีที่ง่ายที่สุดในการพกพา AI agent ของคุณไว้ในกระเป๋าเสื้อ ไม่ต้องใช้ SDK ไม่ต้องมี daemon ไม่ต้องติดตั้ง Node.js—แค่ชื่อ topic และแอปมือถือ ntfy ฟรี เท่านั้นเอง นี่คือวิธีตั้งค่า
ทำไม ntfy ถึงเข้ากับ Hermes ราวกับถุงมือ
Hermes คือระบบอัตโนมัติที่เน้นความเบา (lightweight) ntfy เข้ากับปรัชญานี้ได้อย่างลงตัว:
- ไร้ dependencies — adapter ใช้แค่
httpxซึ่งมากับ Hermes อยู่แล้ว - ใช้ HTTP client ตัวไหนก็ได้ — curl, Python, หรือแม้แต่นาฬิกาอัจฉริยะ
- โฮสต์เองได้ — รันเซิร์ฟเวอร์ ntfy ของตัวเองสำหรับ topic ส่วนตัว หรือใช้บริการฟรีสาธารณะ
ntfy.sh
คุณสมัครรับ topic บนมือถือ ส่งข้อความไปยัง topic นั้นจาก Hermes แล้วรับคำตอบเป็น notification มันคือ push messaging ที่ปราศจากความอ้วนพี
เริ่มต้นอย่างรวดเร็ว: Setup Wizard
เส้นทางที่เร็วที่สุดคือการตั้งค่าแบบมีไกด์:
hermes gateway setup
เลือก ntfy จากเมนู ใส่ชื่อ topic ของคุณ (เช่น hermes-myname-2026) แล้วเสร็จสิ้น ตัว wizard จะเขียน config ไปที่ ~/.hermes/.env
การตั้งค่าด้วยตนเองผ่าน Environment Variables
ชอบแก้ไฟล์เองใช่ไหม? เพิ่มบรรทัดเหล่านี้ลงใน ~/.hermes/.env:
NTFY_TOPIC=hermes-myname-2026
NTFY_ALLOWED_USERS=hermes-myname-2026
NTFY_HOME_CHANNEL=hermes-myname-2026
นี่คือขั้นต่ำสุด นี่คือคำอธิบายของแต่ละตัวแปร:
| ตัวแปร | จำเป็น | วัตถุประสงค์ |
|---|---|---|
NTFY_TOPIC |
ใช่ | Topic ที่จะสมัครรับ (ข้อความขาเข้า) |
NTFY_SERVER_URL |
ไม่ | ค่าเริ่มต้นคือ https://ntfy.sh; เปลี่ยนเป็นเซิร์ฟเวอร์ที่โฮสต์เองเพื่อความเป็นส่วนตัว |
NTFY_TOKEN |
ไม่ | Bearer token (tk_xyz) หรือ user:pass สำหรับการยืนยันตัวตน |
NTFY_PUBLISH_TOPIC |
ไม่ | Topic แยกสำหรับข้อความตอบกลับ (ค่าเริ่มต้นคือ NTFY_TOPIC) |
NTFY_MARKDOWN |
ไม่ | ตั้งค่าเป็น true เพื่อส่งข้อความตอบกลับพร้อมกับ X-Markdown: true |
NTFY_ALLOWED_USERS |
แนะนำ | รายชื่อ topic คั่นด้วยเครื่องหมายจุลภาคที่ถือว่าเป็น user ID |
NTFY_ALLOW_ALL_USERS |
ไม่ | อนุญาตทุกคนที่ publish ได้—ปลอดภัยเฉพาะกับ topic ส่วนตัวเท่านั้น |
NTFY_HOME_CHANNEL |
ไม่ | Topic เริ่มต้นสำหรับ cron / การแจ้งเตือน |
NTFY_HOME_CHANNEL_NAME |
ไม่ | ป้ายชื่อที่มนุษย์อ่านเข้าใจสำหรับ home channel |
โมเดลตัวตน: อ่านก่อนนำไปใช้งานจริง
นี่คือจุดที่ต้องระวังกับ ntfy: มันไม่มีบัญชีผู้ใช้จริง ๆ ฟิลด์ title ในข้อความนั้น ถูกควบคุมโดยผู้เผยแพร่ (publisher)—ใครก็ได้ที่สามารถปลอมแปลงได้ ดังนั้น Hermes จึง ไม่ ใช้ title ในการอนุญาตสิทธิ์
แต่ ชื่อ topic เองคือตัวตน ทุกข้อความบน topic จะถูกถือว่ามาจากผู้ใช้คนเดียวกันเชิงตรรกะ NTFY_ALLOWED_USERS โดยปกติแล้วก็แค่ชื่อ topic เอง—เป็น allowlist ที่มีรายการเดียว
ผลกระทบด้านความปลอดภัย: ใครก็ตามที่รู้ topic ของคุณสามารถคุยกับ agent ของคุณได้ เพื่อให้สิ่งนี้เป็นขอบเขตความเชื่อใจที่แท้จริง:
- โฮสต์ ntfy ด้วยตัวเอง และล็อก topic ด้วย Access Control
- เฉพาะ client ที่ได้รับอนุญาตเท่านั้นที่สามารถ publish หรือ subscribe ได้
เคล็ดลับสำหรับการใช้งานประจำวัน
ตั้งค่า NTFY_MARKDOWN=true หากคุณต้องการให้ข้อความตอบกลับที่จัดรูปแบบแล้ว (ตัวหนา, รายการ, บล็อกโค้ด) แสดงผลอย่างสวยงามในแอป ntfy มันทำให้ข้อความตอบกลับยาว ๆ จาก agent อ่านง่ายขึ้นมากบนหน้าจอมือถือ
สรุป
ntfy มอบช่องทาง push ที่ง่ายสุด ๆ ให้กับ Hermes: สมัครรับบนมือถือ ตั้งค่า environment variables สามตัว แล้วก็ใช้งานได้เลย ไม่ต้องมีบัญชีคลาวด์ ไม่ต้องมีบริการเสริม ไม่มีช่วงการเรียนรู้
เคล็ดลับสุดท้าย: เริ่มต้นด้วย topic ที่ไม่ซ้ำใคร เช่น hermes-<ชื่อคุณ>-<ปี>—มันแทบจะไม่ชนกับใครบนเซิร์ฟเวอร์สาธารณะ จากนั้น เมื่อคุณเชื่อใจเวิร์กโฟลว์แล้ว ค่อยโฮสต์ ntfy ด้วยตัวเองและเพิ่ม access control เพื่อช่องทางที่เป็นส่วนตัวอย่างแท้จริง ตอนนี้ agent ของคุณอยู่ห่างจากการสั่นเตือนเพียงหนึ่งครั้ง
📖 เอกสารทางการ
この記事は Hermes Agent のเอกสารทางการに基づいています:เอกสารทางการ › user-guide/messaging/ntfy