قابل سفارش — نصب در مرحلهٔ سفارش

ntfy؛ سرور اعلان push شخصی برای اسکریپت‌ها و سرورهای شما

ntfy را در مرحلهٔ سفارش انتخاب کنید تا روی سرور ابری تهران با کاربر مدیر و رمز تصادفی نصب شود؛ از آن به بعد هر اسکریپت، cron یا سرویس با یک درخواست HTTP ساده روی گوشی و مرورگر شما اعلان می‌فرستد.

حساب دارید؟ وارد شوید

از ۱٬۱۰۰ تومان در ساعت،  حدود ۸۰۳٬۰۰۰ تومان در ماه

لوگوی ntfy

ntfy

اپلیکیشن روی سرور ابری

شروع قیمت،پلن mini

۱٬۱۰۰تومان / ساعت

حدود ۸۰۳٬۰۰۰ تومان در ماه،بر پایهٔ ۷۳۰ ساعت

  • حداقل ۵۱۲ مگابایت RAM،  هر پلن از mini به بالا
  • کاربر admin و رمز تصادفی،  در تب «اپلیکیشن» پنل
  • topic‌ها از ابتدا خصوصی،  دسترسی پیش‌فرض deny-all، پورت ۸۰
  • هزینهٔ نصب: صفر،  فقط اجارهٔ ساعتی سرور
  • پورت ۱۰ گیگابیت اختصاصی برای هر سرور
  • دیسک NVMe SSD روی همهٔ سرورها
  • آماده زیر ۶۰ ثانیه راه‌اندازی خودکار سرور
  • دیتاسنتر تهران میزبانی داخل ایران
  • صورت‌حساب ساعتی پرداخت به تومان

معرفی ntfy

سرور اعلان ntfy روی سرور ابری ایران‌کلاد

به‌جای ایمیل‌هایی که دیده نمی‌شوند و پیامک‌هایی که هزینه دارند، هشدار سرورها و اسکریپت‌ها را مستقیم روی گوشی بگیرید؛ از سروری که مال خودتان است.

ntfy در فهرست اپلیکیشن‌های سفارش سرور فعال است: هر پلنی از mini به بالا را انتخاب کنید، ntfy را در تب اپلیکیشن‌ها بزنید و پس از روشن شدن سرور، آدرس، کاربر مدیر و رمزش را در تب اپلیکیشن صفحهٔ سرور ببینید. نصب رایگان است و دسترسی root کامل به سرور دارید.

امکانات

ntfy در یک نگاه

ارسال با curl

بدون SDK؛ هر اسکریپت و زبانی که بتواند درخواست HTTP بفرستد کافی است.

اپ موبایل و وب

اشتراک در topic از اپ اندروید، iOS یا مرورگر با آدرس سرور خودتان.

خصوصی از ابتدا

دسترسی پیش‌فرض بسته است؛ کاربر و توکن برای هر سیستم جدا.

۴ گام تا شروع

روش نصب گام‌به‌گام

  1. گام ۱: انتخاب پلن با دست‌کم ۵۱۲ مگابایت RAM

    در صفحهٔ سفارش سرور ابری یک پلن انتخاب کنید. ntfy حداقل ۵۱۲ مگابایت حافظه می‌خواهد، پس از کوچک‌ترین پلن یعنی mini با ۱ گیگابایت RAM به بالا همه مناسب‌اند.

  2. گام ۲: انتخاب ntfy در تب اپلیکیشن‌ها

    در گام دوم سفارش تب «اپلیکیشن‌ها» را باز کنید و ntfy را برگزینید؛ Ubuntu 22.04 خودکار انتخاب می‌شود. روش ورود به سرور را تعیین و سفارش را ثبت کنید. نصب هزینهٔ جداگانه ندارد و فقط ساعتی سرور را می‌پردازید.

  3. گام ۳: نصب خودکار پس از روشن‌شدن سرور

    پس از آماده شدن سرور، نصب در صف قرار می‌گیرد: Docker نصب می‌شود، فایل server.yml با دسترسی پیش‌فرض deny-all نوشته می‌شود، ntfy روی پورت ۸۰ بالا می‌آید و کاربر admin با رمز تصادفی ۲۰ کاراکتری ساخته می‌شود. قوانین فایروال هم خودکار اعمال می‌شوند و نصب با ارسال یک پیام آزمایشی بررسی می‌شود.

  4. گام ۴: برداشتن رمز و اولین اعلان

    در صفحهٔ سرور، تب «اپلیکیشن» آدرس وب، نام کاربری admin، رمز و دو دستور آمادهٔ curl برای ارسال و دریافت را نشان می‌دهد. اپ ntfy را روی گوشی نصب کنید، آدرس سرور و کاربر را وارد کنید، در یک topic مشترک شوید و با همان دستور curl اولین پیام را بفرستید.

قیمت و سفارش

هزینهٔ اجرای ntfy

صورت‌حساب ساعتی است و مبلغ به تومان از کیف پول کسر می‌شود؛ هر وقت سرویس را حذف کنید، هزینه هم متوقف می‌شود.

ntfy

از ۱٬۱۰۰ تومان / ساعت

حدود ۸۰۳٬۰۰۰ تومان در ماه (۷۳۰ ساعت کارکرد)

ساعتی

آنچه دریافت می‌کنید

  • دیسک NVMe SSD و پورت اختصاصی ۱۰ گیگابیت برای هر سرور
  • سرور در کمتر از ۶۰ ثانیه آماده می‌شود
  • دیتاسنتر تهران، صورت‌حساب ساعتی به تومان
سفارش سرور با ntfy

حساب دارید؟ وارد شوید

مقایسهٔ همهٔ پلن‌ها

راهنمای کامل

راهنمای کامل ntfy روی سرور ابری ایران‌کلاد

این راهنما برای مدیر سرور، توسعه‌دهنده یا هر کسی است که می‌خواهد وقتی اتفاقی روی سرورها و اسکریپت‌هایش می‌افتد، همان لحظه روی گوشی خبردار شود؛ بدون پیامک پولی، بدون ربات پیام‌رسان و بدون سرویس خارجی. توضیح می‌دهیم ntfy چطور کار می‌کند، نصب خودکارش در مرحلهٔ سفارش چه چیزی آماده می‌کند، چرا با پروکسی لبه ایران‌کلاد بدون واسطه کار می‌کند و چطور topic‌ها را خصوصی نگه دارید. اگر اعلان‌ها فقط برای رابط وب لازم است، Gotify هم گزینهٔ ساده‌ای است.

۹ بخش حدود ۶ دقیقه مطالعه

فهرست مطالب

ntfy چیست و چرا این‌قدر ساده است؟

ntfy یک سرور اعلان متن‌باز است که با زبان Go نوشته شده و ایده‌اش بسیار ساده است: هر topic یک آدرس است. هر چیزی که به آن آدرس POST شود، به همهٔ مشترکان آن topic تحویل داده می‌شود؛ روی اپ اندروید، اپ iOS، رابط وب یا حتی یک اسکریپت دیگر که با curl گوش می‌دهد. نه ثبت اپلیکیشن لازم است، نه کلید API پیچیده.

همین سادگی باعث شده ntfy ابزار محبوب مدیران سرور باشد. یک خط در انتهای اسکریپت بکاپ کافی است تا موفقیت یا شکست آن را بدانید. ابزارهای مانیتورینگ و CI هم با یک درخواست HTTP به ntfy وصل می‌شوند و نیازی به نوشتن یکپارچه‌سازی جدا نیست.

مخاطب ntfy کسی است که چند سرور، اسکریپت زمان‌بندی‌شده یا سرویس خودمیزبان دارد و نمی‌خواهد هشدارها در ایمیل گم شوند. برای خانواده‌ها هم کاربرد دارد؛ مثلاً اعلان زنگ در یا سنسورهای خانهٔ هوشمند.

نمونه‌های واقعی استفاده از ntfy

اعلان‌هایی که معمولاً در روز اول راه‌اندازی می‌شوند:

  • نتیجهٔ بکاپ شبانه با اولویت بالا فقط وقتی شکست خورده است
  • هشدار پر شدن دیسک از یک cron ساده که هر ساعت فضای خالی را می‌سنجد
  • اعلان ورود SSH به سرور برای دیدن ورودهای غیرمنتظره
  • نتیجهٔ build و استقرار از Jenkins یا هر سیستم CI
  • قطعی سایت از Uptime Kuma با لینک مستقیم به صفحهٔ وضعیت
  • پایان پردازش طولانی مثل تبدیل ویدئو یا آموزش مدل، تا لازم نباشد مدام سر بزنید

بازگشت به فهرست مطالب

نصب خودکار ntfy دقیقاً چه چیزی آماده می‌کند؟

ntfy را در گام دوم سفارش از تب «اپلیکیشن‌ها» انتخاب می‌کنید و بقیهٔ کار خودکار است. اسکریپت نصب روی Ubuntu 22.04 بستهٔ docker.io را نصب می‌کند و پوشه‌های /opt/ntfy-data/cache و /opt/ntfy-data/etc را می‌سازد. در پوشهٔ etc فایل server.yml نوشته می‌شود: base-url آدرس http با IP واقعی سرور شماست، listen-http روی :80‏، cache-file در /var/cache/ntfy/cache.db، cache-duration برابر 12h، auth-file در /etc/ntfy/user.db و مهم‌تر از همه auth-default-access برابر deny-all.

سپس ایمیج binwiederhier/ntfy با فرمان serve و سیاست راه‌اندازی مجدد unless-stopped روی پورت ۸۰ اجرا می‌شود و دو پوشه به /var/cache/ntfy و /etc/ntfy وصل می‌شوند. کاربر admin با نقش مدیر و رمز تصادفی ۲۰ کاراکتری ساخته می‌شود؛ رمز پیش‌فرض یا مشترکی در کار نیست. در پایان، نصب با ارسال یک پیام آزمایشی با همین کاربر سنجیده می‌شود و فقط وقتی پیام پذیرفته شود، نصب موفق اعلام می‌شود.

نتیجه در تب «اپلیکیشن» صفحهٔ سرور می‌آید: آدرس وب، کاربر و رمز مدیر، مسیر داده و دو دستور آمادهٔ curl، یکی برای ارسال پیام به topic نمونه و دیگری برای گوش دادن به همان topic از مسیر sse. قوانین فایروال برای پورت‌های ۸۰ و ۴۴۳ هم خودکار اعمال می‌شوند و نصب هزینهٔ جداگانه‌ای ندارد. اگر روزی خواستید کاربر مدیر را از نو بسازید یا نصب را با دست بررسی کنید، همان کار را با docker exec و دستور ntfy user add --role=admin تکرار می‌کنید.

موردمقدارنکته
اجراDocker با ایمیج binwiederhier/ntfyفرمان serve
پورت۸۰ (HTTP)مستقیم قابل اتصال به پروکسی لبه
دسترسی پیش‌فرضdeny-allهر topic خصوصی است مگر اجازه دهید
کاربرانuser.db در /opt/ntfy-data/etcadmin با رمز تصادفی، نمایش در تب اپلیکیشن
نگه‌داری پیام۱۲ ساعت در cache.dbبا cache-duration قابل تغییر
پیوستخاموشبا attachment-cache-dir فعال می‌شود
هزینهٔ نصبرایگانفقط ساعتی سرور را می‌پردازید

بازگشت به فهرست مطالب

ارسال اعلان: از یک خط curl تا دکمهٔ عملیاتی

ساده‌ترین شکل ارسال، یک درخواست POST با متن پیام در بدنه است. برای اسکریپت‌ها بهتر است به‌جای رمز مدیر، یک کاربر جدا با اجازهٔ نوشتن در همان topic و یک توکن دسترسی بسازید و آن را در هدر Authorization بفرستید. اگر توکن لو رفت، فقط همان توکن را باطل می‌کنید.

هدرهای اختیاری اعلان را کاربردی‌تر می‌کنند: Title برای عنوان، Priority برای سطح اهمیت، Tags برای برچسب و ایموجی، Click برای باز کردن یک آدرس با لمس اعلان و Actions برای دکمه‌هایی که مثلاً یک درخواست HTTP دیگر می‌فرستند. با هدر Delay هم می‌توانید ارسال را به زمان دیگری موکول کنید؛ مثلاً یادآوری فردا صبح.

  • Title: عنوان کوتاه، مثل نام سرور
  • Priority: از ۱ (کم‌اهمیت) تا ۵ (فوری)
  • Tags: برچسب‌هایی مثل warning یا white_check_mark
  • Click و Actions: لینک و دکمه روی اعلان
  • Delay: ارسال زمان‌بندی‌شده

بازگشت به فهرست مطالب

هزینه و انتخاب پلن

ntfy رایگان است، نصب خودکارش در مرحلهٔ سفارش هم هزینهٔ جداگانه ندارد و فقط سرور ابری را ساعتی می‌پردازید. خود ntfy معمولاً چند ده مگابایت حافظه می‌گیرد و پلن mini برای هزاران اعلان در روز کافی است. هر اتصال باز از گوشی یا مرورگر کمی حافظه مصرف می‌کند، اما برای یک تیم یا خانواده این مقدار ناچیز است.

چون ntfy این‌قدر سبک است، منطقی است روی همان سروری اجرا شود که ابزارهای پایش دیگر را دارد؛ مثلاً کنار Uptime Kuma روی یک سرور standard. فقط مراقب باشید ntfy و ابزار پایش روی همان سروری نباشند که قرار است قطعی‌اش را گزارش کنند. برای جمع‌زدن هزینه از ماشین‌حساب هزینه استفاده کنید.

پلنمنابعساعتی (تومان)تقریبی ماهانه (تومان)
mini۱ هسته، ۱ گیگ RAM، ۲۰ گیگ دیسک۱٬۱۰۰۸۰۳٬۰۰۰
standard۲ هسته، ۲ گیگ RAM، ۴۰ گیگ دیسک۲٬۲۰۰۱٬۶۰۶٬۰۰۰

بازگشت به فهرست مطالب

ntfy در برابر Gotify، پیامک و ربات پیام‌رسان

هر روش ارسال هشدار مزایا و هزینهٔ خودش را دارد:

موضوعntfy روی سرور شماGotify روی سرور شماپیامکربات پیام‌رسان
هزینه هر پیامصفرصفربه ازای هر پیامصفر
ارسال از اسکریپتیک درخواست HTTPیک درخواست HTTP با توکن اپAPI سرویس پیامکAPI پیام‌رسان
اپ موبایلاندروید و iOSاندرویدنیاز ندارداپ پیام‌رسان
کنترل دادهکاملکاملسرویس‌دهندهٔ پیامکسرویس‌دهندهٔ پیام‌رسان
اولویت و دکمهٔ عملیاتیبلهاولویت داردنهمحدود

برای هشدارهای حیاتی که حتماً باید دیده شوند، ntfy را کنار ایمیل از سرویس SMTP به‌عنوان مسیر دوم نگه دارید.

بازگشت به فهرست مطالب

امنیت ntfy و اتصال با دامنه و HTTPS

ntfy در نصب ما روی پورت ۸۰ گوش می‌دهد و این دقیقاً همان پورتی است که پروکسی لبهٔ ایران‌کلاد به آن وصل می‌شود. کافی است زیردامنه‌ای مثل ntfy.example.com را در مدیریت DNS به IP سرور بدهید و پروکسی را برایش روشن کنید تا گواهی SSL خودکار صادر شود. سپس base-url را در server.yml روی آدرس https همین زیردامنه بگذارید و سرویس را راه‌اندازی مجدد کنید. پروکسی لبه WebSocket را عبور می‌دهد و زمان انتظار برای سرور اصلی را می‌توانید تا ۳۰۰ ثانیه بالا ببرید؛ ntfy هم با پیام‌های keepalive اتصال‌های طولانی را زنده نگه می‌دارد.

با deny-all، هیچ topicی بدون اجازهٔ صریح قابل خواندن یا نوشتن نیست؛ این تنظیم را تغییر ندهید مگر بخواهید سرور عمومی باشد. نام topic‌ها را حدس‌ناپذیر انتخاب کنید و برای هر سیستم کاربر یا توکن جدا داشته باشید. قانون پورت ۴۴۳ که در فایروال باز است در این پیکربندی استفاده نمی‌شود؛ اگر TLS را روی خود سرور راه نمی‌اندازید، آن را از فایروال شبکه ببندید.

بازگشت به فهرست مطالب

بکاپ و انتقال ntfy

دادهٔ مهم ntfy بسیار کم است: فایل server.yml و دیتابیس کاربران user.db در /opt/ntfy-data/etc. پیام‌ها موقت‌اند و از دست رفتنشان مشکلی ایجاد نمی‌کند. بکاپ کامل سرور از تب بکاپ پنل دستی ساخته می‌شود و فضای آن ساعتی ۲ تومان به ازای هر گیگابایت حساب می‌شود؛ جزئیات در صفحهٔ پشتیبان‌گیری. برای ntfy کپی دوره‌ای پوشهٔ etc هم کافی است.

برای انتقال به سرور جدید، پوشهٔ /opt/ntfy-data را منتقل کنید، همان ایمیج را اجرا کنید و رکورد DNS را به IP جدید برگردانید. چون اپ‌ها و اسکریپت‌ها با نام دامنه وصل شده‌اند، نه IP، هیچ تغییری در آن‌ها لازم نیست. همین دلیل خوبی است که از روز اول ntfy را با دامنه راه بیندازید.

بازگشت به فهرست مطالب

محدودیت‌هایی که پیش از شروع باید بدانید

از سمت ما: نصب ntfy خودکار است، اما به‌روزرسانی‌های بعدی با شماست؛ ایمیج با برچسب latest نصب می‌شود و برای نسخهٔ تازه باید ایمیج جدید را بگیرید و ntfy را با همان پورت و همان دو پوشه دوباره اجرا کنید. فایروال خودکار علاوه بر ۸۰، پورت ۴۴۳ را هم باز می‌کند که ntfy در این پیکربندی از آن استفاده نمی‌کند. سرور تک‌نودی است؛ اگر سرور ntfy خاموش شود، اعلان‌ها تا بازگشت آن نمی‌رسند. پس ntfy را روی سروری جدا از سرورهایی که پایش می‌کند نگه دارید.

از سمت ntfy: پیام‌ها برای تحویل‌اند نه آرشیو، و پس از مدت cache پاک می‌شوند. اعلان فوری در iOS به سرویس عمومی ntfy.sh وابسته است. اپ اندروید نسخهٔ فروشگاه گوگل برای اعلان پس‌زمینه از سرویس push گوگل هم کمک می‌گیرد؛ برای سرور شخصی گزینهٔ تحویل فوری را روشن کنید.

بازگشت به فهرست مطالب بازگشت به ابتدای راهنما

پرسش و پاسخ،  ۱۰ پرسش

سؤالات متداول

پاسخ پرسش خود را پیدا نکردید؟ با پشتیبانی در تماس باشید.

ntfy چیست و چطور کار می‌کند؟
ntfy یک سرویس انتشار و اشتراک روی HTTP است. پیام را با یک درخواست POST یا PUT به آدرسی مثل /backups می‌فرستید و هر دستگاهی که در topic با همین نام مشترک شده، آن را به‌صورت اعلان دریافت می‌کند. نه SDK لازم است نه کتابخانه؛ curl‏، wget‏، PowerShell یا هر زبان برنامه‌نویسی کافی است.
ntfy به چه کاری می‌آید؟
هر جا که قبلاً باید ایمیل یا پیامک هشدار می‌فرستادید: پایان یا خطای بکاپ شبانه، شکست build، پر شدن دیسک، ورود SSH به سرور، تمام شدن یک پردازش طولانی، یا پیام از یک workflow در n8n. ابزارهایی مثل Uptime Kuma و Healthchecks هم ntfy را به‌عنوان مقصد اعلان می‌شناسند.
اولویت، برچسب و عنوان اعلان را چطور تعیین کنم؟
با هدرهای HTTP. هدر Title عنوان، Priority سطح اهمیت از ۱ تا ۵ و Tags برچسب‌ها را مشخص می‌کند؛ برخی برچسب‌ها مثل warning به ایموجی تبدیل می‌شوند. اولویت ۵ روی گوشی صدا و لرزش قوی‌تر دارد. هدر Click هم آدرسی را تعیین می‌کند که با لمس اعلان باز می‌شود و هدر Actions دکمه‌های عملیاتی به اعلان اضافه می‌کند.
اپ موبایل ntfy با سرور شخصی کار می‌کند؟
بله. در اپ اندروید یا iOS هنگام اشتراک، آدرس سرور خودتان را به‌جای سرور پیش‌فرض وارد می‌کنید و نام کاربری و رمز را در تنظیمات اپ می‌گذارید. در اندروید گزینهٔ تحویل فوری یک اتصال دائمی به سرور شما نگه می‌دارد تا اعلان‌ها بدون واسطه برسند؛ این گزینه کمی باتری بیشتری مصرف می‌کند.
چطور به هر کاربر فقط topic‌های خودش را بدهم؟
با دستور ntfy access. مثلاً برای کاربر ci فقط اجازهٔ نوشتن در topic‌هایی که با deploy شروع می‌شوند و برای کاربر تیم فقط اجازهٔ خواندن. چون دسترسی پیش‌فرض در نصب ما deny-all است، هر چیزی که صریحاً اجازه نداده باشید بسته است. برای اسکریپت‌ها به‌جای رمز، توکن دسترسی با ntfy token add بسازید.
پیام‌ها چقدر روی سرور می‌مانند؟
در پیکربندی نصب ما پیام‌ها ۱۲ ساعت در فایل cache.db نگه داشته می‌شوند تا دستگاهی که آفلاین بوده، پس از اتصال پیام‌های جاافتاده را بگیرد. این مدت را با cache-duration در server.yml تغییر می‌دهید؛ ntfy برای آرشیو بلندمدت ساخته نشده است.
رمز مدیر و دستورهای آماده را کجا پیدا کنم؟
پس از پایان نصب، در صفحهٔ سرور تب «اپلیکیشن» را باز کنید. آنجا آدرس وب ntfy با IP واقعی سرور، نام کاربری admin، رمز تصادفی، مسیر داده‌ها و دو دستور curl آماده می‌بینید؛ یکی برای ارسال پیام به topic نمونه و دیگری برای گوش دادن به آن. رمز روی خود سرور هم در فایل /etc/ntfy-admin-pw ذخیره شده که فقط root می‌تواند آن را بخواند.
هزینهٔ اجرای ntfy چقدر است؟
ntfy رایگان و متن‌باز است و فقط سرور ابری را ساعتی می‌پردازید. ntfy بسیار سبک است و پلن mini با ۱٬۱۰۰ تومان در ساعت برای هزاران اعلان در روز کافی است. اگر سرور را با ابزارهای دیگری مثل Uptime Kuma شریک می‌کنید، standard با ۲٬۲۰۰ تومان در ساعت فضای بیشتری می‌دهد.
فایل یا تصویر هم می‌شود فرستاد؟
ntfy پیوست را پشتیبانی می‌کند، اما در پیکربندی نصب ما مسیر نگه‌داری پیوست تعریف نشده و این قابلیت خاموش است. برای فعال کردنش در server.yml مقدار attachment-cache-dir را روی پوشه‌ای داخل /opt/ntfy-data بگذارید و سقف حجم پیوست را تعیین کنید؛ سپس با curl -T فایل را به topic بفرستید.
اعلان روی iOS هم فوری می‌رسد؟
اپ iOS برای بیدار شدن در پس‌زمینه به سرویس push اپل وابسته است و سرورهای شخصی این کار را از طریق سرور عمومی ntfy.sh با تنظیم upstream-base-url انجام می‌دهند؛ یعنی فوری بودن اعلان در iOS به دسترسی سرور شما به آن سرویس بستگی دارد. در اندروید با تحویل فوری چنین وابستگی‌ای نیست.

پاسخ پرسش خود را پیدا نکردید؟ با پشتیبانی در تماس باشید.

هشدارها را همان لحظه ببینید

هر پلنی از mini به بالا را انتخاب کنید، ntfy را در تب اپلیکیشن‌ها بزنید و نصب را به ما بسپارید؛ نصب رایگان است و رمز مدیر در تب اپلیکیشن سرور منتظر شماست.

از ۱٬۱۰۰ تومان / ساعت،حدود ۸۰۳٬۰۰۰ تومان در ماه