مستندات

SAMM مستندات

راهنمای کامل اپراتور — از اولین نصب تا عملیات روزمره.

۲۵ موضوع ۸ بخش نصب با یک دستور
نصب سریع

ظرف چند دقیقه آنلاین، با یک دستور.

یک خط را روی یک سرور Ubuntu یا Debian تازه — یا در PowerShell روی Windows — اجرا کنید و نصب‌کننده آخرین نسخه را دریافت کرده و کل پشته SAMM را برای شما راه‌اندازی می‌کند.

راهنمای کامل نصب را بخوانید
Ubuntu / Debian — با دسترسی root اجرا کنید
curl -fsSL https://samm.securytik.com/install.sh | sudo bash
Windows — در PowerShell به‌عنوان مدیر اجرا کنید
irm https://samm.securytik.com/install-windows.ps1 | iex
فهرست پخش دوره ویدیویی SAMM را از نصب تا کارهای روزمره ببینید — یک دوره ویدیویی کامل یک فهرست پخش رایگان و گام‌به‌گام در YouTube که نصب SAMM و کار روزمره با آن را به شما آموزش می‌دهد — همان مطالبی که این راهنما پوشش می‌دهد، به‌صورت ویدیو. تماشا در YouTube

شروع به کار

نمای کلی و معماری

SAMM — SecuryTik Active Mikrotik Manager — یک پلتفرم کامل مدیریت ISP برای شبکه‌های PPPoE و Hotspot در MikroTik است. یک نصب‌کننده، یک سرور خام Linux را به یک سیستم کامل AAA، صورت‌حساب و مدیریت مشترکان تبدیل می‌کند.

SAMM برای چه کسانی است

SAMM برای ISP های بی سیم، اپراتورهای فیبر و ارائه دهندگان نقطه اتصال در حال اجرا ساخته شده است MikroTik RouterOS . اگر مشترکین را از طریق PPPoE، Hotspot یا IPoE/DHCP احراز هویت می کنید و باید اجرای سطوح سرعت، محدودیت‌های داده، تاریخ انقضا و صورت‌حساب — SAMM همه این کارها را از یک صفحه نمایش

مشترکین IPoE/DHCP با شناسه مدار DHCP Option 82 (فیزیکی) شناسایی می شوند پورت دسترسی - راه ISP حرفه ای) یا MAC دستگاه، و رمز عبور شعاع سرور DHCP به سادگی راز مشترک RADIUS خود روتر است، بنابراین هیچ چیز اضافی برای ارائه وجود ندارد.

استک دوگانه IPv6 یک گزینه اختیاری است: هر مشترک می‌تواند IPv6 را به‌علاوه IPv4 دریافت کند. آن را در جادوگر روتر فعال کنید و طول پیش‌پیش‌فرض (DHCPv6-PD) را انتخاب نمایید — /56 به‌طور پیش‌فرض، یا هر کجا از /48 تا /64 — و بلوک‌های IPv6 را برای توزیع انتخاب نمایید. در هر بازگشتی SAMM، یک استخر IPv6 WAN به‌همراه یک پیش‌فرض مسیریابی اختصاص‌یافته به شبکه محلی مشترک، بازگردانده می‌شود، بنابراین روتر اختصاصی مشتری (در حالت مسیردهی) آن را به /64ها تقسیم می‌کند و SLAAC را برای دستگاه‌های خود اجرا می‌کند — مدل استاندارد ISP برای اختصاص پیش‌فرض. این با PPPoE، هات‌اسپات و IPoE کار می‌کند، و یک پیش‌فرض IPv6 ثابت می‌تواند برای مشتریان تجاری به هر مشترک اختصاص داده شود.

چگونگی کارکرد آن

SAMM مسیر پرترافیک را نزدیک به پایگاه داده نگه می‌دارد. FreeRADIUS هر بسته احراز هویت و حسابداری را مدیریت می‌کند؛ در هر Interim-Update حسابداری، مستقیماً توابع PostgreSQL را فرا می‌خواند تا مصرف را جمع کند و محدودیت‌ها را ارزیابی کند — هیچ رفت‌وبرگشتی به Python در زمانی که مشترکان آنلاین هستند وجود ندارد.

چهار سطح اجرا از طریق یک پایگاه داده واحد با هم همکاری می‌کنند:

  • FreeRADIUS (unlang + rlm_sql) — authenticates every packet; on each Interim-Update it accumulates bytes/uptime and evaluates limits inside Postgres.
  • samm-radius — runs time-driven sweeps (expiry, daily reset, speed windows) and is the only process that sends Change-of-Authorization packets.
  • samm-worker — pings routers and syncs MikroTik device metadata over the API.
  • samm-api — the admin & customer portals; admin actions are queued to the database and applied by samm-radius, never sent as CoAs directly.

پنج سرویس

سرویسنقش
samm-apiپرتال مدیریت + پرتال سلف‌سرویس مشتری + REST API
samm-radiusصندوق خروجی CoA را تخلیه می‌کند؛ جاروب‌های انقضا / بازنشانی روزانه / پنجره سرعت را اجرا می‌کند
samm-workerروترها را ping می‌کند؛ فراداده دستگاه MikroTik را از طریق API همگام‌سازی می‌کند
samm-notificationاعلان‌های ایمیل و Telegram را از طریق یک صف تنظیم‌شده تحویل می‌دهد
samm-telegramربات سلف‌سرویس تعاملی Telegram را اجرا می‌کند

SAMM چه می‌کند

هسته AAA

احراز هویت PPPoE و Hotspot، اعمال سرعت به‌ازای هر کاربر، CoA ترکیبی.

طرح‌ها و محدودیت‌ها

سطوح سرعت به‌همراه چهار محدودیت مستقل و پنجره‌های سرعت زمان‌بندی‌شده.

مشترکان

کاربران PPPoE، Hotspot و IPoE/DHCP به‌علاوهٔ کارت‌های کوپن Hotspot پیش‌پرداخت با PDF قابل چاپ.

صورتحساب

قیمت‌گذاری به‌ازای هر پلن، فاکتورهای خودکار، یک دفتر کل دوطرفه دریافت‌ها/پرداخت‌ها/هزینه‌ها.

سلف‌سرویس

یک پرتال وب مشتری و یک ربات Telegram برای مصرف، فاکتورها و تیکت‌ها.

عملیات‌ها

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

سیستم

داخلی WireGuard VPN، Cloudflare تونل، هشت زبان، UI با موضوع.

اعلان‌ها

هشدارهای تمدید، انقضا، سهمیه و رسید از طریق ایمیل و Telegram.

بقیه این راهنما آموزش گام‌به‌گام برای هریک از این حوزه‌هاست. از منوی سمت چپ استفاده کنید، یا با نصب شروع کنید.

شروع به کار

نصب

SAMM هر آنچه نیاز دارد — FreeRADIUS، PostgreSQL، nginx، WireGuard، cloudflared و پنج سرویس SAMM — را در یک مرحله نصب می‌کند. نصب‌کننده idempotent است: اجرای دوباره آن، نصب موجود را در جای خود ارتقا می‌دهد و هرگز پیکربندی شما را بازنویسی یا رمز پایگاه داده شما را بازتولید نمی‌کند.

SAMM هر جایی اجرا می‌شود — مسیر نصبی را که با شبکه شما تناسب دارد انتخاب کنید:

پیش‌نیازها

  • یک سرور تازه: Ubuntu 22.04 / 24.04 / 26.04 LTS یا Debian 12 / 13. فقط لینوکس سروری — نسخه‌های دسکتاپ پشتیبانی نمی‌شوند.
  • دسترسی Root / sudo و یک اتصال اینترنت.
  • systemd و میزبانی که PostgreSQL بتواند به‌صورت محلی روی آن نصب شود (یکی برای شما راه‌اندازی می‌شود).

نصب

گزینه A — نصب با یک فرمان

روی سرور، اجرا کنید:

curl -fsSL https://samm.securytik.com/install.sh | sudo bash

این اسکریپت راه‌انداز آخرین بسته انتشار SAMM را از GitHub دانلود می‌کند، آن را استخراج می‌کند و نصب‌کننده کامل را به‌صورت خودکار اجرا می‌کند. در چند دقیقه انجام می‌شود.

اگر github.com در کشور شما مسدود شده باشد، از آینه میزبانی‌شده Cloudflare استفاده کنید — نصب‌کننده همانند، هیچ چیزی از GitHub دریافت نمی‌شود. (فرمان استاندارد بالا نیز به‌طور خودکار یک GitHub مسدود را تشخیص می‌دهد و به این آینه تغییر مسیر می‌دهد.)

curl -fsSL https://dl.securytik.com/install.sh | sudo bash

در هر صورت، پس از پایان کار نصب‌کننده، پرتال مدیریت را باز کنید و با این اعتبارنامه‌ها وارد شوید:

URL ورودhttp://<your-server>/admin · نام کاربریadmin · رمز عبورadmin

بلافاصله پس از اولین ورود، رمز عبور مدیر را تغییر دهید.

نصب

گزینه B — نصب روی Windows (Hyper-V)

SAMM روی Windows درون یک ماشین مجازی کوچک اختصاصی Ubuntu 24.04 روی Hyper-V اجرا می‌شود که توسط یک نصب‌کننده ایجاد و مدیریت می‌شود. این VM با آدرس IP مخصوص خود به شبکه شما می‌پیوندد، بنابراین روترهای MikroTik شما مستقیماً به SAMM دسترسی دارند — RADIUS آدرس واقعی هر روتر را می‌بیند و قطع‌اتصال‌های CoA درست مانند یک سرور Linux کار می‌کنند.

PowerShell را با دسترسی مدیر باز کنید — نه Command Prompt (cmd): روی دکمه Start راست‌کلیک کنید، Terminal (Admin) یا Windows PowerShell (Admin) را انتخاب کنید و Yes را بزنید. سپس این را اجرا کنید:

irm https://samm.securytik.com/install-windows.ps1 | iex

اگر samm.securytik.com از این رایانه در دسترس نیست، به‌جای آن از آینهٔ میزبانی‌شده روی Cloudflare استفاده کنید — همان نصب‌کننده. (نصب‌کننده هم هنگام شکست یک دانلود خودبه‌خود به آینه می‌رود.)

irm https://dl.securytik.com/install-windows.ps1 | iex

در هر صورت، پس از پایان کار نصب‌کننده، پرتال مدیریت را باز کنید و با این اعتبارنامه‌ها وارد شوید:

URL ورودhttp://<SAMM IP>/admin · نام کاربریadmin · رمز عبورadmin
ورود به سیستم‌عامل (SSH)samm / samm · root (کنسول)root / samm

همان پیش‌فرض‌های SAMM Server ISO. پس از اولین ورود همه را تغییر دهید. میان‌بر SAMM Info روی دسکتاپ آن‌ها را دوباره نشان می‌دهد، همراه با آدرس IP سامانهٔ SAMM و روش دسترسی به VM از طریق SSH.

چه چیزی می‌پرسد

  1. SAMM به کدام شبکه باید بپیوندد، وقتی رایانه بیش از یک آداپتور متصل دارد. برای گزینه پیشنهادی (سیمی قبل از Wi-Fi) کلید Enter را بزنید.
  2. آدرس IP SAMM در آن شبکه. یک آدرس آزاد پیشنهاد می‌کند؛ برای پذیرفتن آن Enter بزنید، آدرس دیگری وارد کنید، یا dhcp را تایپ کنید.

اگر Hyper-V خاموش باشد، نصب‌کننده آن را فعال می‌کند و یک بار درخواست راه‌اندازی مجدد Windows می‌دهد؛ پس از ورود دوباره، خودش ادامه می‌دهد. بقیه کار — Multipass، پل شبکه، VM و خود SAMM — با یک نوار پیشرفت، 10 تا 20 دقیقه طول می‌کشد.

نیازمندی‌ها

  • Windows 10 / 11 Pro، Enterprise یا Education، یا Windows Server 2019 و جدیدتر (64 بیتی). Windows Home فاقد Hyper-V است.
  • مجازی‌سازی سخت‌افزاری فعال در BIOS/UEFI (Intel VT-x یا AMD-V). نصب‌کننده این را بررسی می‌کند و اگر خاموش باشد با پیامی روشن متوقف می‌شود — ببینید فعال‌سازی مجازی‌سازی.
  • حداقل 8 گیگابایت حافظه، با 4 گیگابایت آزاد برای VM SAMM (3 گیگابایت حداقل است؛ سایر ماشین‌های مجازی — VMware، VirtualBox — از آن کم می‌کنند)، و 40 گیگابایت فضای دیسک آزاد.
  • استفاده از یک کابل شبکه به‌شدت توصیه می‌شود. بسیاری از درایورهای Wi-Fi نمی‌توانند یک ماشین مجازی را به شبکه پل بزنند، و در آن صورت فقط خود رایانه می‌تواند به SAMM دسترسی داشته باشد.

پس از نصب

  • پنل مدیریت را در آدرس http://<SAMM IP>/admin/login باز کنید (یک میانبر SAMM Admin روی دسکتاپ وجود دارد)، با admin / admin وارد شوید و بلافاصله رمز عبور را تغییر دهید.
  • RADIUS MikroTik خود را به IP SAMM هدایت کنید (UDP 1812/1813) — Router Wizard در پنل این کار را برای شما انجام می‌دهد.
  • SAMM همراه با Windows، پیش از ورود هر کاربری، اجرا می‌شود و رایانه به‌گونه‌ای تنظیم می‌شود که هرگز به حالت خواب نرود. در لپ‌تاپ، شارژر را متصل نگه دارید و بستن درپوش را روی «هیچ‌کاری نکن» تنظیم کنید.
  • برای حذف آن: همان خط را با -Uninstall اجرا کنید، یا & ([scriptblock]::Create((irm https://samm.securytik.com/install-windows.ps1))) -Uninstall.

نصب

فعال‌سازی مجازی‌سازی در BIOS/UEFI

SAMM روی Windows در یک ماشین مجازی Hyper-V اجرا می‌شود که به قابلیت مجازی‌سازی پردازنده نیاز دارد: Intel Virtualization Technology (VT-x) در Intel، یا AMD-V — که معمولاً SVM Mode نامیده می‌شود — در AMD. بیشتر رایانه‌ها با این ویژگی فعال عرضه می‌شوند؛ برخی آن را خاموش دارند. هر برند آن را در منوی متفاوتی پنهان می‌کند، بنابراین در ادامه مراحل کلی و محل معمول آن آمده است.

ابتدا بررسی کنید که آیا از قبل فعال است

Task Manager را باز کنید (Ctrl+Shift+Esc) → Performance → CPU. اگر زیر نمودار عبارت Virtualization: Enabled دیده شود، کار تمام است. (اگر Hyper-V از قبل فعال باشد، ممکن است Windows به‌جای آن خطی نشان دهد که می‌گوید یک hypervisor شناسایی شده — این نیز به معنای فعال بودن آن است.)

مراحل کلی

  1. کار خود را ذخیره کنید و رایانه را راه‌اندازی مجدد کنید.
  2. تنظیمات BIOS/UEFI را باز کنید: به‌محض روشن شدن صفحه، کلید ورود به تنظیمات را چند بار پی‌درپی فشار دهید (به جدول مراجعه کنید). در Windows 10/11 همچنین می‌توانید به Settings → System → Recovery → Advanced startup → Restart now بروید، سپس Troubleshoot → Advanced options → UEFI Firmware Settings → Restart.
  3. در منوی Advanced، Advanced CPU، Processor، Chipset، Security یا Virtualization به‌دنبال Intel Virtualization Technology، Intel VT-x، SVM Mode یا AMD-V بگردید و آن را روی Enabled قرار دهید. (Intel VT-d / AMD IOMMU لازم نیست.)
  4. Save and exit (معمولاً F10)، اجازه دهید Windows بالا بیاید، سپس نصب‌کننده SAMM را دوباره اجرا کنید.

محل معمول آن

برندکلید ورود به تنظیماتمحل معمول
DellF2پشتیبانی مجازی‌سازی → مجازی‌سازی / فعال‌سازی فناوری مجازی‌سازی اینتل
HPF10 (یا Esc، سپس F10)Advanced (یا Security / System Configuration) → Virtualization Technology (VTx)
LenovoF1 / F2 (یا دکمه Novo)Security (ThinkPad) یا Configuration → Intel Virtualization Technology / AMD SVM Technology
ASUSF2 / DelAdvanced Mode (F7) → Advanced → CPU Configuration → Intel Virtualization Technology یا SVM Mode
AcerF2Advanced (یا Main) → Intel Virtualization Technology
MSIDelOC → CPU Features → Intel Virtualization Tech یا SVM Mode
GigabyteDelTweaker (یا Advanced) → Advanced CPU Settings → Intel Virtualization Technology یا SVM Mode
سرورها (Dell iDRAC، HPE، Supermicro)F2 / F9 / DelProcessor Settings → Virtualization Technology — اغلب از قبل فعال است
یک ماشین مجازی درون ماشین مجازی دیگر (وقتی خود Windows در VMware، Proxmox یا Hyper-V اجرا می‌شود) در عوض به فعال‌سازی مجازی‌سازی تعبیه‌شده (nested virtualization) در hypervisor بیرونی نیاز دارد — برای نمونه «Virtualize Intel VT-x/EPT» در تنظیمات CPU در VMware، در حالی که VM خاموش است.

نصب

گزینه C — نصب دستی از یک بسته انتشار

آخرین samm-<version>.tar.gz را از صفحه GitHub Releases دانلود کنید، سپس روی سرور:

tar -xzf samm-<version>.tar.gz
cd samm-<version>
sudo bash install.sh

همچنین می‌توانید از یک zip که روی دستگاهی دیگر تولید شده استقرار دهید — نصب‌کننده منبع را با rsync به داخل /opt/samm منتقل می‌کند:

mkdir -p /opt/samm && unzip samm.zip -d /tmp/samm-bundle
sudo bash /tmp/samm-bundle/samm/install.sh

یا مخزن را در /opt/samm کلون کنید و sudo bash /opt/samm/install.sh را اجرا کنید.

در هر صورت، پس از پایان کار نصب‌کننده، پرتال مدیریت را باز کنید و با این اعتبارنامه‌ها وارد شوید:

URL ورودhttp://<your-server>/admin · نام کاربریadmin · رمز عبورadmin

بلافاصله پس از اولین ورود، رمز عبور مدیر را تغییر دهید.

نصب

گزینه D — نصب با Docker Compose

اگر ترجیح می‌دهید SAMM را به‌صورت کانتینر اجرا کنید — همان محصول، با بسته‌بندی متفاوت — از توزیع Docker Compose در github.com/mhdhaidarah/samm-docker استفاده کنید. روی هر میزبانی که Docker در دسترس باشد:

curl -fsSL https://github.com/mhdhaidarah/samm-docker/releases/latest/download/install.sh | sudo bash

این کار در صورت نبود Docker آن را نصب می‌کند، یک docker-compose.yml با رمز عبور تصادفی قوی از پیش تنظیم‌شده در /opt/samm-docker/ قرار می‌دهد و مجموعه را راه‌اندازی می‌کند. ایمیج mhdhaidarah/samm از همان بسته کامپایل‌شده نصب bare-OS ساخته می‌شود — طبق طراحی متن‌بسته.

چندمعماری — همان برچسب برای linux/amd64 و linux/arm64 منتشر می‌شود و نسخه درست به‌طور خودکار از برچسب انتخاب می‌شود: docker pull روی هر میزبان Docker ‏(Intel/AMD، سرور ARM، Mac با تراشه Apple) و MikroTik RouterOS 7.23+ روی خود روتر. یک فایل، همه پلتفرم‌ها.

روی میزبان‌هایی که لوله کردن curl به bash مجاز نیست (دستگاه‌های محدودشده، سیاست‌های خروجی سخت‌گیرانه)، می‌توانید فایل compose آماده اجرا را مستقیماً دریافت کنید:

git clone https://github.com/mhdhaidarah/samm-docker.git
cd samm-docker
# optional: edit docker-compose.yml and replace change-me-strong-random-string
docker compose up -d

چند قابلیت هنوز در نسخه Docker وجود ندارد (قفل مرحله‌ای مجوز، بارگذاری مجدد پویای FreeRADIUS). صفحات مدیریت داخلی WireGuard و Cloudflare Tunnel عمداً در نسخه Docker پنهان شده‌اند — آنها سرویس‌های systemd در سطح میزبان را مدیریت می‌کنند که از داخل کانتینر قابل دسترسی نیستند. اگر به این موارد به‌صورت داخلی نیاز دارید، گزینه A یا C بالا را انتخاب کنید، یا cloudflared / wg-quick را مستقیماً روی میزبان Docker در کنار SAMM اجرا کنید. برای تمام هشدارهای v1 و مسیر نصب دستی، به README نسخه Docker مراجعه کنید.

روی Windows (Docker Desktop) — فقط برای ارزیابی

برای محیط عملیاتی توصیه نمی‌شود. خواب / hibernate / بستن درپوش در Windows کانتینرها را متوقف می‌کند؛ راه‌اندازی مجدد هنگام بوت فقط زمانی فعال می‌شود که WSL شروع شود (نه هنگام بوت Windows)؛ cron به‌روزرسانی خودکار روزانه فقط زمانی اجرا می‌شود که WSL فعال باشد. آن را برای ارزیابی / نمایش استفاده کنید، سپس محیط عملیاتی را روی یک ماشین مجازی Linux (Hyper-V، Proxmox، ESXi) یا یک دستگاه فیزیکی کوچک (مثلاً یک NUC که Ubuntu Server اجرا می‌کند) مستقر کنید.

Docker Desktop را برای Windows نصب کنید (اجازه دهید در نخستین اجرا، بک‌اند WSL2 را راه‌اندازی کند). سپس از PowerShell — بدون نیاز به ترمینال WSL — بسته compose را دریافت کنید و استک را راه‌اندازی کنید:

mkdir C:\samm-docker
cd C:\samm-docker
curl.exe -fLO https://github.com/mhdhaidarah/samm-docker/releases/latest/download/docker-compose.yml
# optional: notepad docker-compose.yml — replace change-me-strong-random-string with your own password
docker compose pull
docker compose up -d

نگاه کنید به بوت شدن استک در Docker Desktop → کانتینرها — گروه samm به 8 سرویس گسترش می‌یابد. پس از اینکه همه آنها سبز شدند، پورتال مدیر را باز کنید و با این اعتبارنامه‌ها وارد شوید:

URL ورودhttp://localhost:8000/admin · نام کاربریadmin · رمز عبورadmin

بلافاصله پس از اولین ورود، رمز عبور مدیر را تغییر دهید.

اگر یک NAS واقعی MikroTik برای RADIUS به این میزبان Windows متصل شود، UDP 1812 + 1813 را از طریق Windows Firewall مجاز کنید:

New-NetFirewallRule -DisplayName "SAMM RADIUS" -Direction Inbound -Protocol UDP -LocalPort 1812,1813 -Action Allow

برچیدن: docker compose down -v از دایرکتوری نصب (سوئیچ -v ولوم postgres و کلید Fernet را پاک می‌کند — اگر داده افزوده‌اید، ابتدا از آنها پشتیبان بگیرید).

نصب

گزینه E — نصب روی روتر MikroTik ‏(RouterOS 7.23+)

همان SAMM، بدون نیاز به رایانه Linux. اگر دستگاه MikroTik شما بسته container را پشتیبانی می‌کند و درایو USB یا microSD دارد، می‌توانید کل مجموعه را مستقیماً روی روتر اجرا کنید — با همان docker-compose.yml که همه‌جا استفاده می‌شود. RouterOS 7.23+ معماری درست پردازنده را به‌طور خودکار از برچسب‌های چندمعماری می‌کشد، پس چیز خاص روتر برای دانلود وجود ندارد.

پشتیبانی می‌شود: هر روتر MikroTik با قابلیت کانتینر — RB5009، hAP ax²، CCR2004-1G-12S+2XS، CCR2116، CCR2216، L009، و موارد مشابه (arm64)، به علاوه x86 RouterOS و CHR (amd64). پشتیبانی نمی‌شود: دستگاه‌های armv7 / mipsbe / smips / tile / ppc (hEX، RB750، مدل‌های قدیمی‌تر RB) - بدون پشتیبانی از کانتینر یا RAM/CPU بسیار کم برای پشته SAMM . RouterOS 7.23 یا جدیدتر مورد نیاز است (نسخه‌های قدیمی‌تر نمی‌توانند معماری را از یک برچسب چند قوس انتخاب کنند).

۱. آماده‌سازی روتر

بسته container را نصب کنید (از extra_packages.zip در mikrotik.com/download — فایل container-*.npk مناسب را از طریق Files بارگذاری و سپس ری‌استارت کنید). سپس حالت کانتینر را فعال کنید (یک‌بار — فقط پس از قطع و وصل برق فعال می‌شود، نه با ری‌استارت نرم):

/system device-mode update container=yes
# HARD reboot the router (unplug the power) — a soft /system reboot
# will NOT activate the container feature

۲. فرمت و mount کردن دیسک (ext4)

یک درایو USB یا microSD وارد کنید (≥ 8 GB توصیه می‌شود — Postgres + لایه‌های ایمیج روی هم انباشته می‌شوند). روی روتر:

/disk print
# note the disk slot, e.g. "usb1-part1" or "disk1"
/disk format-drive usb1-part1 file-system=ext4 label=samm

پس از فرمت کردن، تأیید کنید که دیسک mount می‌شود و قابل نوشتن است:

/disk print detail
# look for "type=ext4" and a mount point like "/usb1-part1"

۳. فایل compose را کپی کنید

یک فایل برای همه پلتفرم‌ها. مقدار change-me-strong-random-string (رمز Postgres — همان مقدار قوی در همه‌جا) و change-me-random-token را جایگزین کنید. سپس در WebFig/WinBox: Container ← Apps ← + New ← YAML، بچسبانید، دیسک ext4 از مرحله ۲ را به‌عنوان حافظه تعیین کنید و ارسال کنید. RouterOS 7.23+ معماری درست پردازنده را به‌طور خودکار از برچسب‌های ایمیج می‌کشد.

روی "waiting for reverse proxy" گیر کرده؟ در RouterOS 7.23+، تیک Use HTTPS را در پنجره Apps بردارید و دوباره اجرا کنید — این گزینه پراکسی رابط وب برنامه را کنترل می‌کند، نه نحوه کشیدن ایمیج‌ها.
docker-compose.yml
name: samm

services:
  postgres:
    image: postgres:16-alpine
    restart: unless-stopped
    environment:
      POSTGRES_DB: samm
      POSTGRES_USER: samm
      POSTGRES_PASSWORD: change-me-strong-random-string
      TZ: UTC
    volumes:
      - pgdata:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U samm -d samm"]
      interval: 10s
      timeout: 5s
      retries: 12

  samm-api:
    image: mhdhaidarah/samm:latest
    restart: unless-stopped
    command: ["api"]
    environment:
      SAMM_ROLE: api
      POSTGRES_HOST: postgres
      POSTGRES_PORT: 5432
      POSTGRES_DB: samm
      POSTGRES_USER: samm
      POSTGRES_PASSWORD: change-me-strong-random-string
      TZ: UTC
      SAMM_API_HOST: 0.0.0.0
      SAMM_API_PORT: 8000
      SAMM_API_WORKERS: 2
      WA_BRIDGE_URL: http://wa-bridge:8787
      WA_BRIDGE_TOKEN: change-me-random-token
    depends_on:
      postgres:
        condition: service_healthy
    healthcheck:
      test: ["CMD-SHELL", "curl -fsS http://127.0.0.1:8000/health >/dev/null || exit 1"]
      interval: 10s
      timeout: 5s
      retries: 30
      start_period: 900s
    ports:
      - "8000:8000"
    volumes:
      - etcsamm:/etc/samm
      - sammvar:/opt/samm/var
      - sammlogs:/var/log/samm
      - sammlocales:/opt/samm/app/locales

  samm-radius:
    image: mhdhaidarah/samm:latest
    restart: unless-stopped
    command: ["radius"]
    environment:
      SAMM_ROLE: radius  # see samm-api notes — parser-agnostic role hint
      POSTGRES_HOST: postgres
      POSTGRES_PORT: 5432
      POSTGRES_DB: samm
      POSTGRES_USER: samm
      POSTGRES_PASSWORD: change-me-strong-random-string
      TZ: UTC
    depends_on:
      postgres:
        condition: service_healthy
      samm-api:
        condition: service_healthy
    volumes:
      - etcsamm:/etc/samm
      - sammvar:/opt/samm/var
      - sammlogs:/var/log/samm

  samm-worker:
    image: mhdhaidarah/samm:latest
    restart: unless-stopped
    command: ["worker"]
    environment:
      SAMM_ROLE: worker  # see samm-api notes — parser-agnostic role hint
      POSTGRES_HOST: postgres
      POSTGRES_PORT: 5432
      POSTGRES_DB: samm
      POSTGRES_USER: samm
      POSTGRES_PASSWORD: change-me-strong-random-string
      TZ: UTC
    depends_on:
      postgres:
        condition: service_healthy
      samm-api:
        condition: service_healthy
    cap_add:
      - NET_RAW
    sysctls:
      - net.ipv4.ping_group_range=0 2147483647
    volumes:
      - etcsamm:/etc/samm
      - sammvar:/opt/samm/var
      - sammlogs:/var/log/samm

  samm-notification:
    image: mhdhaidarah/samm:latest
    restart: unless-stopped
    command: ["notification"]
    environment:
      SAMM_ROLE: notification  # see samm-api notes — parser-agnostic role hint
      POSTGRES_HOST: postgres
      POSTGRES_PORT: 5432
      POSTGRES_DB: samm
      POSTGRES_USER: samm
      POSTGRES_PASSWORD: change-me-strong-random-string
      TZ: UTC
      WA_BRIDGE_URL: http://wa-bridge:8787
      WA_BRIDGE_TOKEN: change-me-random-token
    depends_on:
      postgres:
        condition: service_healthy
      samm-api:
        condition: service_healthy
    volumes:
      - etcsamm:/etc/samm
      - sammvar:/opt/samm/var
      - sammlogs:/var/log/samm

  samm-telegram:
    image: mhdhaidarah/samm:latest
    restart: unless-stopped
    command: ["telegram"]
    environment:
      SAMM_ROLE: telegram  # see samm-api notes — parser-agnostic role hint
      POSTGRES_HOST: postgres
      POSTGRES_PORT: 5432
      POSTGRES_DB: samm
      POSTGRES_USER: samm
      POSTGRES_PASSWORD: change-me-strong-random-string
      TZ: UTC
    depends_on:
      postgres:
        condition: service_healthy
      samm-api:
        condition: service_healthy
    volumes:
      - etcsamm:/etc/samm
      - sammvar:/opt/samm/var
      - sammlogs:/var/log/samm

  wa-bridge:
    image: mhdhaidarah/samm:wa-bridge-latest
    restart: unless-stopped
    environment:
      WA_BRIDGE_TOKEN: change-me-random-token
      TZ: UTC
    depends_on:
      - samm-api
    volumes:
      - wabridge_auth:/data/auth      # multi-device session — persists the QR link

  freeradius:
    image: mhdhaidarah/samm:freeradius-latest
    restart: unless-stopped
    environment:
      POSTGRES_HOST: postgres
      POSTGRES_PASSWORD: change-me-strong-random-string
      TZ: UTC
    depends_on:
      postgres:
        condition: service_healthy
      samm-api:
        condition: service_healthy
    ports:
      - "1812:1812/udp"
      - "1813:1813/udp"

volumes:
  pgdata: {}
  etcsamm: {}
  sammvar: {}
  sammlogs: {}
  sammlocales: {}
  wabridge_auth: {}      # WhatsApp bridge multi-device session

۴. تأیید و اتصال MikroTik به SAMM

پس از اجرا شدن کانتینرهای SAMM ، پورتال مدیریت را در یک مرورگر باز کنید و با این اطلاعات کاربری وارد سیستم شوید:

URL ورودhttp://<router-ip>:8000/admin · نام کاربریadmin · رمز عبورadmin

بلافاصله رمز عبور مدیر را تغییر دهید. احراز هویت + حسابداری RADIUS روی UDP 1812 + 1813 روی خود روتر در دسترس است، بنابراین کلاینت RADIUS در MikroTik می‌تواند با رمز مشترکی که در System → RADIUS تنظیم کردید به 127.0.0.1 اشاره کند.

مسیر استقرار آزمایشی. ویژگی کانتینر RouterOS کمتر از Docker Compose است — DNS نام سرویس، ترتیب وابستگی ( depends_on ) و راه اندازی مجدد زنده رفتار متفاوتی دارند. اگر پشته روی سخت‌افزار شما نادرست است، به اجرای Docker روی یک جعبه کوچک Linux (NUC، Pi 4، Linux VM) در کنار MikroTik برگردید. همان فایل کامپوزی آنجا با معنای Compose کامل کار می کند.

5. به روز رسانی - پشتیبان گیری و بازیابی دستی

به‌روزرسانی یک برنامه کانتینر MikroTik، پایگاه داده شما را پاک می‌کند. RouterOS نمی‌تواند نسخه یک برنامه نصب‌شده را در جای خود تغییر دهد — تنها راه، حذف برنامه و اضافه کردن آن مجدداً است، و حذف آن همه چیز ذخیره‌شده توسط برنامه، از جمله پایگاه داده SAMM، را پاک می‌کند. پشتیبان‌گیری بگیرید و آن را به کامپیوتر خود دانلود کنید قبل از حذف برنامه. پشتیبان‌گیری باقی‌مانده روی روتر با همه چیز دیگر پاک می‌شود.

برای انتقال کانتینر MikroTik به نسخه جدید:

  1. در SAMM، به ابزارها → پشتیبان‌گیری بروید، پشتیبان‌گیری ایجاد کنید و فایل را به کامپیوتر خود دانلود نمایید.
  2. در روتر، برنامه را حذف کنید و دوباره آن را با برنامه جدید اضافه کنید نسخه
  3. SAMM جدید را باز کنید، به Tools → Backup بروید و آن را بازیابی کنید فایلی که دانلود کردید

این فقط برای ظرف MikroTik اعمال می شود. در Docker ( Linux ، Windows یا یک Linux VM) یک به روز رسانی docker compose pull است docker compose up -d ، و داده های شما دست نخورده است - حجم ها در خارج از آن قرار دارند ظروف و زنده ماندن.

نصب

گزینه F — SAMM Server ISO (نصب به‌صورت دستگاه آماده)

SAMM Server ISO هر دستگاه یا ماشین مجازی خالی را به یک سرور آماده SAMM تبدیل می‌کند: بوت کنید، در تنها صفحه‌ای که نمایش می‌دهد DHCP یا IP ثابت را انتخاب کنید، تأیید کنید و بروید. Ubuntu Server 24.04 LTS (نسخه حداقلی) را نصب می‌کند، نام میزبان را samm-server می‌گذارد و در نخستین بوت به‌طور خودکار جدیدترین نسخه SAMM را دانلود و نصب می‌کند — بنابراین ISO هرگز قدیمی نمی‌شود. کنسول، اسپلش بوت SAMM و بنر ورود شامل IP سرور، آدرس پنل مدیریت و اطلاعات ورود پیش‌فرض را نمایش می‌دهد و دستور samm-tools دسترسی مستقیم به ابزارهای نگهداری (بررسی سلامت، پشتیبان‌گیری و بازیابی پایگاه داده، بازنشانی رمز مدیر) می‌دهد.

این ISO دیسک نخست دستگاه را پاک می‌کند. آن را فقط روی سخت‌افزار یا ماشین مجازی مخصوص SAMM بوت کنید. اگر دستگاه هنگام نصب آفلاین باشد، راه‌اندازی به‌محض اتصال به اینترنت خودش کامل می‌شود.

آن را روی فلش USB بنویسید (با Rufus یا balenaEtcher یا dd) یا به یک ماشین مجازی متصل کنید، بوت کنید و به پرسش شبکه پاسخ دهید. ورودهای پیش‌فرض پس از نصب — پنل: admin / admin، سیستم‌عامل: samm / samm یا root / samm — همه را تغییر دهید.

دانلود SAMM Server ISO 2.2 GB

SHA-2568b6d57e286a4c0524d96b5b4970b57079113e000fc8229f94360410c12f5102e

نصب

مرجع نصب‌کننده

گزینه‌های غیرتعاملی

به همه اعلان‌ها می‌توان از پیش با متغیرهای محیطی پاسخ داد، بنابراین نصب‌کننده می‌تواند بدون نظارت اجرا شود:

متغیراثر
DB_PASSبه‌جای رمز تولیدشده خودکار، از این رمز پایگاه داده استفاده کن (فقط نصب اول)
CF_TOKENکانکتور Cloudflare Tunnel را با این توکن Zero Trust نصب کن
SAMM_HTTP_PORTپورت شنود nginx را اجباری کن (از اعلان تشخیص پورت 80 صرف‌نظر می‌کند)
SAMM_VERBOSE1 به‌جای نوار پیشرفت، خروجی خام فرمان را جریان می‌دهد
NO_COLOR1 خروجی رنگی را غیرفعال می‌کند
DB_PASS='strong_pw'   sudo bash /opt/samm/install.sh
CF_TOKEN='eyJ...'     sudo bash /opt/samm/install.sh
SAMM_HTTP_PORT=8080   sudo bash /opt/samm/install.sh

نصب‌کننده چه چیزی را راه‌اندازی می‌کند

نصب‌کننده به‌صورت یک نمایش پیشرفت زنده و رنگی اجرا می‌شود — یک نوار درصدی و یک چک‌لیست به‌ازای هر مرحله. خروجی خام هر مرحله در /var/log/samm-install.log ثبت می‌شود؛ در صورت شکست، 30 خط آخر چاپ می‌شود.

مؤلفهجزئیات
FreeRADIUS 3با بک‌اند PostgreSQL و کلاینت‌های پویای NAS پیکربندی شده؛ با freeradius -CX اعتبارسنجی شده
PostgreSQLپایگاه داده، طرح‌واره و همه مهاجرت‌های SQL اعمال شدند — هر فایل مهاجرت idempotent است
Python venvهمه وابستگی‌ها از requirements.txt نصب و کاتالوگ‌های ترجمه کامپایل می‌شوند. اگر Python توزیع با بسته کامپایل‌شده سازگار نباشد، نصب‌کننده مفسر مستقل سازگاری را خودکار در /opt/samm/runtime می‌گیرد
nginxپراکسی معکوس به‌صورت افزایشی افزوده شد — سایت‌های موجود هرگز حذف نمی‌شوند. وقتی پورت 80 آزاد باشد از آن استفاده می‌کند؛ در غیر این صورت یک پورت جایگزین می‌پرسد
5 servicessamm-api، samm-radius، samm-worker، samm-notification، samm-telegram — همه به‌عنوان واحدهای systemd فعال شدند
WireGuardبسته‌ها نصب شدند؛ بعداً از System → VPN پیکربندی می‌شوند
cloudflaredباینری همیشه نصب می‌شود؛ توکن تونل هنگام نصب اختیاری است یا بعداً از System → Cloudflare Tunnel افزوده می‌شود

همه اعتبارنامه‌ها — رمز پایگاه داده و کلیدهای امضای نشست — در نخستین نصب به‌صورت خودکار تولید می‌شوند.

اعلان‌های تعاملی

هر اعلانی در ابتدا، پیش از آغاز نصب رخ می‌دهد:

  • توکن Cloudflare — یک توکن کانکتور Zero Trust بچسبانید تا SAMM را بدون هیچ پورت باز، آنلاین منتشر کنید، یا Enter را فشار دهید تا صرف‌نظر کنید و بعداً آن را پیکربندی کنید.
  • پورت HTTP — اگر پورت 80 از قبل در حال استفاده باشد، نصب‌کننده آن سایت‌ها را دست‌نخورده باقی می‌گذارد و یک پورت جایگزین می‌پرسد (پیش‌فرض 8080).

خلاصه نصب

وقتی نصب‌کننده به پایان می‌رسد، خلاصه‌ای با URL مدیریت، ورود پیش‌فرض، پورت HTTP انتخاب‌شده، اعتبارنامه‌های پایگاه داده و مسیرهای فایل پیکربندی چاپ می‌کند:

============================================================
  SAMM is installed and running.
  Admin portal  : http://localhost/admin/login
  Default login : admin / admin   <- CHANGE AFTER FIRST LOGIN
  Config files  : /etc/samm/samm.yaml  /etc/samm/api.env
============================================================

ارتقا

برای ارتقا، منبع جدید را دریافت کنید و نصب‌کننده را دوباره اجرا کنید:

git -C /opt/samm pull        # or unpack a newer release bundle
sudo bash /opt/samm/install.sh

اجرای دوباره، منبع را مجدداً همگام می‌کند، venv را ارتقا می‌دهد، همه مهاجرت‌ها را دوباره اعمال می‌کند، پیکربندی‌های FreeRADIUS و nginx را دوباره بارگذاری می‌کند و هر سرویس را مجدداً راه‌اندازی می‌کند. فایل‌های پیکربندی شما و پورت HTTP انتخاب‌شده در نخستین نصب حفظ می‌شوند.

نکته SAMM می‌تواند خودش را هم به‌روزرسانی کند — به صدور مجوز و به‌روزرسانی‌ها مراجعه کنید. به‌روزرسانی‌های خودکار را فعال کنید، یا آنها را بنا به درخواست، از System → License اعمال کنید.
جداشده از شبکه و پایگاه داده راه دور SAMM فقط SAMM را عرضه می‌کند — FreeRADIUS، PostgreSQL، nginx و بقیه در زمان نصب از مخازن apt بالادستی دریافت می‌شوند، بنابراین نصب‌های جداشده از شبکه باید آن بسته‌ها را از پیش آماده کنند. برای یک PostgreSQL راه دور، DSN را پس از نصب در /etc/samm/samm.yaml تنظیم کنید.

شروع به کار

گام‌های اول

پنج کار کوتاه، یک نصب تازه را به نقطه‌ای می‌رساند که مشترکان می‌توانند متصل شوند و برایشان صورت‌حساب صادر شود.

۱ · اولین ورود

  1. http://<your-server>/admin/ را باز کنید (اگر پورت HTTP برابر 80 نیست، از پورت خلاصه نصب استفاده کنید)، یا URL تونل Cloudflare خود را باز کنید.
  2. با admin / admin وارد شوید.
  3. بلافاصله رمز عبور را از System → Admins، یا از منوی پروفایل در نوار بالا تغییر دهید.

۲ · افزودن اولین روتر

  1. به MikroTik → NAS بروید و روی Add Router کلیک کنید.
  2. IP روتر، یک نام کوتاه و یک رمز مشترک RADIUS را وارد کنید. برای دستگاه‌های MikroTik، به‌صورت اختیاری اعتبارنامه‌های API را برای همگام‌سازی زنده دستگاه اضافه کنید.
  3. روی MikroTik، یک سرور RADIUS اضافه کنید که به میزبان SAMM (پورت‌های 1812/1813) با رمز مشترک یکسان اشاره کند، و RADIUS را برای PPP / Hotspot فعال کنید.

به راه‌اندازی مجدد FreeRADIUS نیازی نیست — SAMM کلاینت‌های NAS را به‌صورت پویا از پایگاه داده تشخیص می‌دهد. برای رویه کامل به روترها (NAS) مراجعه کنید، یا اجازه دهید جادوگر راه‌اندازی، MikroTik را برای شما پیکربندی کند.

۳ · ایجاد یک پلن

یک پلن سرعت، محدودیت‌ها و قیمتی را که می‌فروشید تعریف می‌کند. به Users → Plans → New plan بروید. مرجع کامل فیلدها: پلن‌ها و محدودیت‌ها.

۴ · افزودن یک مشترک

به Users → New customer بروید، اعتبارنامه‌های ورود را پر کنید و یک پلن انتخاب کنید. مشترک می‌تواند بلافاصله متصل شود. برای دسترسی hotspot پیش‌پرداخت، به‌جای آن کارت‌های ووچر تولید کنید.

۵ · فعال‌سازی مجوز شما

یک نصب تازه به‌صورت ثبت‌نشده در یک سطح حداقلی اجرا می‌شود. System → License را باز کنید و برای برداشتن محدودیت‌ها فعال‌سازی کنید — به صدور مجوز و سطوح مراجعه کنید.

ریتم روزمره افزودن روترها → ایجاد پلن‌ها → افزودن مشترکان یا کارت‌ها → تماشای داشبورد → ثبت پرداخت‌ها در حسابداری.

شروع به کار

مهاجرت از سامانه‌ای دیگر

آیا هم‌اکنون سامانهٔ صورت‌حساب RADIUS دیگری را اجرا می‌کنید؟ SAMM داده‌های آن را می‌خواند و طرح‌ها و مشترکین شما را بازسازی می‌کند، بنابراین لازم نیست چیزی را دوباره وارد کنید. مشترکین رمز عبور سرویس و تاریخ انقضای موجود خود را نگه می‌دارند، یعنی دقیقاً مانند گذشته وارد می‌شوند.

به ابزارها → برون‌بری / درون‌بری بروید و سامانهٔ قدیمی خود را زیر مهاجرت از سامانه‌ای دیگر انتخاب کنید. مانند بقیهٔ ابزارها، تنها برای مدیر ارشد در دسترس است.

چه چیزی بارگذاری کنید

سامانهٔ قدیمیفایلاز کجا می‌آید
SAS4 / Radius Manager .sql یا .sql.gz یک پشتیبان MySQL از پایگاه دادهٔ قدیمی
Super Speed Radius .sql یا .sql.gz یک پشتیبان MySQL از پایگاه دادهٔ قدیمی
Pro Radius .xlsx یا .csv فهرست مشترکین صادرشدهٔ آن — آن سامانه هیچ خروجی پشتیبانی ندارد

پشتیبان‌های پایگاه داده اغلب چند گیگابایت هستند؛ اشکالی ندارد، فایل را همان‌طور که هست بارگذاری کنید. پشتیبان‌های فشرده نیازی به باز کردن ندارند.

چگونگی کارکرد آن

  1. فایل را بارگذاری کنید. هنوز چیزی نوشته نمی‌شود.
  2. پیش‌نمایش را بررسی کنید. طرح‌ها و مشترکینی را که ساخته می‌شوند فهرست می‌کند، دربارهٔ هر چیزی که ناچار به نادیده گرفتن یا اصلاح آن شده هشدار می‌دهد، و پیش از تأیید شما مجموع را با مجوزتان می‌سنجد.
  3. انتخاب کنید با نام‌های کاربری موجود چه شود در SAMM — از آن‌ها بگذرید و رکورد SAMM را نگه دارید، یا نام و اطلاعات تماس آن را از سامانهٔ قدیمی به‌روزرسانی کنید.
  4. درون‌بری کنید. هر سطر مستقل نوشته می‌شود، بنابراین یک سطر معیوب هرگز بقیه را برنمی‌گرداند.

چه چیزی منتقل می‌شود

  • طرح‌ها — نام، سرعت‌ها، قیمت، مدت و سهمیهٔ ترافیک، تا جایی که سامانهٔ قدیمی آن‌ها را ثبت کرده باشد.
  • مشترکین — نام کاربری، رمز عبور سرویس، نام، اطلاعات تماس، تاریخ انقضا، طرح، IP ثابت و MAC.
  • مشترکینی که در سامانهٔ قدیمی غیرفعال بوده‌اند غیرفعال می‌مانند.

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

مقادیری که با ستون خود همخوانی ندارند

پایگاه‌های دادهٔ واقعی نامرتب‌اند: نشانی‌ای که در کادر ایمیل تایپ شده، یادداشتی در فیلد موبایل، شماره تلفنی که با صفحه‌کلید عربی نوشته شده. SAMM هر مقدار را در برابر آنچه ستونش باید نگه دارد بررسی می‌کند. هر چه جا نیفتد بیرون از آن فیلد می‌ماند و به‌جای آن در یادداشت‌های مدیریتی مشترک ذخیره می‌شود، با برچسب منشأ آن — بنابراین چیزی از دست نمی‌رود و هیچ فیلدی آلوده نمی‌شود. پیش‌نمایش به شما می‌گوید چند مقدار تحت تأثیر قرار گرفته است.

Pro Radius به‌تفصیل

Pro Radius مشترکین را صادر می‌کند اما طرح‌ها را نه، بنابراین SAMM طرح‌ها را از سطح سرویس هر مشترک استخراج می‌کند و سرعت را از نام آن می‌گیرد (سرویسی به نام "4MBPS" به طرحی ۴ مگابیتی تبدیل می‌شود). سه چیز به‌سادگی در آن فایل نیستند و روی مقادیر پیش‌فرض معقولی تنظیم می‌شوند که باید بعداً بازبینی کنید:

  • مدت — روی ۱ ماه تنظیم می‌شود. تاریخ انقضای واقعی هر مشترک بدون تغییر درون‌بری می‌شود، بنابراین این تنها بر تمدیدهای آینده اثر می‌گذارد.
  • سرعت بارگذاری — برابر با سرعت دریافت تنظیم می‌شود.
  • قیمت — روی ۰ تنظیم می‌شود.
پیش از صدور فاکتور طرح‌ها را بازبینی کنید پس از یک درون‌بری Pro Radius، طرح‌ها را باز کنید و قیمت و دورهٔ واقعی هر یک را تعیین کنید. تا آن زمان، آن طرح‌ها با صفر صورت‌حساب می‌شوند.

خوب است بدانید

  • می‌توانید با خیال راحت بیش از یک بار اجرا کنید. درون‌بری دوبارهٔ همان فایل، همهٔ کسانی را که از پیش موجودند نادیده می‌گیرد و تکراری نمی‌سازد.
  • مجوز شما همچنان اعمال می‌شود. اگر فایل بیش از تعدادی که ردهٔ شما اجازه می‌دهد مشترک داشته باشد، پیش‌نمایش از همان ابتدا این را می‌گوید و تعدادی را که جا می‌شود اعلام می‌کند — می‌توانید ارتقا دهید یا مجموعه‌ای جزئی را درون‌بری کنید.
  • ابتدا یک پشتیبان بگیرید اگر در نصبی درون‌بری می‌کنید که از پیش دادهٔ واقعی دارد.

مشترکان و طرح‌ها

طرح‌ها و محدودیت‌ها

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

نصب تازه با ۹ طرح آماده ارائه می‌شود — هشت رده سرعت ماهانه به‌علاوه طرح محدودکننده «Expired» — می‌توانید فورا بفروشید یا طرح خودتان را بسازید. مقداردهی فقط در نصب اول اجرا می‌شود و هرگز طرح‌های شما را بازنویسی نمی‌کند.

ایجاد یک پلن

  1. به Users → Plans بروید.
  2. روی New plan کلیک کنید.
  3. فرم را پر کنید و روی Save plan کلیک کنید.

هر محدودیت یک کلید دوحالته است — فقط مواردی را که نیاز دارید فعال کنید. همان پنجره، یک پلن موجود را ویرایش می‌کند (منوی ⋮ ردیف → Edit را باز کنید).

فیلدهای پلن

میدانمعنا
نامنام یکتای پلن، مثلاً Home-50M
قیمتهنگام استفاده از صدور فاکتور، در هر دوره صورت‌حساب دریافت می‌شود
سرعت دانلود / آپلودمثلاً 50M، 512K، 1G — به‌عنوان محدودیت نرخ MikroTik اعمال می‌شود
نشست‌های هم‌زمانچند دستگاه می‌توانند هم‌زمان در این طرح آنلاین باشند. مقدار پیش‌فرض 1 است — تا زمانی که نشست اول متصل باشد ورود دوم رد می‌شود. برای نامحدود 0 بگذارید. نشستی که گزارش‌دهی را متوقف کرده نادیده گرفته می‌شود، بنابراین قطع اتصال هرگز مشترک را محروم نمی‌کند
محدودیت: انقضااشتراک، یک دوره ثابت پس از فعال‌سازی پایان می‌یابد (روز/ماه/ساعت/دقیقه)
محدودیت: سهمیهیک سقف داده کل (ترکیبی، فقط دانلود، یا فقط آپلود) برای کل اشتراک
محدودیت: زمان اتصالسقفی بر زمان اتصال تجمعی — مجموع مدت همه نشست‌ها
محدودیت: مصرف روزانهیک سقف داده که هر روز در زمان بازنشانی روزانه پیکربندی‌شده صفر می‌شود
پنجره نامحدودافزودن سریع یک پنجره سرعت — ویرایشگر کامل در صفحه Speed Windows پلن قرار دارد
استخر IPنام اختیاری RADIUS Framed-Pool برای تخصیص آدرس
تمدید خودکاربه‌جای تعویض پلن یا قطع اتصال، در زمان انقضا یک دوره تازه شروع کن

چهار محدودیت

هر محدودیت مستقل و اختیاری است. وقتی چند محدودیت تنظیم شده باشند، SAMM آنها را با ترتیب ثابت — انقضا → سهمیه → زمان اتصال → روزانه — بررسی می‌کند و اولین موردی که به پایان برسد، اقدام را تعیین می‌کند.

محدودیتپیگیری می‌کندهنگام اتمام
انقضازمان تقویمی از زمان فعال‌سازیتعویض به یک پلن دیگر، یا قطع اتصال
سهمیهکل بایت‌های مصرف‌شدهتعویض به یک پلن دیگر، یا قطع اتصال
زمان اتصالثانیه‌های تجمعی نشستتعویض به یک پلن دیگر، یا قطع اتصال
روزانهبایت‌ها از آخرین بازنشانی روزانهکاهش سرعت — به سرعت‌هایی که وارد می‌کنید یا با طرح کندتر — تا بازنشانی روزانه بعدی

برای هر محدودیت انتخاب می‌کنید هنگام اتمام چه شود: یک طرح بعدی برای انتقال مشترک برگزینید یا روی — قطع اتصال — بگذارید. محدودیت روزانه به‌جای قطع، سرعت را کم می‌کند: به‌طور پیش‌فرض سرعت‌ها را مستقیم وارد می‌کنید (فیلدهای دانلود/آپلود) یا طرح «بعدی» کندتری انتخاب می‌کنید — در هر دو حالت مشترک در بازنشانی روزانه بعدی خودکار به طرح اصلی برمی‌گردد.

پنجره‌های سرعت

یک پنجره سرعت سرعت پایه پلن را برای ساعات معینی بازنویسی می‌کند — برای مثال یک پنجره سرعت نامحدود پس از نیمه‌شب. روی یک ردیف پلن کلیک کنید تا ویرایشگر Speed Windows آن باز شود، که کنترل روز هفته را اضافه می‌کند و از پنجره‌هایی که از نیمه‌شب عبور می‌کنند پشتیبانی می‌کند. وقتی چند پنجره مطابقت داشته باشند، پرسرعت‌ترین پنجره برنده می‌شود.

توجه مشترکان کاهش‌سرعت‌یافته یا با محدودیت به‌اتمام‌رسیده از پنجره‌های سرعت مستثنا هستند — SAMM هرگز تا زمانی که یک محدودیت اعمال است، سرعت را بالا نمی‌برد.

دو مفهوم از مصرف

SAMM مصرف را در دو جا نگه می‌دارد و هرگز آنها را با هم اشتباه نمی‌گیرد:

  • شمارنده‌های قابل بازنشانی — وضعیت به‌ازای هر محدودیت. با یک بازنشانی مدیر و با بازنشانی روزانه صفر می‌شوند.
  • شمارنده‌های صورت‌حساب — مجموع‌های مادام‌العمر غیرقابل بازنشانی. هرگز صفر نمی‌شوند، بنابراین گزارش‌ها و فاکتورها دقیق می‌مانند.

مدیریت پلن‌ها

فهرست پلن‌ها سرعت هر پلن، تعداد مشترکان، محدودیت‌های فعال و پنجره‌های سرعت را نشان می‌دهد. از منوی ⋮ یک ردیف می‌توانید آن را ویرایش کنید، پنجره‌های سرعتش را باز کنید، فعال/غیرفعال کنید، به مشترکانش بروید، یا آن را حذف کنید (فقط زمانی که مشترکی ندارد). ویرایش تمدید خودکار پیشنهاد می‌دهد که تغییر را به همه مشترکان فعلی گسترش دهد.

کپی دوپهلو یک پلن را دقیقاً — سرعت‌ها، محدودیت‌ها، پنجره‌های سرعت و قیمت — با نامی جدید تکرار می‌کند، که از تغییر یک عدد با دست‌کاری دستی طرح سریع‌تر است. اگر نامی که می‌دهید قبلاً گرفته شده باشد، شماره بعدی آزاد مورد استفاده قرار می‌گیرد.

مشترکان و طرح‌ها

مشترکان

یک مشترک (مشتری / کاربر) یک حساب PPPoE یا Hotspot است که در برابر SAMM احراز هویت می‌شود. به هر مشترک دقیقاً یک پلن اختصاص می‌یابد.

ایجاد یک مشترک

  1. به Users بروید و روی New customer کلیک کنید.
  2. فرم را کامل کنید و ذخیره کنید — مشترک می‌تواند بلافاصله متصل شود.
میدانمعنا
نام کاربری *نام ورود PPPoE / Hotspot — باید یکتا باشد
رمز عبور *رمز عبور ورود (برای احراز هویت PAP/CHAP در RADIUS ذخیره می‌شود)
نام / نام خانوادگینام مشترک
موبایل / ایمیل / آدرسجزئیات تماس — برای اعلان‌ها و فاکتورها استفاده می‌شود
پلن *پلن سرویسی که باید اختصاص یابد
بازنویسی انقضاتاریخ انقضای دستی اختیاری به‌جای تاریخ محاسبه‌شده پلن
تمدید خودکاردوره پلن را به‌طور خودکار در زمان انقضا تمدید کن

مشترکین زیادی را همزمان ایجاد کنید

کاربران جدید دسته‌ای یک سری حساب‌های شماره‌دار را در یک عملیات ایجاد می‌کند — روش معمول برای ارائه یک بلوک از نام‌های کاربری به یک روستا، هتل، یا فروشنده مجدد. انتخاب کنید که چند تا، از کجا شروع شود، و چند رقم برای پر کردن (3 به 001، 002، … می‌دهد); همه چیز دیگر — پلن، انقضا، خودکار تجدید — یک بار پر می‌شود و به همه آنها اعمال می‌شود. آنها یک رمز عبور مشترک دارند.

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

فهرست مشترکان

صفحه Users هر مشترک را با یک نقطه وضعیت قابل مشاهده در یک نگاه، پلن اختصاص‌یافته و میزان باقی‌مانده از هر محدودیت فهرست می‌کند — مصرف روزانه با یک نوار پیشرفت، سهمیه باقی‌مانده، زمان اتصال باقی‌مانده و روزهای باقی‌مانده. بر اساس وضعیت (All / Active / Suspended / Expired / Online) فیلتر کنید یا بر اساس نام کاربری، نام یا موبایل جستجو کنید.

نشان تعویض پلن یک نشان تنها، پلن مشترک است. دو نشان که با یک فلش به هم پیوسته‌اند به این معناست که مشترک به محدودیت روزانه خود رسیده و به‌طور موقت روی یک پلن کاهش سرعت متوقف شده است — آنها در بازنشانی روزانه بعدی به پلن اصلی بازمی‌گردند.

مدیریت یک مشترک

روی یک ردیف راست‌کلیک کنید — یا از منوی ⋮ استفاده کنید — برای هر اقدام به‌ازای هر مشترک:

عملچه کاری انجام می‌دهد
مشاهده / ویرایشصفحه جزئیات را باز کن، یا جزئیات تماس، رمز عبور و انقضا را ویرایش کن
فعال / غیرفعالحساب را معلق کن — مشترکان آنلاین قطع می‌شوند
تمدید انقضامدت پلن را روی هر زمان باقی‌مانده اضافه کن؛ اگر پلن قیمت داشته باشد یک فاکتور تولید می‌کند
بازنشانی زمان اتصال / سهمیه / روزانهشمارنده محدودیت انتخاب‌شده را صفر کن
استفادهنمودارهای مصرف و تاریخچه نشست را باز کن
حذفمشترک و تمام تاریخچه او را حذف کن — نشست‌های فعال ابتدا قطع می‌شوند
چگونه اقدام‌ها اعمال می‌شوند بازنشانی‌ها، تغییرات پلن و تمدیدها در یک گزارش حسابرسی صف‌بندی و توسط تیک samm-radius اعمال می‌شوند — معمولاً ظرف چند ثانیه. اگر مشترک آنلاین باشد، SAMM یک بازخوانی زنده نیز ارسال می‌کند. به CoA و تغییرات زنده مراجعه کنید.

صفحه جزئیات می‌تواند رمز ورود مشترک را پشت دکمه چشم نشان دهد (با کپی تک‌کلیکی) — وقتی مشتری اطلاعاتش را می‌خواهد کاربردی است.

نمای مصرف

اقدام Usage یک صفحه ترافیک تفصیلی برای یک مشترک باز می‌کند، با یک انتخابگر دوره 7d / 14d / 30d / 90d. این صفحه سه رقم شاخص را گزارش می‌کند — ترافیک امروز (با تفکیک آپلود/دانلود و دقایق آنلاین)، ترافیک این ماه، و زمان آنلاین تجمعی برای ماه. زیر آنها یک نمودار ترافیک روزانه از آپلود در برابر دانلود، و یک جدول کامل تاریخچه نشست قرار دارد: زمان شروع و پایان، مدت، بایت‌های دانلود و آپلود، NAS، و علت پایان هر نشست.

عملیات دسته‌ای

برای تغییر مالک، انقضا، وضعیت یا تمدید خودکار برای بسیاری از مشترکان به‌طور همزمان — یا برای حذف تعداد زیاد — از ابزارهای تغییرات دسته‌ای و حذف دسته‌ای استفاده کنید. برای ایجاد مشترکان به‌صورت دسته‌ای از یک صفحه‌گسترده، از Export / Import استفاده کنید.

یک مشترک را به روترهای خاص محدود کنید

یک مشترک (یا کل گروه کارت) را می توان به NAS خاصی پین کرد روترهای از فرم ویرایش آن. بدون هیچ روتری انتخاب شده، حساب روی هیچ کدام کار می کند NAS; با انتخاب یک یا چند مورد، احراز هویت فقط از آن‌ها پذیرفته می‌شود روترها - اجباری با شکست در داخل خود RADIUS بسته می شود. با تغییر مجموعه، هر کدام قطع می شود جلسه زنده در روتر غیرمجاز بلافاصله. همراه با مدیریت By-NAS محدوده، اینگونه است که تنظیمات چند شعبه و حق رای، مشترکین هر شعبه را حفظ می کند روی روترهای آن شعبه

مشترکان و طرح‌ها

کارت‌های Hotspot

برای دسترسی Hotspot پیش‌پرداخت، به‌جای مشترکان جداگانه، یک دسته کارت ووچر تولید کنید. هر کارت یک جفت نام کاربری/رمز عبور با سرعت و محدودیت‌های خاص خود است، که به‌صورت هزارتایی تولید و برای توزیع چاپ می‌شود.

ایجاد یک گروه کارت

  1. به Users → Hotspot Cards بروید و روی New group کلیک کنید.
  2. فرم زیر را پر کنید و روی Create group کلیک کنید — SAMM اعتبارنامه‌های هر کارت را به‌طور خودکار تولید می‌کند.
بخشفیلدها
هویتنام یکتای گروه، توضیحات، پیشوند اختیاری نام کاربری، تعداد کارت‌هایی که باید تولید شوند (تا 10,000)
اعتبارنامه‌هاقالب نام کاربری و رمز عبور (اعداد / حروف / حروف و اعداد) و طول
محدودیت سرعتسرعت دانلود و آپلود — 256k، 6M، 1G؛ 0 = نامحدود
محدودیت انتقالنامحدود، سقف ترکیبی، یا سقف‌های جداگانه دانلود/آپلود (MB / GB / TB)
محدودیت زمان‌هاسقف زمان اتصال، انقضا پس از اولین ورود، و یک تاریخ اعتبار «معتبر تا» برای گروه

انقضا از اولین ورود هر کارت شمارش می‌شود، در حالی که معتبر تا یک تاریخ اعتبار قطعی است — کارت‌ها پس از آن قابل استفاده نیستند، چه فعال شده باشند و چه نشده باشند.

مدیریت گروه

منوی ⋮ گروه را باز کنید تا همه کارت‌ها را یکجا فعال یا غیرفعال کنید، تاریخ «معتبر تا» را تمدید کنید، کارت بیشتری به دسته بیفزایید یا مشخصاتش را ویرایش کنید. کارت‌های تکی را می‌توان از صفحه جزئیات بازنشانی (سهمیه، زمان یا انقضا) یا غیرفعال کرد.

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

وضعیت‌های کارت

وضعیتمعنا
استفاده‌نشدهتولید شده اما هرگز وارد نشده
فعالدر حال استفاده، در محدوده مجاز خود
به‌اتمام‌رسیدهبه یک محدودیت (سهمیه، زمان اتصال یا انقضا) رسیده است
غیرفعالبه‌صورت دستی غیرفعال شده

چاپ و پیگیری

یک گروه را باز کنید تا کارت‌های آن را ببینید، آنها را برای توزیع در یک PDF چاپ کنید (چیدمان چاپ از لوگوی ISP شما در Settings استفاده می‌کند)، و مصرف هر کارت را بررسی کنید. ترافیک کارت‌ها همچنین در گزارش‌ها زیر زبانه Cards ظاهر می‌شود، و هر گروه نمای حسابداری خاص خود را دارد.

مشترکان و طرح‌ها

سلف سرویس - مهمانان خودشان وارد سیستم می شوند

نقطه مقابل کوپن: هیچ کس چیزی و هیچ کس چاپ نمی کند پشت یک میز می ایستد یک بازدیدکننده به نقطه اتصال شما متصل می‌شود، روی ثبت نام ضربه می‌زند. در صفحه ورود به سیستم، نام و شماره تلفن همراه آنها را تایپ می کند و SAMM برای آنها a ارسال می کند رمز عبور از طریق پیامک، WhatsApp یا ایمیل. آن را در همان صفحه وارد می کنند و هستند آنلاین - و شما یک رکورد با نام و قابل صادرات از همه کسانی که از مهمان استفاده کرده اند نگه می دارید شبکه

مکان‌های معمولی: رستوران‌ها و کافه‌ها، هتل‌ها و مهمان‌خانه‌ها، نمایشگاه ها و نمایشگاه ها، کنفرانس ها، مراکز خرید، کلینیک ها و اتاق های انتظار، سالن های ورزشی، فضاهای کار مشترک، سالن ها، سالن های فرودگاه، استادیوم ها، پردیس ها، کتابخانه ها، نمایشگاه های اتومبیل، مکان های عروسی، استراحتگاه ها و کمپینگ ها.

روشن کردن آن

  1. ابتدا یک کانال تحویل تنظیم کنید. مرکز اطلاع رسانی → فعال کردن پیامک یا WhatsApp و برای خود یک پیام آزمایشی ارسال کنید تا زمانی که یک کانال کار نکند هیچ چیز دیگری کار نمی کند.
  2. خدمات خودکار → تنظیمات: تیک اجازه ثبت‌نام خودکار مهمانان، کانال‌هایی را که ارائه می‌کنید انتخاب کنید و مدت زمان اعتبار کد عبور و مدت زمان انتظار مهمانان قبل از درخواست کد جدید را تنظیم نمایید.
  3. کدهای عبور از گروه کارت خدمات خودکار به‌طور پیش‌فرض ارائه می‌شوند مگر اینکه دلیلی برای تغییر آن داشته باشید — این گروه سرعت و تعداد دستگاه‌هایی را که می‌توانند از یک کد عبور به اشتراک بگذارند، تعیین می‌کند.
  4. برای هر طرح ورود به سیستم که استفاده می‌کنید، برگه ثبت نام را فعال کنید. — همان‌طور که در زیر مشاهده می‌کنید. این گام مورد غفلت قرار می‌گیرد.

صفحه ورود - مرحله ای که مردم از دست می دهند

تابهه ثبت نام به‌صورت طراحی بر اساس ورود است و به‌طور پیش‌فرض غیرفعال است. مدیریت دستگاه‌های MikroTik را باز کنید → روتر → صفحه ورود، طراحی مورد استفاده خود را ویرایش کنید و گزینه اجازه خدمات خودکار را علامت‌گذاری کنید. می‌توانید هر جمله‌ای را که مهمانان در همان صفحه مشاهده می‌کنند، تغییر دهید — برچسب تب ثبت نام، خط معرفی، برچسب‌های دو فیلد، دکمه و پنج پاسخ («کد عبور شما در راه است»، «شما قبلاً یکی دارید»، «لطفاً بعداً دوباره تلاش کنید»، «ما قادر به ارسال آن نبودیم» و «ثبت نام در حال حاضر در دسترس نیست»).

سپس Push را فشار دهید — و پس از هر ارتقاء SAMM دوباره آن را فشار دهید. صفحات ورود به سیستم هات اسپات روی حافظه فلش خود روتر ، در SAMM نیست. ارتقاء SAMM آنها را مجدداً فشار نمی دهد، بنابراین روتر به سرویس قبلی خود ادامه می دهد صفحه - بدون برگه ثبت روی آن - تا زمانی که دوباره فشار دهید. SAMM در ورود به سیستم به شما هشدار می دهد وقتی روتر صفحات قدیمی‌تر از نسخه نصب شده شما را ارائه می‌کند، برگه صفحه و صفحه Self Service هر روتری را که نمی تواند برگه را نشان دهد نام می برد و پیشنهاد می کند آنها را تعمیر کند همه به یکباره

قوانینی که جلوی سوء استفاده را می گیرد

  • یک کد یک‌بار مصرف زنده برای هر شماره. درخواست مجدد در حالی که کد هنوز معتبر است، به مهمان می‌گوید پیام‌هایش را بررسی کند به جای ارسال کد دیگر.
  • سپس دوره‌ای از انتظار که خود تعیین می‌کنید، قبل از آن که این عدد بتواند درخواست یک عدد جدید کند.
  • اعتبار از لحظه ارسال کد عبور شروع می‌شود، نه از اولین ورود — بنابراین کدی که برای یک هفته استفاده نشده بود، هنوز هم کار نمی‌کند.
  • محدودیت روزانه تعیین‌شده توسط لایسنس شما (در زیر مشاهده کنید). پس از اتمام آن، از مهمانان خواسته می‌شود که بعداً دوباره تلاش کنند و کدهای عبور صادرشده همچنان معتبر می‌مانند.
  • هر تلاش ثبت می‌شود در برابر آدرس MAC دستگاه همان‌طور که روتر گزارش کرده است — که مهمان نمی‌تواند آن را از مرورگر خود جعل کند.

مجوز

Self Service جدا از طرح شما مجوز می‌گیرد، بر اساس تعداد کدهای ورودی که نصب شما در روز می‌تواند صادر کند، و در تاریخ خودش تمدید می‌شود — پس می‌توانید روی Free با یک افزونهٔ پولی باشید، یا روی Unlimited بدون آن. هر نصب روزانه 10 کد رایگان دارد؛ Light آن را به 50، Heavy به 200 می‌رساند و Max محدودیت را برمی‌دارد. قیمت‌ها را ببینید.

صفحه خودخدمت، استفاده شده/مجاز امروز را نشان می‌دهد و به‌طور واضح زمانی را که مجوز به پایان رسیده است، اعلام می‌کند. از داشبورد خود در securytik.com خریداری یا تمدید کنید، یا از سیستم → لایسنس بپرسید و یک مدیر SecuryTik آن را تأیید کند. کد عبور ارسال‌نشده، مجوز شما را مصرف نمی‌کند.

شبکه و روترها

روترها (NAS)

یک NAS (Network Access Server) روتری است که مشترکان را در برابر SAMM از طریق RADIUS احراز هویت می‌کند. هر روتری که ترافیک مشترک را حمل می‌کند به یک رکورد NAS نیاز دارد.

افزودن یک روتر

  1. به MikroTik → NAS بروید و روی Add Router کلیک کنید.
  2. فیلدهای زیر را پر کنید و ذخیره کنید.
میدانمعنا
IP / نام میزبان NASآدرس روتر، آن‌گونه که میزبان SAMM آن را می‌بیند
نام کوتاهیک برچسب کاربرپسند که در سراسر رابط کاربری نمایش داده می‌شود
نوعmikrotik همگام‌سازی زنده دستگاه و ارسال پیکربندی را باز می‌کند؛ انواع دیگر فقط RADIUS هستند
رمزرمز مشترک RADIUS — باید دقیقاً با روتر مطابقت داشته باشد، وگرنه احراز هویت شکست می‌خورد
پورت CoAپورت UDP که SAMM بسته‌های Change-of-Authorization را به آن ارسال می‌کند (پیش‌فرض MikroTik 3799)
پورت / کاربر / رمز عبور APIاعتبارنامه‌های API در MikroTik که SAMM برای خواندن اطلاعات دستگاه و ارسال پیکربندی استفاده می‌کند
به راه‌اندازی مجدد نیازی نیست SAMM کلاینت‌های NAS را به‌صورت پویا از پایگاه داده تشخیص می‌دهد — افزودن یا حذف یک روتر هرگز به راه‌اندازی مجدد FreeRADIUS نیاز ندارد.

فهرست NAS

هر روتر در یک جدول نمایش داده می‌شود — ID، IP / نام میزبان NAS، نام کوتاه، نوع، یک رمز ماسک‌شده (برای آشکار کردن آن روی سلول کلیک کنید)، پورت‌های CoA و API، و یک نتیجه ping زنده با زمان رفت‌وبرگشت. کادر جستجو بر اساس IP، نام کوتاه یا توضیحات فیلتر می‌کند.

منوی ⋮ هر ردیف اقدام‌های به‌ازای هر روتر را در بر دارد — View Device و Refresh Info (فقط MikroTik)، Edit، Push RADIUS config (فقط MikroTik)، و Delete. باز کردن یک ردیف از نوع mikrotik مستقیماً به صفحه دستگاه آن می‌رود.

کشف همسایه‌ها

روی Discover neighbors کلیک کنید تا شبکه برای دستگاه‌های MikroTik اسکن شود (با پروتکل کشف همسایه MikroTik) و بدون تایپ هر نشانی به‌عنوان رکورد NAS اضافه شوند. روتر کشف‌شده را می‌توان با IP اضافه کرد یا افزودن خودکار — راه‌اندازی تک‌کلیکی که کاربر مدیریتی SAMM را روی روتر می‌سازد، IP مدیریتی می‌فرستد و بریج کارخانه را حذف می‌کند.

افزودن خودکار برای روترهای تازه است راه‌اندازی تک‌کلیکی برای دستگاه‌های تازه از کارخانه (یا ریست‌شده) است — روی روتری که پیکربندی دارد ممکن است تنظیمات موجود را بازنویسی یا خراب کند.

ارسال پیکربندی RADIUS به روتر

برای رکوردهای NAS از نوع MikroTik، منوی ⋮ ردیف گزینه Push RADIUS config را ارائه می‌دهد — SAMM به‌جای آنکه شما دستی آن را تایپ کنید، روتر را از طریق API برای شما پیکربندی می‌کند. شما IP سرور SAMM را تأیید می‌کنید (باید از روتر قابل دسترسی باشد) و پورت‌های احراز هویت، حسابداری و CoA؛ سپس SAMM یک ورودی RADIUS روی روتر ایجاد یا جایگزین می‌کند:

تنظیممقدار
توضیحSAMM — تگی که SAMM برای یافتن و به‌روزرسانی بعدی این ورودی استفاده می‌کند
سرویسhotspot, ppp
آدرس / رمزمیزبان SAMM، با رمز مشترک از این رکورد NAS
مهلت زمانی3000 ms
CoA ورودیپذیرفته شده، روی پورت CoA که تأیید کردید

پس از پایان ارسال، پنجره یک گزارش نتیجه نمایش می‌دهد.

پیکربندی سمت MikroTik

اگر به‌جای آن روتر را به‌صورت دستی پیکربندی می‌کنید:

  • یک سرور RADIUS اضافه کنید که به میزبان SAMM اشاره کند، با رمز مشترک یکسان، فعال‌شده برای PPP / Hotspot.
  • از پورت احراز هویت 1812 و پورت حسابداری 1813 استفاده کنید.
  • CoA ورودی را روی پورت 3799 بپذیرید.
  • بازه Interim-Update حسابداری را حدود ۵ دقیقه بگذارید (پیش‌فرض ویزارد SAMM) — با این تناوب SAMM مصرف را جمع و محدودیت‌ها را ارزیابی می‌کند؛ بازه‌های کوتاه‌تر تاخیر محدودیت را کم اما ترافیک حسابداری را زیاد می‌کنند.

دستگاه‌های فقط پایش

روتری که به‌عنوان monitor اضافه شده در موجودی MikroTik ظاهر می‌شود و ping و همگام‌سازی می‌شود، اما هیچ نقش RADIUS ندارد — نمی‌تواند مشترکان را احراز هویت کند. از آن برای زیر نظر داشتن روترهایی که NAS مشترک نیستند استفاده کنید.

شبکه و روترها

مدیر MikroTik

وقتی یک روتر اعتبارنامه‌های API دارد، SAMM آن را مستقیماً از طریق API در MikroTik مدیریت می‌کند — بدون WinBox، بدون SSH. بخش MikroTik یک موجودی زنده از هر روتر است، و هر دستگاه یک صفحه جزئیات با پانزده زبانه باز می‌کند که تقریباً هر بخش از RouterOS را از مرورگر شما پیکربندی می‌کنند.

پایشگر MikroTik

MikroTik → Monitor برای هر روتر یک کارت نشان می‌دهد، که به‌صورت شبکه‌ای چیده شده است. هر کارت — که توسط samm-worker بازخوانی و هر 30 ثانیه به‌صورت زنده پرس‌وجو می‌شود — نقطه دسترس‌پذیری، نسخه RouterOS، بار CPU و تعداد هسته، مصرف حافظه، تعداد نشست‌های فعال، زمان اتصال و زمان آخرین نمونه را گزارش می‌کند.

یک کارت یا با NAS برچسب می‌خورد (روتری که مشترکان را نیز از طریق RADIUS احراز هویت می‌کند) یا با monitor (دستگاهی که فقط برای پایش اضافه شده است). Add MikroTik یک دستگاه جدید ثبت می‌کند؛ Refresh now یک پرس‌وجوی فوری را اجبار می‌کند. کارت‌های فقط پایش یک منوی راست‌کلیک دارند — Open، Edit، Refresh Info، Delete.

صفحه دستگاه — پانزده زبانه

هر دستگاهی را برای صفحه مدیریت کامل آن باز کنید. زبانه‌ها در چهار گروه قرار می‌گیرند.

نظارت

زبانهچه چیزی را نشان می‌دهد
نگاه کلیاطلاعات دستگاه، اطلاعات سیستم، و نمودارهای تاریخچه عملکرد (CPU، حافظه، نشست‌ها در طول زمان)
منفذهاهر منفذ با وضعیت زنده آن، به‌همراه تاریخچه ترافیک به‌ازای هر منفذ
وب‌سایت‌ها و برنامه‌هاسه نمای فرعی: Monitor (سایت‌ها و برنامه‌های دیده‌شده روی روتر با تاریخچه ترافیک)، QoS (اولویت مبتنی بر برنامه، در ادامه) و App Filter (مسدودسازی محتوا مبتنی بر DNS از کاتالوگ)

مدیریت دستگاه‌ها

زبانه Manager → General صفحه نگهداری دستگاه است: Identity (نام روتر)، Time (ساعت، منطقه زمانی و NTP)، و Tools (ریبوت، ping و دیگر اقدام‌های تک‌کلیکی روتر).

پیکربندی شبکه

زبانهچه چیزی را پیکربندی می‌کنید
Bridgeپل‌های LAN ایجاد کنید و انتخاب کنید کدام منفذهای فیزیکی (پورت‌ها) به هر کدام تعلق دارند
VLANمنفذهای VLAN را اضافه و مدیریت کنید
IPسه زیرزبانه — Static (آدرس‌های ثابت و پویا)، DHCP client (دریافت یک آدرس از بالادست)، DHCP server (توزیع آدرس‌ها، با یک جدول اجاره زنده)
DNSوب‌سایت‌ها و برنامه‌ها
WiFi / CAPsMANمنفذهای Wi-Fi با پیکربندی‌ها و پروفایل‌های امنیتی آنها؛ و کنترلر CAPsMAN — پیکربندی‌ها، قوانین تدارک و CAPهای راه دور

سرویس‌ها و نگهداری

زبانهچه چیزی را پیکربندی می‌کنید
PPPoEسرورهای PPPoE، پروفایل‌های PPP، استخرهای IP، و فاصله interim-update حسابداری RADIUS
Hotspotسرورهای Hotspot، پروفایل‌های hotspot و پروفایل‌های کاربر، استخرهای DHCP/IP، و صفحه ورود captive-portal
اینترنتاتصالات بالادست WAN — WANهای مدیریت‌شده توسط SAMM و مسیرهای پیش‌فرض، به‌همراه هر WAN موجود غیر SAMM که فقط‌خواندنی نمایش داده می‌شود
Firewallقواعد فیلتر، تحلیل امنیتی روتر، اتصال و مقصدها، ماژول‌های امنیتی و پشتیبان فایروال — Auto-Security پیش از اعمال، عکس فوری می‌گیرد و می‌تواند بازگشت خودکار زمان‌دار فعال کند تا قواعدی که شما را بیرون انداخت خودکار برگردد
به‌روزرسانیبه‌روزرسانی‌های RouterOS — یک کانال به‌روزرسانی انتخاب کنید، بررسی و اعمال کنید، و بسته‌های نصب‌شده را مرور کنید
جادوگرراه‌اندازی هدایت‌شده بار اول، در ادامه

فاصله interim-update در PPPoE

در زبانه PPPoE، Interim update تعیین می‌کند که روتر چند وقت یک‌بار بسته‌های Interim-Update حسابداری RADIUS را به SAMM ارسال می‌کند. SAMM از آن بسته‌ها برای جمع کردن شمارنده‌های بایت و زمان اتصال و برای ارزیابی محدودیت‌های سهمیه، روزانه و زمان اتصال استفاده می‌کند — بدون آنها، اعمال محدودیت و شمارنده‌های نشست زنده متوقف می‌شوند. مقدار توصیه‌شده 5m است.

صفحه ورود Hotspot

از تب Hotspot صفحه ورود captive-portal را مدیریت می‌کنید: صفحه‌های پیش‌فرض MikroTik را نگه دارید، یکی از قالب‌های داخلی را اعمال کنید، یا یکی از طرح‌های ذخیره‌شده خود را به کار ببرید. SAMM شامل یک ویرایشگر طراحی بصری و یک گالری قالب است — یک صفحه ورود را سفارشی کنید و مستقیماً به hotspot روتر بفرستید.

QoS آگاه از برنامه

نمای QoS (یک برگه فرعی از وب‌سایت‌ها و برنامه‌ها) برنامه‌ها و سایت‌ها را تغییر می‌دهد. SAMM قبلاً روی روتر یک طرح اولویت دانلود را مشاهده می کند. هر برنامه را از استخر به داخل بکشید یکی از هشت اسلات اولویتی — اسلات 1 ابتدا تحت رقابت، شیار 8 ارائه می شود آخرین برنامه های باقی مانده در استخر شکل ندارند. به صورت اختیاری، سرعت دانلود هر برنامه را محدود کنید (مثلا 10M ) و سقف کل دانلود را برای اولویت برای رقابت تعیین کنید. توزیع خودکار بر اساس دسته همه چیز را با یک کلیک مرتب می کند — ابتدا پیام رسانی، سپس خدمات هوش مصنوعی و سپس فروشگاه ها، با هر چیز دیگری در زیر.

هنگام ارسال، SAMM جایگاه‌ها را در یک queue tree MikroTik (با برچسب SAMM:qos، parent=global) به همراه قواعد فایروال packet-mark متناظر، از بالاترین اولویت به بعد کامپایل می‌کند. این بر پایه همان کاتالوگ Websites & App filter ساخته شده که مانیتورینگ را نیرو می‌دهد، بنابراین فقط برنامه‌هایی که واقعاً روی روتر دیده شده‌اند ظاهر می‌شوند — و حذف SAMM QoS هر شیء SAMM:qos را از روتر پاک می‌کند و شمارنده‌های شما را دست‌نخورده باقی می‌گذارد.

دستیار راه‌اندازی

زبانه ویزارد همه چیز را در ده گام کوتاه جمع می‌کند و در پایان کل پیکربندی را یکجا به روتر می‌فرستد. تا در گام بازبینی نهایی تایید نکنید چیزی ارسال نمی‌شود.

  1. خوش‌آمد و شناسایی — SAMM روتر را بررسی می‌کند و نشان می‌دهد چه چیزی از پیش پیکربندی شده است، تا بتوانید آن موارد را در ارسال رد کنید.
  2. واسط bridge — نام bridge شبکه LAN را بگذارید.
  3. پورت‌های bridge — انتخاب کنید کدام واسط‌های فیزیکی به bridge بپیوندند.
  4. DNS — تعیین resolverهای بالادست (پیش‌تنظیم‌های یک‌کلیکی برای Google، Cloudflare، Quad9 و بیشتر)، اندازه cache و به‌صورت اختیاری یک فیلتر محتوای DNS.
  5. NTP — منبع ساعت روتر را تنظیم کنید (کلاینت NTP و در صورت تمایل سرو زمان به LAN).
  6. اینترنت — یک یا چند لینک بالادست WAN اضافه کنید (Static / DHCP / PPPoE).
  7. RADIUS به SAMM — روتر را برای احراز هویت، حسابداری و CoA به میزبان SAMM خود نشانه بروید.
  8. سرویس‌ها — انتخاب کنید که جادوگر یک سرور PPPoE، یک سرور Hotspot یا یک سرویس IPoE/DHCP ایجاد کند، و به‌طور اختیاری استک دوگانه IPv6 (اختیاری، به‌طور پیش‌فرض خاموش) را فعال کنید: طول پیشوند اختصاص‌یافته (DHCPv6-PD) و بلوک‌های IPv6 را انتخاب کنید و جادوگر پول‌ها را ایجاد و به پروفایل PPP متصل می‌کند.
  9. جزئیات PPPoE / Hotspot و فایروال — پول‌ها، پروفایل‌ها، زمان اجاره، قواعد فایروال و NAT، به‌علاوه پول منقضی و مسدودسازی اینترنت اختیاری که مشترکین منقضی را به صفحه «اشتراک منقضی شد» SAMM هدایت می‌کند نه یک اتصال مرده.
  10. بازبینی و ارسال — فهرست دقیق فرمان‌هایی را که ارسال خواهند شد ببینید، سپس همه را به روتر بفرستید.
سرعت هر کاربر از RADIUS می‌آید wizard یک پروفایل واحد PPPoE / hotspot می‌سازد — پروفایل‌های جداگانه برای هر تیر ارسال نمی‌کند. سرعت هر مشترک هنگام ورود توسط SAMM در پاسخ RADIUS تحویل داده می‌شود، بنابراین تغییر طرح‌ها هرگز نیازمند ویرایش روتر نیست.

شبکه و روترها

نقشه شبکه، سلامت و Data Log

نقشه شبکه

Devices → Network Map از آنچه هر روتر درباره همسایه‌هایش گزارش می‌دهد رسم می‌شود — نموداری برای نگهداری وجود ندارد. بین لایه‌های پورت، آدرس IP، زیرشبکه و CPU جابه‌جا شوید یا مسیر هر دستگاه تا اینترنت را ببینید. گره‌ها را جابه‌جا کرده و چیدمان را ذخیره کنید؛ Discover now همسایه‌ها را دوباره می‌خواند.

سلامت شبکه

Devices → Network Health همه روترها را از بدترین فهرست می‌کند: سالم، دارای هشدار، پاسخ می‌دهد اما خراب، یا غیرقابل دسترس. هر یافته مشکل را به زبان ساده می‌گوید — CoA غیرفعال، عدم تطابق رمز RADIUS، ساعت ناهماهنگ، Telnet یا FTP باز. بررسی‌ها فقط روتر را می‌خوانند. در نمای Diagnose روتر، یافته‌های رایج رفع یک‌کلیکی با پیش‌نمایش دارند و قابل بازگشت هستند. یافته‌های باز در Alert Center هشدار ایجاد می‌کنند.

هر دو صفحه پشت یک کلید در تنظیمات هستند. وقتی خاموش است، SAMM برای آن‌ها با روترها تماس نمی‌گیرد.

Data Log

کاربری را باز کرده و Data Log را انتخاب کنید تا ببینید ترافیکش به کجا می‌رود: مقصدهای اصلی بر اساس میزبان و برنامه — YouTube، Facebook، WhatsApp — با آپلود، دانلود و اتصال‌ها، یا به صورت خط زمانی. SAMM خروجی جریان خود روتر (IPFIX) و در صورت نیاز جدول اتصال‌ها را می‌خواند و برنامه‌ها را با همان کاتالوگ App Filter نام‌گذاری می‌کند. SAMM هرگز در مسیر ترافیک قرار نمی‌گیرد.

خاموش تا زمانی که روشنش کنید مدیر ارشد Data Log را در تنظیمات فعال کرده و مدت نگهداری را انتخاب می‌کند. ارقام تقریبی هستند؛ صورتحساب همیشه از حسابداری RADIUS استفاده می‌کند.

شبکه و روترها

CoA و تغییرات زنده

CoA (Change-of-Authorization) روشی است که SAMM با آن نشست یک مشترک را هنگامی که آنلاین است تغییر می‌دهد — برای افزایش یا کاهش سرعت، یا قطع اتصال او — بدون آنکه منتظر اتصال دوباره او بماند.

چگونه یک تغییر به یک مشترک فعال می‌رسد

SAMM هرگز تغییری را مستقیماً با یک کلیک دکمه به روتر نمی‌فرستد. هر اقدام مدیر یک مسیر ایمن را دنبال می‌کند:

اقدام مدیر → گزارش حسابرسی → tick سرویس samm-radius → صندوق خروجی CoA → روتر
  1. اقدام به‌عنوان یک فرمان در صف در audit log ثبت می‌شود.
  2. سرویس samm-radius در tick بعدی خود صف را تخلیه می‌کند، تغییر را اعمال می‌کند و — اگر مشترک آنلاین باشد — یک CoA را به صف می‌افزاید.
  3. صندوق خروجی CoA تخلیه می‌شود و بسته به روتر ارسال می‌گردد.

رویدادهای زمان‌محور — انقضا، لبه‌های پنجره سرعت، بازنشانی‌های روزانه — به همان صندوق خروجی تغذیه می‌شوند. کران بالای تأخیر یک tick سرویس samm-radius است (به‌طور پیش‌فرض ۳۰ ثانیه؛ برای اعمال سخت‌گیرانه‌تر آن را در تنظیمات کاهش دهید).

CoA ترکیبی

SAMM ابتدا یک CoA-Update می‌فرستد تا نشست را در جا تغییر دهد. اگر روتر پس از تعداد تلاش‌های پیکربندی‌شده آن را رد کند، SAMM به‌طور خودکار به یک Disconnect-Request بازمی‌گردد — مشترک دوباره متصل می‌شود و تنظیمات جدید را دریافت می‌کند. این راهبرد ترکیبی در همه نسخه‌های firmware مربوط به MikroTik کار می‌کند.

صفحه صندوق خروجی CoA

Users → CoA Outbox نمای زنده آن صف است. samm-radius تنها فرستنده است — پنل مدیریت هرگز مستقیماً یک CoA نمی‌فرستد — و در هر tick صف را تخلیه می‌کند. صفحه هر 30 ثانیه به‌طور خودکار تازه می‌شود.

شش شمارنده در بالای صفحه قرار دارند — Pending، Sent، NACK (در حال تلاش دوباره)، Done، Failed و Total. جدول را بر اساس وضعیت، بر اساس اقدام (update یا disconnect) فیلتر کنید، یا بر اساس نام کاربری، IP مربوط به NAS یا دلیل جستجو کنید.

وضعیتمعنا
در انتظاردر صف، در انتظار tick بعدی samm-radius
ارسال‌شدهارسال شد (گذرا — ارسال و نتیجه‌اش در همان تیک ثبت می‌شوند و ردیف‌ها به‌ندرت در این حالت می‌مانند)
nackروتر CoA-Update را رد کرد — SAMM در حال تلاش دوباره است، سپس به یک disconnect بازمی‌گردد
انجام‌شدهبا موفقیت اعمال شد
ناموفقپس از رسیدن به حد تلاش دوباره منصرف شد — برای دیدن آخرین خطا نشانگر را روی نشان نگه دارید

هر ردیف کاربر، روتر، اقدام، تعداد تلاش، دلیل و زمان‌های ایجاد و ارسال را نشان می‌دهد. اقدام‌های هر ردیف به شما اجازه می‌دهند یک بسته ناموفق یا nack‌شده را Retry کنید، بسته‌ای را که هنوز در حال ارسال است Cancel کنید، یا Attributes را باز کنید تا صفت‌های دقیق RADIUS که بسته حمل می‌کند را بررسی کنید. نشان نوار کناری ردیف‌های در انتظار را می‌شمارد؛ Dashboard خطاهای ۲۴ ساعت را دنبال می‌کند. یک سیستم سالم این صف را نزدیک به خالی نگه می‌دارد.

درو کهنه نشسته

در صورت خرابی یا از دست دادن اتصال روتر، بسته‌های حسابداری آن ممکن است گم شوند— و در بسیاری از سیستم‌ها، آن کاربران «آنلاین» باقی می‌مانند. SAMM جلساتی را که متوقف شده‌اند ارسال به‌روزرسانی‌های موقت و به‌طور خودکار آن‌ها را می‌بندد (دلیل پایان Reaped-Stale)، بنابراین لیست جلسات زنده، شمارش‌های استفاده همزمان و ارقام مصرف صادقانه باقی می‌مانند. زمان‌بندی، تنظیم stale_session_timeout_seconds است (پیش‌فرض 900 ثانیه = 15 دقیقه؛ تنظیم 0 برای غیرفعال کردن)، و آن به‌طور زنده اثر می‌گذارد— نیازی به راه‌اندازی مجدد نیست.

عملیات روزانه

Dashboard و نشست‌های زنده

دو صفحه زیر Overview جایی است که هر شیفت را از آن آغاز می‌کنید — Dashboard برای سلامت کل سیستم و Live Sessions برای اینکه دقیقاً چه کسی هم‌اکنون متصل است.

داشبورد

Overview → Dashboard صفحه خانه اپراتور است. یک انتخابگر بازه در بالا — Today، 7d، 14d، 30d، 90d — پنجره نمودار روند و ارقام محدود به تاریخ را تعیین می‌کند.

شش کاشی KPI

هر کاشی یک شمارنده زنده و یک میان‌بر است — روی آن کلیک کنید تا مستقیماً به فهرست فیلترشده پشت آن عدد بروید.

کاشینمایش می‌دهدباز می‌کند
هم‌اکنون آنلاینمشترکانی که هم‌اکنون یک نشست زنده RADIUS دارندکاربران فیلترشده به Online
مشترکان فعالحساب‌های فعال، با تعداد کل مشترکان در زیر آنکاربران فیلترشده به Active
منقضی شدهمشترکانی که اشتراکشان منقضی شده و طرح بعدی برایشان تعیین نشده استکاربران فیلترشده به Expired
تیکت‌های بازتیکت‌های پشتیبانی حل‌نشده (بدون انجام‌شده و بسته)کاربران ← تیکت‌های پشتیبانی
روترهاکل رکوردهای NAS، به علاوه تعداد مواردی که اکنون در دسترس نیستندمانیتور MikroTik
فاکتورهای پرداخت‌نشدهفاکتورهایی که هنوز نیازمند پیگیری پرداخت هستندفاکتورهای فیلترشده به Unpaid

نمودار کاربران و نشست‌های زنده

یک نمودار خطی مبتنی بر عکس‌فوری روزانه سه سری را در سراسر بازه انتخاب‌شده رسم می‌کند — کاربران فعال، نشست‌های آنلاین و کاربران منقضی‌شده — تا رشد و ریزش در یک نگاه دیده شوند.

سلامت pipeline

این پنل ضربان موتور اعمال قوانین است. در یک سیستم سالم صف‌ها روی صفر یا نزدیک صفر قرار دارند — عددی که بالا می‌ماند به یک سرویس گیرکرده یا یک روتر که تغییرات را رد می‌کند اشاره دارد.

معیارمعنای آن
samm-radius صفCoAهای در انتظار که منتظر tick بعدی هستند — باید ظرف چند ثانیه پاک شوند
CoA ناموفق (۲۴ ساعت)در یک سیستم سالم صفر است؛ عدد غیرصفر یعنی یک روتر CoAها را رد می‌کند
audit log در انتظاراقدام‌های مدیر در صف که هنوز توسط samm-radius اعمال نشده‌اند
نشست‌های محدودشدهمشترکانی که اکنون به دلیل یک محدودیت با سرعت کاهش‌یافته نگه داشته شده‌اند — مورد انتظار است، نه یک خطا
عکس‌فوری نشست‌هاتعداد نشست‌های زنده — باید با Online now هم‌خوانی داشته باشد
طرح‌های فعالاندازه کاتالوگ طرح‌های شما
مسیر اعمال قوانین اقدام‌های مدیر در samm.audit_log به صف می‌روند؛ tick سرویس samm-radius آن‌ها را تخلیه می‌کند و CoAها را به samm.coa_outbox می‌فرستد. مسیر کامل در CoA و تغییرات زنده آمده است.

جدول‌های فعالیت اخیر

چهار جدول زیر نمودار نمایی پیوسته از آنچه به‌تازگی رخ داده ارائه می‌دهند، هرکدام با یک پیوند View all به صفحه کامل خود:

  • صندوق خروجی CoA اخیر — اقدام، کاربر، وضعیت (done / pending / nack / failed)، تعداد تلاش، دلیل و زمان.
  • اقدام‌های اخیر مدیر — اقدام، هدف، عاملی که آن را آغاز کرده، اینکه آیا هنوز اعمال شده است، و زمان.
  • مشترکان اخیر — جدیدترین حساب‌ها به همراه وضعیت و آخرین زمان احراز هویتشان.
  • روترها — هر NAS با یک نقطه سلامت reachable / unreachable / no-data.

نشست‌های زنده

Overview → Live Sessions هر مشترکی را که روترها اکنون از طریق حسابداری RADIUS آنلاین گزارش می‌کنند فهرست می‌کند. صفحه هر ۳۰ ثانیه به‌طور خودکار تازه می‌شود؛ یک دکمه Refresh دستی در سربرگ قرار دارد.

فیلتر کردن فهرست

  • Search — با نام کاربری، framed IP یا IP مربوط به NAS مطابقت می‌کند و همان‌طور که تایپ می‌کنید ارسال می‌شود.
  • Router — فهرست را به نشست‌های روی یک NAS واحد محدود کنید.
  • Only throttled — فقط مشترکانی را نشان بده که یک محدودیت آن‌ها را با سرعت کاهش‌یافته نگه داشته است.
  • Per page — ۲۰، ۵۰، ۱۰۰ یا ۲۰۰ ردیف.

هر ردیف چه چیزی نشان می‌دهد

ستونمعنا
کاربرنام کاربری — به صفحه جزئیات مشترک پیوند می‌دهد
Framed IPآدرسی که روتر به این نشست اختصاص داده است
روترنام کوتاه NAS و آدرس IP آن
پلنطرح فعلی مشترک
سرعت مؤثرسرعتی که هم‌اکنون روی روتر اعمال شده است — سرعت طرح که با هر پنجره سرعت فعال تنظیم شده است. یک نشان throttled به این معناست که یک محدودیت مشترک را با سرعت کاهش‌یافته نگه داشته است.
دانلود / آپلودشمارنده‌های زنده بایت برای نشست
آنلاینمدت‌زمانی که نشست فعال بوده است
آغازشدهزمانی که نشست آغاز شد

قطع کردن یک نشست

دکمه Disconnect روی یک ردیف پس از یک پیام تأیید، یک CoA-Disconnect را برای همان نشست دقیق (دلیل admin_manual) به صف می‌افزاید. مشترک بلافاصله قطع می‌شود؛ اگر حساب او هنوز فعال باشد آزاد است که دوباره متصل شود. بسته را در صندوق خروجی CoA دنبال کنید.

عملیات روزانه

گزارش‌ها و تحلیل‌ها

Overview → Reports نمای تحلیلی است — روندهای مشترکان، ترافیک در طول زمان و پرمصرف‌ترین کاربران و کارت‌های روی شبکه شما.

انتخاب بازه

هر رقم روی صفحه به یک بازه تاریخ مقید است. یک پیش‌تنظیم انتخاب کنید — 7d، 14d، 30d، 90d — یا تاریخ‌های صریح start و end را تایپ کرده و روی Apply کلیک کنید. هنگام اجرای یک پرس‌وجوی بازه‌بلند مانند 90d، یک پوشش بارگذاری روی صفحه قرار می‌گیرد.

روندهای مشترک و نشست

یک نمودار خطی با سه سری در سراسر بازه انتخاب‌شده: مشترکان Active، نشست‌های Online و مشترکان Expired. از آن برای شناسایی رشد، ریزش و ساعت‌های پرترافیک شبکه خود استفاده کنید.

ترافیک روزانه

یک نمودار میله‌ای انباشته از بایت‌های آپلود و دانلود در هر روز. نگه‌داشتن نشانگر روی یک روز، ارقام آپلود و دانلود به علاوه یک مجموع ترکیبی را در پاورقی tooltip نشان می‌دهد.

فهرست‌های ۱۰ مورد برتر

چهار جدول پرترافیک‌ترین حساب‌های شما را نمایان می‌کنند، هرکدام بر اساس حجم به GB رتبه‌بندی شده‌اند:

فهرسترتبه‌بندی می‌کند
۱۰ دانلود برتر امروزبزرگ‌ترین دانلود از آخرین بازنشانی روزانه
۱۰ آپلود برتر امروزبزرگ‌ترین آپلود از آخرین بازنشانی روزانه
۱۰ دانلود برتر ماهبزرگ‌ترین دانلود در این ماه تقویمی
۱۰ آپلود برتر ماهبزرگ‌ترین آپلود در این ماه تقویمی

ترافیک بر اساس موجودیت

یک جدول صفحه‌بندی‌شده و قابل‌جستجو از ترافیک هر حساب. دو تب آنچه را فهرست می‌کند تغییر می‌دهند:

  • Users — هر مشترک به همراه نام، طرح، آپلود/دانلود امروز به MB و آپلود/دانلود این ماه به GB.
  • Cards — هر کارت hotspot به همراه گروه، وضعیت و همان تفکیک ترافیک امروز / ماه.

کادر search همان‌طور که تایپ می‌کنید جدول را فیلتر می‌کند؛ انتخابگر per-page از ۲۰ تا ۲۰۰ ردیف را می‌پذیرد. هر ردیف به صفحه جزئیات آن مشترک یا کارت پیوند می‌دهد.

خروجی گرفتن Reports یک نمای تحلیلی روی صفحه است. برای ردیف‌های خام جهت پردازش در یک صفحه‌گسترده، از Tools → Export / Import استفاده کنید تا کاربران، طرح‌ها یا NAS را به‌صورت CSV / XLSX دانلود کنید.

عملیات روزانه

حسابداری و صورتحساب

SAMM یک سیستم کامل حسابداری دوطرفه درون‌ساخته دارد — فاکتورها، هزینه‌ها، رسیدها، پرداخت‌ها، فروشندگان واسط، دارایی‌های ثابت و صورت‌های مالی کامل. هیچ محصول صورت‌حساب جداگانه‌ای برای یکپارچه‌سازی نیاز نیست، و هیچ حسابداری برای مرتب نگه‌داشتن دفاتر لازم نیست.

شما هرگز با بدهکار و بستانکار سروکار ندارید هر اقدام — ثبت یک پرداخت، افزودن یک هزینه، فروش یک گروه کارت — به‌طور خودکار یک سند حسابداری متوازن در دفتر کل ثبت می‌کند. شما با اصطلاحات ساده کار می‌کنید (فاکتورها، هزینه‌ها، رسیدها)؛ SAMM دفاتر دوطرفه را در پشت‌صحنه نگه می‌دارد و توازن آن‌ها را در تراز آزمایشی اثبات می‌کند.

صفحه حسابداری در یازده زبانه سازمان‌دهی شده است.

نگاه کلی

عکس‌فوری مالی. چهار رقم شاخص در بالا قرار دارند:

رقممعنا
موجودی نقدمانده کل در همه حساب‌های نقدی و بانکی
پولی که به شما بدهکارنددریافتنی‌ها — فاکتورهای پرداخت‌نشده مشتری و فروشنده واسط
پولی که شما بدهکاریدپرداختنی‌ها — هزینه‌های پرداخت‌نشده
سود این ماهدرآمد منهای هزینه‌ها برای ماه جاری

در زیر: یک جدول از هر حساب نقدی و بانکی به همراه مانده آن، و یک نمودار درآمد در برابر هزینه‌ها در ۱، ۲، ۳، ۶ یا ۱۲ ماه گذشته.

فاکتورها

فاکتور صورت‌حسابی است که شما صادر می‌کنید. روی New invoice کلیک کنید و پر کنید:

میدانمعنا
مشتریجستجوی type-ahead برای حسابی که صورت‌حساب برایش صادر می‌شود
دسته درآمدفروش به کدام حساب درآمد ثبت می‌شود
تاریخ صدور / سررسیدتاریخ صدور خالی = امروز؛ تاریخ سررسید خالی = تاریخ صدور
نرخ مالیات ٪ / گروه مالیاتنرخ پیش‌فرض در تنظیمات → صورت‌حساب ؛ یک گروه مالیاتی را اختصاص دهید تا چندین نرخ (VAT/GST و بیشتر) را به طور همزمان اعمال کند، که هر کدام به حساب مالیاتی خود پست می‌شوند.
اقلام سطرییک یا چند ردیف شرح / تعداد / قیمت واحد — جمع جزء، مالیات و مجموع به‌صورت زنده محاسبه می‌شوند

چقدر باید شارژ شود - کامل، تقسیم‌بندی شده یا هیچ

هرگاه SAMM قصد صدور صورتحساب برای یک مشترک را داشته باشد — اعم از فعال‌سازی، تمدید، تغییر پلن، تمدید مهلت انقضا یا انجام هر کدام از این کارها به صورت انبوه — همان انتخاب‌گر صورتحساب ظاهر می‌شود و مبلغ را قبل از تعهد نشان می‌دهد.

انتخابآنچه را شارژ می کند
فاکتور کاملفقط دوره های کل طرح - یک دوره جزئی به یک دوره کامل می رسد.
فاکتور تقسیم بندی شدهزمان دقیق، رتبه بندی دوره آخر قسمت. مجموع به نزدیک‌ترین مقدار کل گرد می‌شود، با این تفاوت که به‌عنوان یک تنظیم گردی ارسال می‌شود تا کتاب‌ها همچنان تعادل داشته باشند.
فاکتور ندارهسرویس را تغییر دهید و هیچ هزینه ای دریافت نکنید - تمدید سرقفلی، مهاجرت، اصلاح.

طول را با ضریب دوره‌ها برای کل دوره‌های پلن تنظیم کنید، یا یک تاریخ دقیق وارد کنید و اجازه دهید SAMM هزینه آن را محاسبه کند. به هر حال، پنل آیتم‌های خط، مالیات و کل را به‌روزرسانی می‌کند همان‌طور که آن‌ها را تغییر می‌دهید، و پرداخت‌شده پرداخت نقدی را برای کل مبلغ بلافاصله ثبت می‌کند.

"بدون فاکتور» یک حق است، نه یک چک باکس عدم دریافت هزینه یک تصمیم مالی است، بنابراین توسط مجوز نقش‌محور در تنظیمات → مدیران محدود می‌شود. این موضوع در مورد نمایندگان اهمیت بیشتری دارد: یک نماینده که مشترکان او به حساب پیش‌پرداخت خود صورتحساب می‌دهند، می‌تواند بدون پرداخت برای آنها، تمام روز تجدید، تغییر پلن و تمدید تاریخ انقضا را انجام دهد. نقش‌های جدید با خاموش شدن حق مواجه می‌شوند. خاموش.

Dunning & کیف پول پیش پرداخت

سامم (SAMM) فرآیند کل جمع‌آوری صورتحساب‌ها را خودکار می‌کند. یک برنامه‌ریزی وصول مطالبات، روز صورتحساب، روز سررسید و روز مسدودسازی خودکار را تنظیم می‌کند — با جریمه‌های تأخیری اختیاری — به‌طوری که اشتراک‌گذاران متخلف یادآوری شده و سپس بدون نظارت شما مسدود می‌شوند. حالت کیف پول پیش‌پرداخت شده به اشتراک‌گذاران اجازه می‌دهد تا مبلغی را که به‌صورت خودکار با تمدید صورتحساب تسویه می‌شود، نگه دارند؛ آنها خودشان از طریق پورتال مشتری با کارت یا ارزهای رمزنگاری‌شده آن را شارژ می‌کنند و هر شارژ و کسر در دفتر کل ثبت می‌شود.

فاکتورها همچنین هنگامی که طرح یک مشترک تمدید می‌شود به‌طور خودکار تولید می‌شوند (از طریق اقدام Renew Expiration کاربر یا با تمدید خودکار)، به شرطی که طرح دارای قیمت باشد. فهرست بر اساس وضعیت فیلتر می‌شود — unpaid، partial، due، paid — و بر اساس شماره فاکتور یا مشتری جستجو می‌شود. هر فاکتور را برای صفحه جزئیات و یک PDF قابل‌چاپ باز کنید؛ مشترکان می‌توانند نسخه‌های خود را از پرتال مشتری و ربات Telegram دانلود کنند.

هزینه‌ها

هزینه پولی است که برای اداره ISP خرج می‌شود. New expense یک دسته (حساب هزینه)، فروشنده‌ای که پرداخت شده، مبلغ، تاریخ تحقق و یک تاریخ سررسید اختیاری را ثبت می‌کند. هر هزینه همان چرخه عمر unpaid / partial / due / paid مانند یک فاکتور، یک صفحه جزئیات و یک voucher PDF قابل‌چاپ دارد.

رسیدها و پرداخت‌ها

این دو تب جابه‌جایی واقعی وجه نقد را ثبت می‌کنند — متمایز از فاکتور یا هزینه‌ای که سبب آن شده است.

  • Receipts — پول ورودی: وجه نقد دریافت‌شده از یک مشتری، یک فروشنده واسط یا درآمد دیگر، که به یکی از حساب‌های نقدی شما می‌رسد. فاکتور همان صورت‌حساب است؛ رسید همان پولی است که در برابر آن می‌رسد.
  • Payments — پول خروجی: وجه نقد پرداخت‌شده در برابر یک هزینه یا به یک فروشنده واسط.

ثبت یک رسید یا پرداخت، فاکتور یا هزینه مرتبط را به سمت paid پیش می‌برد و سند دفتر کل متناظر را ثبت می‌کند.

مشتریان و فروش کارت

تب Customers مانده جاری هر مشتری را فهرست می‌کند — اینکه چقدر به شما بدهکار است. Card sales درآمد پیش‌پرداختی hotspot را پوشش می‌دهد: گروه‌های کارت و فروشندگان واسط فروخته‌شده را دنبال می‌کند. یک فروشنده واسط گروه‌های کارت کامل را روی یک فاکتور از شما می‌خرد، سپس کارت‌های تکی را به کاربران نهایی می‌فروشد؛ مانده بدهی آن‌ها همان چیزی است که هنوز باید به شما بپردازند.

نمایندگان — صورت‌حساب عمده‌فروشی

یک نماینده سرویس شما را با مدل عمده‌فروشیِ پیش‌پرداخت به مشتریان نهایی می‌فروشد — مانند یک نمایندگی یا خرده‌فروش که دفتر مشترکین خود را دارد اما روی شبکه شما کار می‌کند. کاملاً اختیاری است: اگر هرگز نماینده‌ای نسازید، صورت‌حساب دقیقاً مثل همیشه کار می‌کند.

دو بدهی، به‌روشنی جدا نماینده مبلغ عمده را به شما بدهکار است (در دفاتر شما این درآمد شماست)؛ و مشتری مبلغ خرده را به نماینده بدهکار است (خارج از دفاتر شما — این مطالباتِ خودِ نماینده است). کمیسیون شما فاصله میان این دو است که به‌عنوان تخفیف تجاری ثبت می‌شود، نه هزینه.

یک نماینده را در تنظیمات → مدیران بسازید و به مدیرِ جدید نقشِ داخلیِ نماینده را بدهید. نماینده یک ورودِ مدیرِ محدوده‌دار است با:

تنظیممعنا
درصد کمیسیونسهم نماینده از قیمت خرده (مثلاً ۴۰٪ — شما ۶۰٪ را به‌عنوان درآمد عمده نگه می‌دارید). برای هر نماینده و در هر زمان قابل ویرایش است.
سقف اعتباراینکه موجودیِ پیش‌پرداختِ نماینده تا چه حد می‌تواند منفی شود پیش از آنکه تمدیدها رد شوند. برای پیش‌پرداختِ سخت‌گیرانه روی ۰ بگذارید.
موجودیِ پیش‌پرداختهر گاه نماینده به شما پرداخت کرد آن را شارژ کنید؛ هر تمدید مبلغ عمده را از آن کسر می‌کند.

هنگامی که یکی از مشترکینِ نماینده تمدید می‌شود، SAMM مبلغ عمده را از موجودیِ نماینده کسر می‌کند، درآمد شما را ثبت می‌کند و یک فاکتورِ خرده‌فروشیِ واقعی برای مشتریِ نهایی صادر می‌کند که پرداختش به نماینده است و خارج از دفترِ شما می‌ماند. پیگیریِ مطالباتِ سمتِ نماینده — با کلیدِ مستقلِ خود در تنظیمات → صورت‌حساب، به‌طورِ پیش‌فرض روشن و با مهلتِ ارفاقِ قابل ویرایش — به‌طورِ خودکار مشتریِ بدهکار را معلق می‌کند (با ارسالِ قطعِ CoA)؛ و وقتی نماینده پرداختِ مشتری را ثبت کند، مشترک بی‌درنگ دوباره فعال می‌شود.

نماینده به یک نمای محدوده‌دار وارد می‌شود: داشبوردِ خودش، صفحه‌ی کیف‌پولِ موجودیِ من، فهرستِ مشتریانِ من با فاکتورها و پرداخت‌های هر مشتری، و صورت‌حسابِ من — همه محدود به دفترِ خودش. دفاترِ کلِ شرکتِ شما، نمایندگانِ دیگر و مشتریانِ سایرِ مدیران پنهان می‌مانند.

دارایی‌ها و حساب‌های نقدی

  • Assets — دارایی‌های ثابت (روترها، خودروها، تجهیزات) را ثبت کنید. SAMM ارزش و استهلاک آن‌ها را در طول زمان دنبال می‌کند.
  • Cash — حساب‌های نقدی و بانکی خود و حساب‌های سرمایه خود را مدیریت کنید: حقوق صاحب، که در آن یک آورده پولی است که مالک وارد کسب‌وکار می‌کند و یک برداشت پولی است که خارج می‌شود. سرمایه درآمد نیست و هرگز در صورت سود و زیان ظاهر نمی‌شود.

گزارش‌ها — صورت‌های مالی

تب Reports نمای حسابدار است. پنج صورت مالی، هرکدام دارای بازه تاریخ و قابل خروجی گرفتن به PDF:

گزارشپاسخ می‌دهد
سود و زیاندرآمد در برابر هزینه‌ها و سود خالص در یک بازه تاریخ. مبنای تعهدی — درآمد هنگام صدور فاکتور و هزینه‌ها هنگام تحقق شمرده می‌شوند، نه هنگام جابه‌جایی وجه نقد.
ترازنامهدر یک تاریخ مشخص: آنچه دارید (دارایی‌ها) در برابر آنچه بدهکارید (بدهی‌ها) به علاوه حقوق صاحبان. یک نشان balanced تأیید می‌کند که دو طرف با هم مطابقت دارند.
جریان نقدیبرای هر حساب نقدی — مانده ابتدای دوره، پول ورودی، پول خروجی، مانده پایان دوره در یک بازه.
سررسیدگذاریدریافتنی‌ها و پرداختنی‌های معوق که در بازه‌های سنی دسته‌بندی شده‌اند، تا بتوانید فاکتورهای سررسیدگذشته را پیگیری کنید و از صورت‌حساب‌ها جلوتر بمانید.
پیشرفتهدفاتر خام: دفتر کل (هر سطر روی یک حساب با یک مانده جاری)، تراز آزمایشی (بررسی توازن دفاتر)، دفتر روزنامه و یک activity log.
بررسی توازن در تراز آزمایشی جمع ستون‌های بدهکار و بستانکار هر حساب باید برابر باشد — این اثبات درستی دفاتر است. اگر هرگز از توازن خارج شود، به یک خطای ثبت اشاره دارد که ارزش بررسی دارد.

صادرات به نرم افزار حسابداری

در بخش حسابداری → گزارش ها → صادرات ، کتاب ها را به صورت CSV دانلود کنید\n QuickBooks، Xero یا هر صفحه گسترده: مجله عمومی، نمودار حساب ها، فاکتورها، آزمایشی\n تعادل، سود و زیان و ترازنامه. مجله عمومی، فاکتورها و P&L از\n محدوده تاریخ؛ بقیه تا امروز همان داده ها از طریق API در دسترس هستند GET /api/v1/accounting/export/{kind} ( format=json|csv ، دامنه accounting:read ) برای خطوط لوله BI و Zapier. صادرات شامل ورودی های باطل نمی شود، بنابراین الف\n دانلود همیشه با گزارش های روی صفحه مطابقت دارد.

عملیات روزانه

واگرد & تاییدیه ها

بیشترین اشتباهات در پنل یک ارائه‌دهنده خدمات اینترنت، اشتباهات مالی هستند: تمدید اشتباه اشتراک، ثبت دو بار پرداخت، تغییر پلن در حساب اشتباه. SAMM به شما یک پنج دقیقه بازگردانی برای این اقدامات می‌دهد و — جایی که اقدامی پول را بازمی‌گرداند — یک درگاه تایید سوپر ادمین قبل از اینکه اثراتی داشته باشد.

پنجره واگرد

هر اقدام مدیریتی که شامل جابجایی پول یا وضعیت است، همان‌طور که اتفاق می‌افتد، ثبت می‌شود. در پنج دقیقه بعدی، نوار بالایی دکمه‌های بازگشت و تاریخچه اقدامات را به همراه دارد — با کلیک بر روی پیکان، آخرین اقدام را معکوس کنید، یا تاریخچه را باز کنید و به هر نقطه‌ای در پنجره برگردید. تکرار آن را بازمی‌گرداند.

چرا فقط پنج دقیقه خنثیسازی یک ماشین زمان نیست - یک شبکه ایمنی برای کلیکی است که شما انجام دادید. فراتر از چند دقیقه، دنیا حرکت کرده است: مشترک آنلاین بوده است، یک فاکتور پرداخت شده است، شخص دیگری رکورد را ویرایش کرده است. SAMM ترجیح می دهد رد کند تا بی سر و صدا تاریخچه را بازنویسی کنید، بنابراین مرحله به سادگی با بسته شدن پنجره، تاریخچه شما را ترک می کند.

یک واگرد رد می کند - با دلیل روی صفحه - وقتی معکوس کردن آن چیزی را که ایجاد نکرده است از بین می برد:

امتناعمعنای آن
آن رکورد دیگر وجود نداردمشترک، فاکتور یا پرداخت پس از اقدام شما حذف شد - چیزی برای بازگرداندن باقی نمانده است.
آن رکورد دوباره وجود داردچیزی در جای خود دوباره خلق شده است. لغو باعث بازنویسی رکورد جدیدتر می شود.
این رکورد پس از اقدام شما تغییر کرددر این مدت شخص دیگری آن را ویرایش کرده است - با واگرد کردن، ویرایش آنها بی‌صدا حذف می‌شود.
آن مرحله دیگر در تاریخ شما نیستپنجره پنج دقیقه ای بسته شد.

بازگرداندن یک معکوس است، نه حذف : عمل اصلی و لغو آن هر دو در لاگ حسابرسی باقی می‌مانند، بنابراین ثبت وقایع هرگز از دست نمی‌رود. اقداماتی که چیزی ایجاد می‌کنند، قبل از اجرا به روشنی شما را هشدار می‌دهند — لغو کردن این اقدام باعث حذف چیزی که ایجاد کرده است می‌شود.

دروازه تایید نماینده

یک نماینده بلافاصله پس از فعال‌سازی یک مشترک، از تعادل پیش‌پرداخت شده خود پرداخت می‌کند. این امر بازگرداندن را به روشی برای دریافت پول و همچنین تقلب تبدیل می‌کند: یک مشترک را فعال کنید، اجازه دهید کل ماه از آن استفاده کنند، سپس در آخرین روز حذف کنید و هزینه را پس بگیرید.

بنابراین SAMM اقدامات یک نماینده را از طریق اینکه پول جابجا می شود تقسیم می کند:

جهتنمونه هارفتار
برای نماینده هزینه دارد فعال کردن، تمدید، تغییر طرح، جمع آوری پرداخت مشتری فوری کار روزانه یک نماینده هرگز منتظر کسی نیست.
پول را پس می دهد لغو، حذف یک مشترک، حذف یک فاکتور، لغو یک مجموعه به عنوان درخواست پارک شده است. هیچ چیز تغییر نمی کند تا زمانی که یک سوپرادمین آن را تایید کند.

اقدامات محدوده‌دار به‌طور ناقص انجام نمی‌شوند. درخواست با تمام جزئیات مورد نیاز برای اجرای آن در آینده ذخیره می‌شود و تأیید آن را از طریق همان کدی که عامل اجرا می‌کرد — هرگز یک پیاده‌سازی دوم که ممکن است از اولین متفاوت باشد. رد کردن جهان را دقیقاً همان‌طور که بود باقی می‌گذارد و عامل مسئولیت را بر عهده می‌گیرد.

کار کردن در صف

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

آن را تفویض کنید بررسی مداوم عوامل نادر است که وظیفه مدیرعالی را تشکیل می‌دهد. تأیید عامل می‌تواند به هر نقشی در تنظیمات → مدیران اعطا شود، بنابراین شخصی که در واقع بررسی می‌کند، دقیقاً آن قدرت را دارد — و هیچ چیز دیگری. ایجاد و مدیریت عوامل فقط برای مدیرعالی است. هیچ‌کس نمی‌تواند درخواست خود را تصمیم بگیرد.

چیزی که نماینده می بیند

یک عامل به صفحه‌ای در حساب من → درخواست‌های در انتظار دست می‌یابد که همه چیز را که درخواست کرده‌اند، فهرست می‌کند: آنچه هنوز در انتظار است و آنچه تایید یا رد شده است—با دلیل بازبین. بدون آن، رد شدن با درخواستی که ناپدید شده است، قابل تشخیص نیست و آنها فقط دوباره درخواست خواهند کرد.

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

برای مشترکان شما

پرداخت های آنلاین

SAMM می تواند به مشترکین شما اجازه دهد تا صورتحساب های خود را به صورت آنلاین - با کارت بانکی پرداخت کنند ( Stripe یا PayPal ) یا با رمزنگاری / USDT ( Binance ). هنگامی که یک مشترک پرداخت می کند، SAMM فاکتور پرداخت شده را علامت گذاری می کند، آن را در دفاتر شما ثبت می کند، و — اگر برای عدم پرداخت - آنها را دوباره به طور خودکار وصل می کند. شما هرگز شارژ نمی شوید: هر دروازه استفاده می کند حساب خود را، بنابراین پول مستقیماً به شما می رسد.

آن را روشن کنید (هر دروازه ای)

  1. باز کردن مالی → پرداخت‌های آنلاین (فقط سوپرادمین).
  2. با کلیک بر روی یک دروازه آن را گسترش دهید — Stripe، PayPal یا Binance / USDT.
  3. فرم‌های آن را پر کنید، چک فعال‌سازی این دروازه را بزنید و بر روی ذخیره کلیک کنید. SAMM تا زمانی که فیلدهای مورد نیاز پر نشده‌اند، ذخیره‌سازی را اجازه نخواهد داد.
  4. برای تأیید کارکرد اعتبارنامه‌هایتان، بر روی اجرای تست کلیک کنید.
  5. تکمیل شد — اشتراک‌گذاران شما اکنون دکمه‌ای با عنوان پرداخت را در صورتحساب‌های بدون پرداخت خود در پورتال (و در صفحه «اشتراک منقضی شده») مشاهده می‌کنند.

شما می توانید بیش از یک دروازه را فعال کنید - مشترک انتخاب می کند که از کدام دروازه استفاده کند.

Stripe — کارت های بانکی، در سراسر جهان

  1. یک حساب رایگان در stripe.com ایجاد کنید. در حین آزمایش، حالت آزمایشی را فعال نگه دارید.
  2. به توسعه‌دهندگان → کلیدهای API بروید و کلید مخفی (که با sk_ شروع می‌شود) را کپی کنید.
  3. در SAMM، Stripe را گسترش دهید، کلید مخفی را کپی کنید، واحد پولی و حساب نقدی که دریافت می‌کند را انتخاب کنید، سپس ذخیره کنید و آزمایش را اجرا کنید.
  4. توصیه می‌شود: یک webhook اضافه کنید تا تایید پرداخت‌ها به‌طور قابل اعتمادی انجام شود. در Stripe به بخش توسعه‌دهندگان → وب‌هوک‌ها → اضافه کردن نقطه پایانی بروید، آدرس URL را به https://YOUR-SAMM/pay/webhook/stripe تنظیم کنید، رویداد checkout.session.completed را انتخاب کنید، سپس رمز امضای آن (whsec_…) را به فیلد رمز امضای وب‌هوک در SAMM کپی کنید.
پخش زنده حالت تست در هر جایی کار می کند. دریافت پول واقعی از طریق Stripe نیاز به پشتیبانی از Stripe دارد کشور و یک حساب بانکی مرتبط

PayPal — کارت و PayPal موجودی

  1. یک حساب PayPal Business ایجاد کنید، سپس در developer.paypal.com یک اپلیکیشن REST بسازید و ID مشتری و راز آن را کپی کنید.
  2. در SAMM، PayPal را گسترش دهید، شناسه مشتری و راز مشتری را کپی کنید، Sandbox (آزمایشی) یا زنده را انتخاب کنید، سپس ذخیره و آزمایش اجرا کنید.
  3. توصیه می‌شود: یک وب‌هوک در developer.paypal.com → اپلیکیشن شما → وب‌هوک‌ها، آدرس URL https://YOUR-SAMM/pay/webhook/paypal، اشتراک در CHECKOUT.ORDER.APPROVED و PAYMENT.CAPTURE.COMPLETED ایجاد کنید، سپس شناسه وب‌هوک را در SAMM کپی کنید تا اعلان‌های ورودی رمزنگاری‌شده تأیید شوند.

Binance / USDT — رمزنگاری، همه جا کار می کند، نیازی به بانک نیست

این بهترین گزینه است که کارت‌ها و PayPal در دسترس نیستند. مشترکین شما USDT ارسال می‌کنند؛ SAMM حساب Binance شما را نظارت می‌کند و صورتحساب را به‌طور خودکار پرداخت‌شده علامت‌گذاری می‌کند. شما به سه چیز نیاز دارید: یک کلید API، یک راز API، و مکانی برای دریافت — یک آدرس کیف پول و/یا یک شناسه پرداخت Binance.

مرحله 1 - یک کلید API فقط خواندنی ایجاد کنید

اول ایمنی کلید را با دسترسی خواندن فقط ایجاد کنید. هرگز امکانات برداشت یا معامله را فعال نکنید — SAMM فقط نیاز به خواندن پرداخت‌های ورودی شما دارد، هرگز وجوه را جابجا نمی‌کند.
  1. به Binance وارد شوید → حساب خود را باز کنید → مدیریت API (یا "مدیریت API" را جستجو کنید).
  2. بر روی ایجاد API کلیک کنید → تولید شده توسط سیستم را انتخاب کنید → نام آن را به عنوان مثال "SAMM" بگذارید → بررسی امنیتی را تکمیل کنید.
  3. Binance کلید API و کلید مخفی را نشان می‌دهد — را اکنون هر دو کپی کنید (راز فقط یک بار نشان داده می‌شود).
  4. بر روی ویرایش محدودیت‌ها کلیک کنید و فقط فعال‌سازی خواندن را انتخاب کنید. تجارت نقطه‌ای و برداشت‌ها را غیرفعال بگذارید. (اختیاری: کلید را به آدرس IP سرور خود محدود کنید.)
  5. کلید API و API Secret را در کارت Binance SAMM قرار دهید (اول کلید، سپس مخفی - همان ترتیبی که Binance آنها را نشان می‌دهد).

مرحله 2 - آدرس کیف پول دریافتی خود را دریافت کنید

  1. در Binance به بخش کیف پول → بازار نقدی → واریز (واریز کریپتو) بروید.
  2. سکه را انتخاب کنید: USDT
  3. شبکه را انتخاب کنید — TRC20 ارزان ترین و رایج ترین است. BEP20 و ERC20 نیز کار می کنند. از همان موردی که در SAMM انتخاب کرده اید استفاده کنید.
  4. آدرس سپرده را کپی کنید و آن را در فیلد آدرس کیف پول دریافت آن‌لاین SAMM قرار دهید. اطمینان حاصل کنید که کشوی شبکه SAMM با شبکه‌ای که انتخاب کرده‌اید مطابقت دارد.

مرحله 3 — (اختیاری) Binance شناسه پرداخت

برای مشترکینی که ترجیح می‌دهند از Binance Pay (فوری، بدون هزینه شبکه): در اپلیکیشن Binance، Pay را باز کنید و شناسه پرداخت خود را یادداشت نمایید (ایمیل یا شماره تلفن شما نیز کار می‌کند). آن را در فیلد شناسه Binance Pay در SAMM کپی کنید. مشترکین سپس می‌توانند با شناسه پرداخت و همچنین از طریق زنجیره پرداخت کنند.

در نهایت، فعال‌سازی را علامت‌گذاری کنید، ذخیره کنید و سپس آزمون را اجرا کنید (این بررسی می‌کند که کلید بتواند حساب شما را بخواند). شما زنده‌اید.

مقدار دقیق، شبکه صحیح یک مشترک باید مبلغ دقیق SAMM نشان می‌دهد (آخرین رقم‌های کوچک آن، شماره صورتحساب را مشخص می‌کند) در شبکه صحیح. مبلغ متفاوت یا شبکه نادرست، پرداخت را به تأخیر می‌اندازد یا از دست می‌دهد.

آنچه مشترک می‌بیند

  1. آنها به پورتال مشتری وارد می‌شوند → فاکتورهای من.
  2. در صورتی که فاکتور بدون پرداخت باشد، روی دکمه پرداخت (یا "پرداخت · Stripe" / "پرداخت · Binance" در صورت فعال بودن چندین گزینه) کلیک می‌کنند.
  3. کارت: به صفحه امن دروازه هدایت می‌شوند. USDT: مبلغ دقیق، آدرس شما با کد QR و/یا شناسه پرداخت شما را مشاهده می‌کنند.
  4. پس از پرداخت، فاکتور به حالت «پرداخت شده» تغییر می‌کند، در حساب‌های شما ثبت می‌شود و اگر منقضی شده بودند، به‌طور خودکار دوباره متصل می‌شوند — حتی مشترکین منقضی‌شده دکمه «پرداخت و دوباره اتصال» & را در صفحه منقضی‌شده مشاهده می‌کنند.
کتاب های شما دقیق می مانند هر پرداخت آنلاین یک بار ورود متوازن (دکتر نقدی / حساب های دریافتنی Cr) را ارسال می کند و روش ( Stripe / Binance ) را در فاکتور، سابقه پرداخت و در PDF ثبت می کند — بنابراین شما همیشه بدانید که هر پرداخت چگونه وارد شده است.

عملیات روزانه

تیکت‌های پشتیبانی

SAMM یک میز پشتیبانی درون‌ساخته دارد. مشترکان از پرتال مشتری یا ربات Telegram تیکت ثبت می‌کنند، یک مدیر می‌تواند به نمایندگی از یک مشترک تیکتی باز کند، و تیم شما همه آن‌ها را از Users → Support Tickets مدیریت می‌کند.

صف تیکت‌ها

صف هر تیکت را فهرست می‌کند — شماره، مشتری، موضوع، اولویت، وضعیت، تاریخ‌های باز شدن و آخرین به‌روزرسانی، و تعداد پیام‌ها. آن را با موارد زیر فیلتر کنید:

  • تراشه‌های وضعیت — یکی برای هر وضعیت تیکت، هرکدام دارای یک شمارش زنده، تا حجم کار در یک نگاه دیده شود.
  • اولویت — Normal، Moderate یا Critical.
  • Active / Withdrawn — یک مشتری می‌تواند تیکتی را که دیگر نیازی به آن ندارد پس بگیرد؛ تیکت‌های پس‌گرفته‌شده کم‌رنگ و به‌طور پیش‌فرض پنهان می‌شوند.
  • Search — بر اساس شماره تیکت، موضوع یا مشتری.

نشان نوار کناری تیکت‌های باز را می‌شمارد تا چیزی از قلم نیفتد.

باز کردن یک تیکت

New ticket به یک مدیر اجازه می‌دهد برای یک مشتری انتخاب‌شده تیکتی ثبت کند — مشتری را انتخاب کنید، سپس یک موضوع، اولویت و شرح تعیین کنید. مشترکان نیز تیکت خود را از پرتال مشتری یا ربات Telegram باز می‌کنند.

رسیدگی به یک تیکت

یک تیکت را باز کنید تا کل رشته گفتگو را بخوانید. از آنجا می‌توانید:

  • پاسخ به مشتری — یک پیام عمومی که مشترک آن را در پرتال خود و از طریق ربات Telegram می‌بیند.
  • افزودن یک یادداشت داخلی — یک پیام فقط برای کارکنان، پنهان از مشتری، برای یادداشت‌های تحویل میان اعضای تیم شما.
  • وضعیت و اولویت تیکت را تغییر دهید.

روی هر ردیف کلیک راست کنید — یا از دکمه ⋮ آن استفاده کنید — برای همان اقدام‌های وضعیت، اولویت، پاسخ و یادداشت داخلی بدون ترک صف.

عملیات روزانه

مرکز اعلان‌ها

SAMM مشترکین را بطور خودکار در جریان قرار می دهد — از طریق ایمیل ، Telegram , SMS و WhatsApp — و به شما امکان می دهد پیام ها را پخش کنید. را سرویس samm-notification همه چیز را از طریق یک صف محدود تحویل می دهد. صفحه سیستم → مرکز اطلاع رسانی دارای شش برگه است.

نگاه کلی

تب فرود — شمارش‌های زنده (در صف، در حال ارسال، ارسال‌شده امروز، ناموفق، رد شده، انصراف‌داده)، وضعیت هر کانال تحویل و یک فید از جدیدترین اعلان‌ها.

کانال‌ها

نحوه خروج پیام‌ها از SAMM را پیکربندی کنید. ایمیل از اعلان خود استفاده می کند\n حساب، جدا از SMTP بازیابی رمز عبور نگهداری می شود تنظیمات . Telegram از یک رمز ربات استفاده می کند، پیامک از طریق یک دروازه HTTP عمومی یا Twilio می رود، و WhatsApp از API رسمی Meta WhatsApp Cloud (ایجاد شده در Meta برای\n توسعه دهندگان)، با یک پل غیر رسمی مرتبط با QR اختیاری با مسئولیت خودتان - پل\n با یک کلیک روی یک سرور بدون سیستم عامل نصب می شود و به عنوان یک ظرف آماده برای اجرا در Docker ارسال می شود.\n تمام اسرار کانال ذخیره می شود\n رمزگذاری شده با فرنت هر مشترک، از پورتال مشتری، کانال های خود را انتخاب می کند\n می خواهد و می تواند به طور کامل انصراف دهد.

پیام‌ها

قالب‌های پیام، یک مجموعه برای هر رویداد. متن هر اعلان — یادآوری‌های تمدید، رسیدها و بقیه — را ویرایش کنید تا هر پیام با لحن و زبان خودتان ارسال شود.

قواعد و تایمرها

این تب تعیین می‌کند که اعلان‌های خودکار چه زمانی و چگونه فعال شوند. برای هر رویداد شما کنترل می‌کنید:

  • اینکه آیا قاعده روشن است.
  • Ignore opt-out — وقتی تنظیم شود، پیام به هر مشترکی می‌رسد حتی اگر انصراف داده باشد. آن را برای پیام‌های تراکنشی مهم نگه دارید.
  • زمان‌بندی — برای مثال، چند روز پیش از انقضا یک یادآوری تمدید ارسال می‌شود.
  • تحویل و throttling — worker صف را در هر tick یک دسته تخلیه می‌کند؛ اندازه دسته و بازه tick با هم سرعت خروج پیام‌ها را تنظیم می‌کنند، تا یک ارسال همگانی بزرگ هرگز سرور ایمیل شما را غرق نکند.

رویدادهایی که SAMM می‌تواند به‌تنهایی صادر کند شامل یادآوری تمدید (پیش از انقضای یک اشتراک)، اعلان انقضا (هنگام سپری شدن)، هشدار سهمیه (هنگامی که سقف داده رو به اتمام است)، رسید پرداخت (هنگام ثبت یک پرداخت) و تمدید طرح می‌شوند.

ارسال همگانی

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

صندوق خروجی

هر پیامی که SAMM به صف افزوده یا ارسال کرده، به همراه وضعیت تحویل هر پیام، تا بتوانید تأیید کنید که یک اعلان به مشترک رسیده یا ببینید چرا نرسیده است.

سیستم

WireGuard VPN

SAMM می‌تواند یک سرور WireGuard VPN روی میزبان SAMM اجرا کند — معمولاً برای دسترسی remote-admin به دستگاه SAMM و دسترسی مدیریتی به MikroTikهای پشت آن. این به‌طور کامل از System → VPN مدیریت می‌شود؛ نیازی به shell نیست.

تب Server

  1. روی Generate Keys کلیک کنید تا جفت‌کلید سرور ایجاد شود. Server Public Key پس از تولید ظاهر می‌شود — کلاینت‌ها به آن نیاز دارند.
  2. Listen Port (UDP، پیش‌فرض 51820)، Server Tunnel Address (همان CIDR روی واسط wg0، پیش‌فرض 10.254.254.1/24) و Client IP Range را تنظیم کنید — آدرس‌های شروع و پایانی که SAMM به‌طور خودکار به peerهای جدید اختصاص می‌دهد.
  3. Enable WireGuard VPN را روشن کنید و روی Save کلیک کنید — SAMM واسط wg0 را بالا می‌آورد. این کلید تا زمانی که کلیدهای سرور وجود نداشته باشند قفل است.

تب Clients

روی Add Client کلیک کنید، به peer یک نام بدهید، و SAMM آدرس بعدی از بازه کلاینت را به آن اختصاص می‌دهد. برای هر peer می‌توانید فایل پیکربندی آن را دانلود کنید، یک QR code را با اپ موبایل WireGuard اسکن کنید، یا فرمان‌های آماده MikroTik RouterOS را کپی کنید تا یک روتر را به VPN بیاورید. peerها می‌توانند روشن/خاموش شوند یا حذف شوند؛ رنگ‌های وضعیت نشان می‌دهند که هرکدام متصل، کهنه یا هرگز دیده‌نشده است.

تولید مجدد کلیدها مخرب است Regenerate Keys جفت‌کلید سرور را تغییر می‌دهد. هر پیکربندی کلاینتِ از پیش مستقرشده کلید عمومی قدیمی سرور را در خود دارد و تا زمانی که پیکربندی به‌روزشده را دوباره توزیع نکنید اتصال را متوقف می‌کند. رابط کاربری این کار را پشت یک دیالوگ type-to-confirm محدود می‌کند.

سیستم

تونل Cloudflare

یک تونل Cloudflare Zero Trust، SAMM را به اینترنت عمومی منتشر می‌کند بدون باز کردن هیچ پورت فایروال — هنگامی که میزبان SAMM پشت NAT قرار دارد مفید است. این از System → Cloudflare Tunnel مدیریت می‌شود.

وضعیت سرویس

صفحه با یک کارت وضعیت باز می‌شود که حالت connector را گزارش می‌دهد:

حالتمعنا
در حال اجراتونل فعال است و ترافیک را forward می‌کند
متوقف‌شدهپیکربندی‌شده اما اکنون در حال اجرا نیست
پیکربندی‌نشدهباینری موجود است — برای راه‌اندازی آن یک توکن جای‌گذاری کنید
نصب‌نشدهاجرای مجدد install.sh برای نصب فایل اجرایی cloudflared

همچنین نسخه cloudflared و اینکه آیا connector روی راه‌اندازی خودکار هنگام بوت تنظیم شده است را نشان می‌دهد.

پیکربندی تونل

  1. در داشبورد Cloudflare Zero Trust (one.dash.cloudflare.com)، Networks → Tunnels را باز کنید و Create a tunnel را بزنید.
  2. connector Cloudflared را انتخاب کنید، به تونل نام بدهید و ذخیره کنید. در گام نصب، فقط توکن را کپی کنید — همان رشته بلند پس از --token.
  3. آن را در SAMM جای‌گذاری کنید و روی Configure Tunnel کلیک کنید. SAMM توکن را به cloudflared می‌دهد و connector را راه می‌اندازد.
  4. دوباره در Cloudflare، یک Public hostname اضافه کنید: آدرس انتخابی شما، نوع HTTP، URL برابر localhost:80 (پروکسی‌شده توسط nginx — توصیه‌شده) یا localhost:8000 (مستقیم به API).

ظرف چند ثانیه نشان وضعیت سبز می‌شود و SAMM روی public hostname قابل‌دسترس می‌شود. پس از پیکربندی، اقدام‌های یک‌کلیکی به شما اجازه می‌دهند connector را Start، Stop یا Restart کنید، برای چرخاندن توکن Replace Token بزنید، یا Remove tunnel کنید (یک اقدام type-REMOVE-to-confirm).

بدون پورت باز، توکن هرگز در پایگاه داده نیست تونل یک اتصال خروجی به لبه Cloudflare برقرار می‌کند — هیچ پورت فایروالی هرگز روی سرور باز نمی‌شود. توکن به cloudflared forward می‌شود و زیر /etc/cloudflared/ ذخیره می‌گردد؛ SAMM هرگز آن را در پایگاه داده نگه نمی‌دارد. TLS در لبه Cloudflare خاتمه می‌یابد، بنابراین خود SAMM روی loopback با HTTP ساده اجرا می‌شود.

سیستم

تنظیمات

System → Settings پارامترهای زنده و قابل بارگذاری مجدد به‌صورت داغ را نگه می‌دارد. daemonها آن‌ها را در tick بعدی خود دوباره می‌خوانند — هیچ راه‌اندازی مجدد سرویسی لازم نیست. تنظیمات در تب‌ها سازمان‌دهی شده‌اند.

پارامترهای عمومی

تنظیمپیش‌فرضکنترل می‌کند
samm-radius interval30 sهر چند وقت یک‌بار رویدادهای زمان‌محور ارزیابی و CoAها ارسال می‌شوند
samm-worker interval5 sریتم ping روتر + همگام‌سازی MikroTik API
بازه میان‌دوره‌ای حسابداری60 sبازه حسابداری که به روترها ارسال می‌شود
زمان بازنشانی روزانه00:00زمانی که شمارنده‌های مصرف روزانه بازنشانی می‌شوند
منطقه زمانی سرورUTCمنطقه زمانی برای پنجره‌های سرعت و بازنشانی روزانه
پورت پیش‌فرض CoA3799پورت پیش‌فرض UDP برای بسته‌های CoA
حداکثر تلاش دوباره CoA3تعداد تلاش دوباره پیش از بازگشت به Disconnect-Request

برای اعمال سخت‌گیرانه‌تر بازه samm-radius را کاهش دهید؛ برای کاستن از بار آن را افزایش دهید.

هویت ISP، لوگو، واحد پول و صورتحساب (زبانه ISP)

هر آنچه اپراتورها می‌پرسند «این را کجا تغییر دهم؟» در System → Settings → ISP است. فیلدی را ویرایش و روی ذخیره کلیک کنید — تغییر بلافاصله اعمال می‌شود (بدون راه‌اندازی مجدد) و روی فاکتورها، رسیدها، PDFها و پورتال مشتری نمایان می‌شود.

آنچه تغییر می‌دهیدکجا نمایش داده می‌شود
نام ISPفاکتورها، رسیدها، کارت‌های hotspot، سربرگ پورتال
تلفن و ایمیل پشتیبانیفاکتورها و کارت‌های hotspot چاپی
شماره مالیاتی / ثبتروی فاکتورها چاپ می‌شود
لوگوی ISP (بارگذاری PNG/JPEG)به‌طور خودکار تغییر اندازه می‌یابد؛ روی PDF فاکتور/رسید و کارت‌های hotspot چاپی ظاهر می‌شود. برای حذف از ✕ روی پیش‌نمایش استفاده کنید.
کد واحد پول (مثلا USD)واحد پول ISO روی فاکتورها و دفتر کل
نماد واحد پول (مثلا $)هر مبلغ نمایش‌داده‌شده در رابط مدیریت، پورتال مشتری و PDFها
مالیات روشن/خاموش، برچسب و نرخیک خط VAT/GST به فاکتورها می‌افزاید (مثلا برچسب VAT، نرخ ۱۱ = ۱۱٪)
تغییر نماد پول برای تغییر واحد پول نمایش‌داده‌شده در همه‌جا (مثلا از $ به £ یا نماد محلی)، نماد واحد پول را در زبانه ISP تنظیم و ذخیره کنید — پنل مدیریت، پورتال مشتری و همه PDFها را یکجا به‌روزرسانی می‌کند. در کنار آن کد واحد پول (USD، EUR، …) را برای کد ISO چاپ‌شده روی فاکتورها تنظیم کنید.

حریم خصوصی - آمار نصب ناشناس

هنگام بررسی به‌روزرسانی‌ها توسط SAMM، می‌تواند شناسه نصب تصادفی، نسخه SAMM، سطح پلن شما و یک کشور کلی (از آدرس IP شما، از طریق Cloudflare) را به SecuryTik ارسال کند—هیچ داده‌ای از مشترکین یا مشتریان. این فقط به ما کمک می‌کند تعداد نصب‌های فعال را شمارش کرده و پشتیبانی و زبان‌ها را اولویت‌بندی کنیم. هر زمان که بخواهید می‌توانید آن را در سیستم → تنظیمات → حریم خصوصی غیرفعال کنید؛ مشاهده سیاست حریم خصوصی.

تب Email

سرور SMTP مورد استفاده برای کدهای بازیابی رمز عبور ارسال‌شده به مدیران و مشتریان را پیکربندی کنید (host، پورت، SSL/STARTTLS، نام کاربری، آدرس فرستنده، رمز عبور). روی Test connection کلیک کنید تا اعتبارنامه‌ها بدون ارسال ایمیل تأیید شوند.

دو حساب ایمیل تب Email در اینجا فقط برای OTP / بازیابی رمز عبور است. حسابی که برای اعلان‌های مشتری استفاده می‌شود جداگانه در Notification Center پیکربندی می‌شود.

سیستم

مدیران، شعبه‌ها و نقش‌ها

System → Admins جایی است که تعیین می‌کنید چه کسی وارد پورتال مدیریت شود، هر فرد چه کاری می‌تواند بکند و کدام کاربران را ببیند. از نسخه 5.1.0 مدیران یک درخت از شعبه‌ها و کارکنان تشکیل می‌دهند. صفحه دو زبانه دارد: Admins و Roles.

شعبه‌ها و کارکنان

گرهچیست
شعبهیک مکان — یک دفتر، یک شهر. مالک کاربرانی است که در آن ایجاد می‌شوند. هیچ‌کس با شعبه وارد نمی‌شود: رمز و نقش ندارد.
مدیر (کارمند)شخصی که وارد می‌شود. زیر یک شعبه، کارمند آن است: هر کاربر و کارتی که ایجاد کند متعلق به آن شعبه است.
مدیر ارشدهمیشه در بالای درخت، هرگز زیر شعبه. همه چیز را می‌بیند و می‌تواند انجام دهد.

با + Branch و + Admin درخت را بسازید و برای انتقال، گره را روی گره دیگر بکشید. فقط شعبه می‌تواند مدیر زیرمجموعه داشته باشد. نماینده مدیری است که می‌فروشد و مالک فروخته‌هایش است؛ کارکنان زیر نماینده از کیف پول و قوانین تأیید او استفاده می‌کنند.

چه کسی چه می‌بیند

دید از درخت پیروی می‌کند. یک شعبه — و همه کسانی که در آن کار می‌کنند — کاربران خود و کاربران شعبه‌های زیرمجموعه را می‌بینند، اما هرگز شعبه هم‌سطح یا بالاتر را نمی‌بینند. دفتر مرکزی همه چیز را می‌بیند. مجوزهای یک مدیر هرگز از آنچه مدیران بالاتر اجازه می‌دهند بیشتر نیست و فقط آنچه دارد را می‌تواند واگذار کند.

سقف‌ها برای هر شعبه

محدودیتچه چیزی شمرده می‌شود
حداکثر کاربرانتعداد کاربرانی که شعبه و شعبه‌های زیرمجموعه می‌توانند داشته باشند. حذف کاربر یک جا آزاد می‌کند.
حداکثر کارت‌هاتعداد کارت‌های هات‌اسپاتی که در شعبه قابل چاپ است.

ایجاد کاربر یا کارت جدید وقتی رد می‌شود که هر سقفی در سطح مدیر ایجادکننده یا بالاتر پر شده باشد، و پیام می‌گوید کدام سقف و چقدر باقی مانده. برای بدون سقف خالی بگذارید. هر دو را بعداً می‌توان در پنجره ویرایش تغییر داد.

نقش‌ها و مجوزها

نقش دسترسی را برای هر بخش می‌دهد. SAMM چهار نقش آماده دارد که می‌توانید ویرایش یا حذف کنید — Manager (عملیات روزانه)، Reseller، Accountant (امور مالی) و Monitor (فقط خواندنی) — و دو نقش داخلی قفل‌شده: superadmin (دسترسی کامل) و Agent که مدیر را به نماینده عمده‌فروش با موجودی پیش‌پرداخت و تقسیم کمیسیون تبدیل می‌کند (ببینید حسابداری و صورتحساب ← نمایندگان).

برای هر بخش SAMM (کاربران، بسته‌ها، روترها، حسابداری، تنظیمات و غیره) نقش روی یکی از سه سطح تنظیم می‌شود:

سطحمعنا
مجاز نیستاین ناحیه به‌طور کامل از نوار کناری پنهان است
مشاهدهدسترسی فقط‌خواندنی
ویرایشدسترسی کامل — ایجاد، تغییر، حذف

Admins & roles، Tools، API و Payments صرف‌نظر از نقش در اختیار دفتر مرکزی می‌مانند.

دو حق در کنار سطوح منطقه قرار دارند، زیرا هر کدام یک تصمیم پولی است تا یک صفحه:

درستهآنچه اجازه می دهد
اجازه دادن به «بدون فاکتور» تغییر سرویس کاربر — تمدید، تغییر بسته، افزایش مدت — بدون دریافت هزینه. به طور پیش‌فرض در هر نقش جدید خاموش است.
اجازه تأیید نمایندگان بررسی و تصمیم‌گیری در مورد درخواست‌های عوامل برای بازگرداندن شارژ. ایجاد و مدیریت عوامل فقط برای سوپرادمین است. به لغو & تاییدیه‌ها مراجعه کنید.

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

داشبورد هرگز برداشته نمی شود هر نقش دیگری که رد شود، هر مدیر داشبورد و نمایه خود را حفظ می کند - ورود به سیستمی که روی یک خطای مجوز قرار می‌گیرد، ورود خراب است، نه امن.
License همیشه قابل‌دسترس است صفحه System → License یک بلوک مجوز عادی است — اما هرگاه دستگاه در حالت قفل باشد (مهلت، نرم یا سخت) SAMM آن را برای هر مدیر واردشده صرف‌نظر از نقش در دسترس نگه می‌دارد تا مسیر بازیابی هرگز بسته نشود.

سیستم

ابزارها

بخش Tools ابزارهای انبوه و نگهداری را گرد هم می‌آورد. روی کل داده‌ها اثر می‌گذارد و بنابراین فقط برای ابرمدیرها در دسترس است.

پشتیبان‌گیری و بازیابی

پیش از هر تغییر عمده یک عکس‌فوری کامل از پایگاه داده بگیرید. یک پشتیبان یک آرشیو pg_dump فشرده‌شده با gzip است که روی سرور ذخیره می‌شود، هرکدام با یک سربرگ SAMM.

  • Create backup — به‌صورت اختیاری یک یادداشت اضافه کنید؛ Skip usage & history را برای یک dump کوچک‌تر و سریع‌تر که جدول‌های حجیم لاگ را حذف می‌کند تیک بزنید.
  • یک پشتیبان را روی PC خود Download کنید، یا یک پشتیبان قبلی SAMM را دوباره روی سرور upload کنید.
  • Restore پایگاه داده فعلی را بازنویسی می‌کند — پشت یک دیالوگ type-RESTORE-to-confirm محدود شده است.

در دسترس بودن بالا

برای استقرار بدون نقطه ضعف واحد، SAMM را بر روی دو گره اجرا کنید: تکرار استریم PostgreSQL (یک گره اصلی با تاخیر چند ثانیه‌ای گره پشتیبان داغ) به همراه یک گره پشتیبان AAA، و در صورت بروز خطا ارتقا و تغییر مسیر دهید. کتابچه راهنمای کامل اپراتور — تنظیم تکرار، جایگزینی خودکار برنامه‌ریزی‌شده و غیربرنامه‌ریزی‌شده، بازگشت به حالت عادی، حالت تکرار همگام اختیاری، و چک‌لیست تأیید پس از جایگزینی — به عنوان docs/HA.md با منبع ارائه می‌شود. توجه داشته باشید که تکرار یک پشتیبان نیست (حذف نادرست بلافاصله تکرار می‌شود)، بنابراین پشتیبان‌گیری‌های برنامه‌ریزی‌شده را نیز حفظ کنید.

پاک‌کننده تاریخچه

ردیف‌های قدیمی لاگ و تاریخچه را برای بازپس‌گیری فضای پایگاه داده به‌طور دائمی حذف کنید. یک پیش‌تنظیم نگهداری را انتخاب کرده و تأیید کنید. پاک‌کننده نشست‌های بسته‌شده RADIUS، رکوردهای post-auth، تجمیع‌های مصرف روزانه، تاریخچه روتر/واسط، لاگ‌های محدودیت، ورودی‌های audit اعمال‌شده و ردیف‌های CoA پایان‌یافته را هرس می‌کند. هرگز نشست‌های زنده، فرمان‌های در صف، CoAهای در انتظار یا مجموع‌های مصرف مادام‌العمر غیرقابل‌بازنشانی را دست نمی‌زند.

ابتدا یک پشتیبان بگیرید پاک‌کننده تاریخچه به‌طور دائمی حذف می‌کند. اگر ممکن است بعداً به داده‌ها نیاز داشته باشید پیش از پاک‌سازی یک پشتیبان بگیرید.

خروجی / ورودی

خروجی و ورودی انبوه برای Users، Plans و NAS به‌صورت .csv یا .xlsx. یک قالب (ستون‌های درست به علاوه یک ردیف نمونه) یا یک عکس‌فوری از داده‌های فعلی را دانلود کنید، آن را پر کنید و دوباره بارگذاری کنید. هر ردیف اعتبارسنجی و روی یک صفحه پیش‌نمایش نمایش داده می‌شود — موارد تکراری و ردیف‌های نامعتبر نمایان می‌شوند، و شما انتخاب می‌کنید که موارد تکراری را رد کنید یا در جا به‌روزرسانی کنید — پیش از آنکه چیزی نوشته شود.

تغییرات انبوه

یک تغییر را اعمال کنید - مالک، تاریخ انقضا، وضعیت، تمدید خودکار یا کل طرح دوره - برای هر مشترکی که با یک فیلتر مطابقت دارد، در یک اجرا. تغییر را انتخاب کنید، آن را بسازید فیلتر (وضعیت / طرح / مالک / جستجو)، فهرست تطبیق را بررسی کرده و تأیید کنید.

دوره‌های پلن کامل را اضافه کنید گزینه‌ی تجدید انبوه است: هر مشترک آن‌قدر دوره از پلن خود به دست می‌آورد، بنابراین یک پلن 7 روزه 7 روز در هر دوره به دست می‌آورد و یک پلن ماهانه یک ماه تقویمی را — در یک زمان مشابه، بدون تقسیم‌بندی لیست بر اساس پلن ابتدا. مشترکانی که پلن آن‌ها دوره‌ی انقضا ندارد، به جای حدس زدن، نادیده گرفته می‌شوند. روزها را اضافه کنید همچنان در دسترس است جایی که می‌خواهید تعداد مسطح روزها را بدون ریست کردن شمارنده داشته باشید.

افزایش سرعت

سرعت تمام پلن‌ها را به‌طور همزمان افزایش یا کاهش دهید به‌صورت درصدی — یک آخر هفته تعطیلات با دو برابر سرعت، یا محدود کردن اضطراری در حین کاهش پهنای باند انتقال داده. این تغییر بلافاصله اعمال می‌شود، برای ورودهای جدید و جلسات آنلاین موجود.

کنترل کنیدچه کاری انجام می‌دهد
درصدمثبت ضرب می شود، منفی تقسیم می شود: +100٪ → سرعت دو برابر، -100٪ → نیم سرعت، -500٪ → یک ششم آن. سرعت هرگز به صفر نمی رسد.
برنامه هایی برای تقویتهر تعداد طرح را علامت بزنید؛ هر ردیف نرخ طرح، افزایش نیرو و سرعت موثر را در حال حاضر نشان می دهد.
پس از آن به طور خودکار برگردانیدساعت ها تا زمانی که افزایش خود به خود از بین می رود. 0 آن را نگه می دارد تا زمانی که آن را با دست بازنشانی کنید.
یک افزایش از پنجره سرعت بالاتر است افزایش از نرخ طرح اندازه گیری می شود و جایگزین هر کدام می شود پنجره سرعت در حالی که فعال است - طرحی در یک پنجره شبانه 20 میلیونی اینطور نیست به 40 میلیون تبدیل می شود، هر چه افزایش نرخ برنامه آن باشد، به آن تبدیل می شود. ویندوز همین لحظه از سر گرفته می شود تقویت از بین می رود.

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

حذف انبوه

بسیاری از مشترکان یا کارت‌های hotspot را که با فیلتر انتخاب شده‌اند به‌یک‌باره به‌طور دائمی حذف کنید. حذف یک مشترک، تاریخچه مصرف، نشست‌ها، حسابداری RADIUS و فاکتورهای او را نیز حذف می‌کند و هر نشست زنده را قطع می‌کند. پشت یک دیالوگ type-DELETE-to-confirm محدود شده است.

سیستم

زبان‌ها و پوسته‌ها

زبان‌ها

پورتال‌های مدیریتی و مشتری به‌طور کامل قابل ترجمه هستند. هشت زبان از ابتدا در آن گنجانده شده‌اند: انگلیسی، عربی (از راست به چپ)، روسی، فارسی (از راست به چپ)، ترکیه، فرانسوی، اسپانیایی و آلمانی. هر کاربر می‌تواند زبان مورد نظر خود را از نوار بالای صفحه یا پروفایل خود انتخاب کند؛ انتخاب برای هر حساب ذخیره می‌شود.

ویرایشگر ترجمه

یک superadmin می‌تواند ترجمه‌ها را به‌صورت زنده از System → Translations ویرایش کند — بدون راه‌اندازی مجدد، بدون ویرایش فایل. ویرایشگر همچنین زبان‌های کاملاً جدید ایجاد می‌کند و کارپوشه‌های ترجمه را به‌صورت .xlsx وارد/صادر می‌کند، تا بتوانید SAMM را به هر زبانی که سرویس می‌دهید بومی‌سازی کنید.

پوسته‌ها

SAMM با ۱۶ پوسته بصری، روشن و تیره، ارائه می‌شود. هر کاربر یک پوسته را از نوار بالا انتخاب می‌کند؛ پیش‌نمایش بی‌درنگ به‌روز می‌شود و برای هر حساب ذخیره می‌گردد. اصطلاحات IT هرگز ترجمه نمی‌شوند، بنابراین صفحه‌های فنی در هر زبانی دقیق باقی می‌مانند.

سیستم

گزارش ممیزی و فعالیت

System → Audit Log به یک پرسش پاسخ می‌دهد: چه اتفاقی افتاد و چه کسی انجامش داد. یک فهرست شامل هر تغییری است که مدیر داد، آنچه سامانه خودکار انجام داد (مانند انقضا) و تغییراتی که کاربران در حساب خود از طریق پورتال یا Telegram دادند — تغییر بسته، تمدید، پرداخت، ویرایش پروفایل و رمز.

ستونچه چیزی را نشان می‌دهد
هنگامزمان، به منطقه زمانی شما
چه کسیمدیر، «ali، در پورتال»، «ali، در Telegram»، یک توکن API یا System
چه اتفاقی افتادیک جمله، فقط با فیلدهایی که تغییر کردند، قدیم ← جدید — برای مثال «کاربر را ویرایش کرد: انقضا: 01 Oct ← 15 Oct»
هدفروی چه چیزی انجام شد — کاربر · ali، بسته · Gold 20M، روتر · Hamra، مدیر · rami

بر اساس چه کسی و دوره فیلتر کنید یا نامی را در جستجو بنویسید. ورودها و خروجی‌ها پنهان هستند مگر اینکه Show logins & exports را علامت بزنید. Via، Action، Category، Severity و ID در انتخابگر ستون هستند. ردیف‌ها را برای Export یا Print انتخاب کنید — فایل همان ستون‌های صفحه را دارد. دکمه ⓘ هر ردیف جدول کامل قبل و بعد را نشان می‌دهد.

خط زمانی کاربر

کاربری را باز کرده و Timeline را انتخاب کنید تا هر آنچه برای آن حساب رخ داده را ببینید — ایجاد، تمدید، تغییر بسته، تعلیق، رسیدن به سقف‌ها — همراه با صورتحساب‌ها، پرداخت‌ها، کیف پول و هزینه‌های نماینده در ستون مبلغ. بر اساس نوع، دوره یا فقط مالی فیلتر کنید و به CSV یا Excel صادر کنید. ردیف‌های خط زمانی هرگز حذف نمی‌شوند و پس از حذف کاربر باقی می‌مانند.

Accept Log و Access Log

Overview → Accept Log هر تلاش ورودی که روترها فرستادند و پاسخ RADIUS را، جدیدترین اول، با دلیل هر رد نشان می‌دهد. وقتی کاربری نمی‌تواند وصل شود، این صفحه را باز کنید. ردی که تکرار می‌شود یک سطر با شمارنده است. Overview → Access Log نشست‌هایی را که واقعاً شروع شدند، از حسابداری RADIUS، نشان می‌دهد.

همچنین یک صف فرمان صفرکردن‌ها، تغییر بسته‌ها و تمدیدهایی که از CLI یا API در صف قرار می‌گیرند در همان جدول نوشته می‌شوند و سرویس samm-radius در دور بعدی آن‌ها را اعمال می‌کند و سپس نشست فعال را با CoA به‌روز می‌کند. نشان نوار کناری موارد در انتظار را می‌شمارد.

صدور مجوز

صدور مجوز و سطوح

هر نصب SAMM به‌صورت هر دستگاه لایسنس می‌شود — طرح روی همان نصب قرار دارد، بنابراین می‌توانید چند سرور SAMM اجرا کنید، هرکدام روی تیر خودش. تیر سه سقف عددی را تعیین می‌کند.

تیرکاربران AAAکارت‌های HotspotNAS / روترها
ثبت‌نشده252001
مجانی100502
Lite5001,5004
Plus1,0003,0006
Pro2,0006,00012
Mega5,00015,00024
Max10,00030,000بی‌پایان
Unlimitedبی‌پایانبی‌پایانبی‌پایان

یک نصب تازه به‌صورت ثبت‌نشده در کمترین حد کف اجرا می‌شود. هر ویژگی در هر تیر در دسترس است — تیر فقط سقف‌ها را تعیین می‌کند. ایجاد یک مشترک، کارت یا NAS فراتر از سقف تا زمانی که ارتقا دهید مسدود می‌شود؛ هیچ داده‌ای هرگز از دست نمی‌رود.

فعال‌سازی و ارتقا

  1. System → License را باز کنید.
  2. با ورود با حساب SecuryTik خود فعال‌سازی کنید — یا از Link this device استفاده کنید، که یک کد نشان می‌دهد که آن را روی samm.securytik.com بدون تایپ رمز عبور خود روی سرور تأیید می‌کنید. دستگاه روی Free فعال می‌شود.
  3. برای سقف بالاتر، از همین صفحه یک طرح انتخاب کنید یا از داشبورد خود مشترک شوید. درخواستی که از این صفحه ثبت شود را یک مدیر SecuryTik بررسی و تأیید می‌کند.

صفحه License همچنین لایسنس را در صورت درخواست دوباره بررسی می‌کند و مصرف فعلی شما را در برابر هر سقف نشان می‌دهد. Unlink device نصب را بدون حذف هیچ داده‌ای به تیر ثبت‌نشده بازمی‌گرداند.

اگر یک لایسنس پولی منقضی شود

SAMM هرگز داده‌ها را حذف نمی‌کند. یک لایسنس منقضی‌شده به‌آرامی پایین می‌آید:

مرحلهچه اتفاقی می‌افتد
هشداریک بنر یادآوری؛ همه چیز به کار خود ادامه می‌دهد
مهلتیک بازه کوتاه برای فعال‌سازی مجدد؛ مشترکان آنلاین می‌مانند
قفل نرمسرویس‌های پس‌زمینه متوقف می‌شوند؛ RADIUS حدود ۷ روز به احراز هویت ادامه می‌دهد
قفل سختسرویس‌ها به‌جز صفحه فعال‌سازی مجدد متوقف می‌شوند

فعال‌سازی مجدد در هر مرحله، همه سرویس‌ها را به‌طور خودکار راه‌اندازی می‌کند — تمام داده‌ها و تاریخچه مشترکان دست‌نخورده باقی می‌مانند.

به‌روزرسانی‌های خودکار

به‌روزرسانی خودکار مستقل از صدور مجوز است — همه سطوح به‌روزرسانی می‌شوند و یک مجوز منقضی‌شده هرگز آن را مسدود نمی‌کند. SAMM هر روز نسخه امضاشده جدید را بررسی می‌کند. از System → License می‌توانید بین notify (پیش‌فرض — یک بنر با دکمه Apply now) و auto (اعمال بدون نظارت) جابه‌جا شوید. هر به‌روزرسانی تأیید، پشتیبان‌گیری و در همان محل اعمال می‌شود. همچنین می‌توانید در هر زمان نصب‌کننده را دوباره اجرا کنید — به‌صورت idempotent ارتقا می‌دهد.

برای مشترکان شما

پرتال مشتری و ربات

SAMM به هر مشترک دو رابط خودخدمت می‌دهد — یک پورتال وب و یک ربات Telegram — تا بتوانند بدون تماس با شما مصرف را بررسی کنند و پرداخت انجام دهند.

پورتال مشتری

مشترکان با نام کاربری و رمز عبور SAMM خود در ریشه سایت SAMM (/) وارد می‌شوند. پورتال شامل موارد زیر است:

صفحهآنچه مشترک می‌بیند
نگاه کلیوضعیت حساب، پلن، انقضا، مصرف امروز و این ماه، و هر فاکتور پرداخت‌نشده
مصرف و نشست‌هامجموع دانلود/آپلود، بودجه زمان اتصال، و تاریخچه کامل نشست‌ها
پلن‌های منپلن فعلی به‌همراه کاتالوگ پلن‌های موجود
فاکتورهای منتاریخچه صورتحساب با دانلود PDF تک‌کلیکی
تیکت‌های پشتیبانیباز کردن و پیگیری تیکت‌های پشتیبانی
پروفایلویرایش اطلاعات تماس، تغییر رمز عبور، تنظیم زبان و پوسته، مدیریت اعلان‌ها

از بخش Profile، مشترک می‌تواند حساب Telegram خود را متصل کند، کانال‌های اعلان مورد نظرش را مرتب کند، یا به‌کلی از دریافت اعلان‌ها انصراف دهد. اگر رمز عبور خود را فراموش کنند، یک کد OTP برایشان ایمیل می‌شود (این نیازمند پیکربندی تب Email است).

ربات Telegram

سرویس samm-telegram یک ربات خودخدمت تعاملی اجرا می‌کند. مشترک /start را ارسال می‌کند، یک‌بار با نام کاربری و رمز عبور SAMM خود احراز هویت می‌کند (ربات بلافاصله پیام رمز عبور را حذف می‌کند) و سپس می‌تواند به‌طور کامل از داخل چت:

  • پلن، سهمیه، مصرف و تاریخ انقضای خود را بررسی کند
  • فاکتورها را به‌صورت PDF مشاهده و دانلود کند
  • پروفایل خود را به‌روز کند و رمز عبورش را تغییر دهد
  • باز کردن و پیگیری تیکت‌های پشتیبانی

ربات همچنین اعلان‌های خودکار — یادآوری تمدید، اطلاعیه‌های انقضا، هشدارهای سهمیه و رسیدها — را به مشترکانی که Telegram را متصل کرده‌اند تحویل می‌دهد.

صفحه فرود مشترک منقضی

وقتی اشتراک مشترکی تمام می‌شود، روتر (پیکربندی‌شده با «پول منقضی و مسدودسازی اینترنت» ویزارد) مرورگر او را به صفحه دوستانه «اشتراک منقضی شد» هدایت می‌کند که SAMM روی پورت ۸۱ ارائه می‌دهد — با لوگوی ISP شما و دکمه ورود به پورتال — به‌جای اتصالی که بی‌صدا مرده است.

سیستم

REST API

System → API رابط عمومی /api/v1 را مدیریت می‌کند. تا ایجاد اولین توکن، API غیرفعال می‌ماند؛ نصبی که هرگز از آن استفاده نکند چیزی در معرض قرار نمی‌دهد. همه موارد زیر به‌صورت مستندات تعاملی OpenAPI — با کنسول آزمایش و طرح‌های کامل درخواست/پاسخ — روی نصب خودتان در /api/v1/docs نیز در دسترس است.

مستندات تعاملی (Swagger UI)

هر نصب یک کنسول زندهٔ API در /api/v1/docs ارائه می‌دهد — مستقیماً از پنل API در پرتال مدیریت در دسترس است. روی Authorize کلیک کنید، یک توکن بچسبانید، و آنگاه هر endpoint را می‌توان با Try it out روی داده‌های خودتان اجرا کرد؛ هر فراخوانی پاسخ واقعی به‌همراه یک دستور curl آمادهٔ کپی نشان می‌دهد.

هر endpoint یک شِمای کامل و نوع‌دار اعلام می‌کند — هم برای بدنهٔ درخواست و هم برای پاسخ — بنابراین نام فیلدها، نوع‌ها و نمونه‌ها بدون هیچ فراخوانی قابل مشاهده‌اند. همان شِما به‌صورت OpenAPI قابل خواندن توسط ماشین در /api/v1/openapi.json ارائه می‌شود که یک کلاینت کاملاً نوع‌دار به زبان دلخواه شما تولید می‌کند:

openapi-generator-cli generate \
  -i https://YOUR-SAMM/api/v1/openapi.json \
  -g python -o ./samm-client

شروع سریع

  1. System → API را باز کنید (فقط ابرمدیر)، نام، انقضا و دامنه‌های موردنیاز اتصال را انتخاب و روی ایجاد توکن کلیک کنید.
  2. مقدار محرمانه را فورا کپی کنید — فقط یک بار نمایش داده می‌شود و سرور فقط چکیده آن را نگه می‌دارد.
  3. کارکرد آن را بررسی و ببینید توکن چه می‌تواند بکند:
curl -H "Authorization: Bearer samm_YOUR_TOKEN" https://YOUR-SAMM/api/v1/me

مشترکین فعال را فهرست و سپس یکی ایجاد کنید:

curl -H "Authorization: Bearer samm_YOUR_TOKEN" \
  "https://YOUR-SAMM/api/v1/customers?status=active&limit=20"

curl -X POST -H "Authorization: Bearer samm_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"username":"john","password":"secret1","firstname":"John",
       "lastname":"Doe","plan_id":3}' \
  https://YOUR-SAMM/api/v1/customers

احراز هویت، توکن‌ها و دامنه‌ها

هر درخواست Authorization: Bearer <token> می‌فرستد. توکن نام، محدودیت نرخ در دقیقه، انقضا (۳۰–۳۶۰ روز یا هرگز) و مجموعه‌ای از دامنه‌ها دارد — مجوز خواندن/نوشتن برای هر منبع؛ دامنه write خودکار دامنه read متناظر را شامل می‌شود. مقدار محرمانه فقط یک بار نمایش داده می‌شود؛ سرور فقط چکیده را نگه می‌دارد. توکن را می‌توان باطل کرد (فراخوانی‌ها بلافاصله شکست می‌خورند، قابل بازگشت) یا برای همیشه حذف کرد.

پاسخ‌ها از یک مجموعه قرارداد پیروی می‌کنند: نقاط پایانی فهرستی limit/offset می‌گیرند و {"total", "items"} برمی‌گردانند؛ خطاها کدهای استاندارد دارند — 401 توکن غایب/نامعتبر/منقضی، 403 نبود دامنه، 404 یافت نشد، 409 تکراری، 422 خطای اعتبارسنجی و 429 هنگام رسیدن به حد نرخ (با Retry-After و X-RateLimit-*).

مرجع نقاط پایانی

حوزهنقاط پایانیدامنه
بازبینی توکن GET /me · GET /commands هر توکنی
آمار داشبورد GET /stats/overview stats:read
مشترکان GET/POST /customers · GET/PATCH/DELETE /customers/{id} · POST …/suspend · …/activate · …/renew · …/reset-limit · …/assign-plan · GET …/usage customers:read/write
قطع اتصال POST /customers/{id}/disconnect · POST /sessions/disconnect · /sessions/reconnect coa:write
طرح‌ها GET/POST /plans · GET/PATCH /plans/{id} plans:read/write
فاکتورها GET/POST /invoices · GET /invoices/{id} · GET /invoices/{id}/pdf · POST …/pay · …/unpay billing:read/write
دفاتر حسابداری GET /accounting/export · GET /accounting/export/{kind} accounting:read
نشست‌های زنده GET /sessions · GET /coa-outbox sessions:read
روترها GET /routers routers:read
کارت‌های Hotspot GET/POST /cards/groups · GET /cards/groups/{id} · GET …/cards · …/print.pdf · POST …/cards · …/enable · …/disable · …/extend · GET /cards/{id} · POST /cards/{id}/enable · …/disable · …/reset/{kind} cards:read/write
Webhooks GET/POST /webhooks · DELETE /webhooks/{id} · POST …/enable · …/disable · …/test webhooks:manage

فرمان‌های در صف

تغییراتی که به وضعیت زنده حسابداری دست می‌زنند — بازنشانی محدودیت‌ها، فعال/غیرفعال کردن کارت‌ها و گروه‌ها، تمدید اعتبار — داخل درخواست اعمال نمی‌شوند. در صف فرمان حسابرسی‌شده قرار می‌گیرند و samm-radius در یک تیک (چند ثانیه) اعمالشان می‌کند؛ دقیقا مانند همان کلیک‌ها در پورتال مدیریت. این نقاط {"queued": true} برمی‌گردانند؛ با GET /commands ببینید فرمان‌های توکن شما applied شده‌اند.

Webhooks

نشانی نقطه پایانی را ثبت و رویدادها را انتخاب کنید (ایجاد/ویرایش/تمدید/انقضای مشترک، اتمام محدودیت، ایجاد/پرداخت فاکتور، رویدادهای اختیاری نشست). مقدار محرمانه امضا فقط یک بار هنگام ایجاد برگردانده می‌شود. تحویل‌ها با فاصله افزایشی دوباره تلاش می‌شوند و نقطه پایانی که مدام شکست بخورد خودکار غیرفعال می‌شود — با POST /webhooks/{id}/enable دوباره فعالش کنید یا با POST /webhooks/{id}/test رویداد نمونه بفرستید.

هر تحویل X-SAMM-Event و X-SAMM-Signature: sha256=HMAC(body) دارد. پیش از اعتماد بررسی کنید:

import hmac, hashlib

def verify(body: bytes, signature_header: str, secret: str) -> bool:
    calc = "sha256=" + hmac.new(secret.encode(), body,
                                hashlib.sha256).hexdigest()
    return hmac.compare_digest(calc, signature_header)
همان قواعد پورتال تغییرات API از همان صف فرمان حسابرسی‌شده و لایه سرویس پورتال مدیریت می‌گذرد — بازنشانی یا تغییر طرح از طریق API دقیقا مانند کلیک در رابط عمل می‌کند، از جمله CoA.

مرجع

کار با SAMM

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

مدیریت سرویس

# Restart all SAMM services
systemctl restart samm-api samm-radius samm-worker samm-notification samm-telegram

# Live logs for one service
journalctl -u samm-api    -f
journalctl -u samm-radius -f

# Validate the FreeRADIUS config after any change
freeradius -CX

# Port 8000 stuck after a crash (admin portal unreachable)
kill -9 $(lsof -ti:8000); systemctl restart samm-api

CLI مدیریت

برای عملیات سریع مشترکان از خط فرمان. هر دستور در گزارش رخدادها صف‌بندی می‌شود و در تیک بعدی samm-radius اعمال می‌گردد — دقیقاً مانند اقدامات رابط کاربری.

CLI="sudo -u samm /opt/samm/venv/bin/python -m samm_radius.cli"

$CLI reset-quota      alice          # reset a limit counter
$CLI reset-daily      alice
$CLI reset-uptime     alice
$CLI reset-expiration alice
$CLI change-plan      alice home-50M # switch a subscriber's plan
$CLI encrypt-pw                       # encrypt a router API password for the DB

فایل‌های پیکربندی

فایلشامل
/etc/samm/samm.yamlDSN پایگاه داده، اندازه‌های connection-pool، سطح لاگ
/etc/samm/api.envکلیدهای مخفی نشست پورتال و تنظیمات SMTP بازیابی رمز عبور
/etc/samm/secret.keyکلید رمزگذاری برای رمزهای API روتر ذخیره‌شده

این فایل‌ها در طول ارتقاها حفظ می‌شوند و هرگز با اجرای مجدد نصب‌کننده بازنویسی نمی‌شوند. تنظیمات زمان اجرا (تناوب حلقه‌ها، زمان بازنشانی روزانه، پورت‌های CoA) به‌جای آن در Settings قرار دارند و بدون راه‌اندازی مجدد اعمال می‌شوند.

به‌روزرسانی SAMM

یا بگذارید SAMM خودش را از System → License به‌روز کند، یا نصب‌کننده را دوباره اجرا کنید — به Installation → Upgrading مراجعه کنید. هر دو مسیر مهاجرت‌ها را دوباره اعمال می‌کنند و سرویس‌ها را راه‌اندازی مجدد می‌کنند؛ پیکربندی و داده‌های شما دست‌نخورده می‌مانند.

پشتیبان‌گیری و بازیابی

پیش از هر تغییر عمده، از Tools → Backup & Restore برای یک عکس کامل از پایگاه داده استفاده کنید. برای بازسازی روی یک میزبان جدید، SAMM را نصب کنید و سپس پشتیبان را بازیابی کنید.

ابزار تعمیر و نگهداری (خارجی)

برخی از کارها و نگهداری‌ها به‌قدری تخریبی هستند که نباید در پنل مدیر قرار گیرند، چرا که کلیک تصادفی می‌تواند کسب‌وکار زنده‌ای را نابود کند. SAMM آن‌ها را به‌عنوان اسکریپت‌های مستقل و فقط برای ریشه (root) در مخزن توزیع عمومی نگه می‌دارد، که شما باید آن‌ها را به‌طور عمدی از طریق خط فرمان دانلود و اجرا کنید — هرگز به‌عنوان دکمه. این اسکریپت‌ها در مسیر زیر قرار دارند: tools/.

بازنشانی رمز عبور مدیر قفل‌شده

دسترسی به پنل مدیریت را از دست داده‌اید؟ رمز عبور تازه‌ای برای یک حساب superadmin مستقیم در پایگاه داده تنظیم کنید — بدون نیاز به ورود معتبر. اگر حساب غیرفعال شده باشد نیز دوباره فعالش می‌کند و به چیز دیگری دست نمی‌زند.

curl -fsSL -o samm-reset-admin-password.sh \
  https://raw.githubusercontent.com/mhdhaidarah/samm/main/tools/samm-reset-admin-password.sh

sudo bash samm-reset-admin-password.sh --list   # list the superadmin accounts
sudo bash samm-reset-admin-password.sh          # reset (prompts for the new password, twice)

آن را با دسترسی root روی سرور SAMM اجرا کنید. اگر چند superadmin وجود دارد، با --user <name> یکی را انتخاب کنید.

کتاب‌ها را بازنشانی کنید (داده‌های مالی را پاک کنید)

هر تراکنش مالی را پاک می کند تا یک ISP بتواند حسابداری خود را از صفر شروع کند. در حالی که تمام داده های مشترک و AAA کاملاً دست نخورده باقی می ماند. مفید هنگام تصاحب یک نصب کنید، یا بعد از یک دوره آزمایشی/آزمایشی، زمانی که کتاب ها پر از داده های اپراتور هستند می‌خواهد از بین برود، اما پایگاه مشتری باید دقیقاً همانطور که هست باقی بماند.

خطر - از دست دادن غیرقابل برگشت داده این به‌طور دائمی تمام فاکتورها، پرداخت‌ها، رسید‌ها، موجودی‌های کیف پول و تاریخچه حسابداری را از بین می‌برد. بازگشتی وجود ندارد. تنها راه بازگشت، پشتیبان‌گیری از پایگاه داده است. هرگز آن را بر روی نصب تولیدی که ابتدا پشتیبان‌گیری و تأیید نکرده‌اید، اجرا نکنید.

حذف شد: فاکتورها و اقلام خط آنها، دفتر دو ورودی (پرداخت، دریافت، تعدیل، شارژ و برداشت کیف پول)، پرداخت آنلاین معاملات، هزینه ها، دارایی های ثابت و گزارش فعالیت های حسابداری. شماره گذاری فاکتور تنظیم مجدد می شود، بنابراین فاکتور بعدی از شماره 1 شروع می شود.

نگهداری می شود: هر مشترک، طرح، پنجره سرعت، محدودیت، شمارنده مصرف، تاریخچه برنامه، کارت هات اسپات، روتر، جلسه و رکورد حسابداری RADIUS - به علاوه شما پیکربندی حسابداری (نمودار حساب ها، حساب های نقدی، گروه های مالیاتی، پرداخت دروازه ها). وجوه نقد، کیف پول و موجودی دریافتنی از دفتر کل مشتق شده است، بنابراین آنها به سادگی صفر را بعد از آن بخوانید.

دانلود کنید، بخوانید و سپس اجرا کنید. همیشه ابتدا یک دویدن خشک انجام دهید:

curl -fsSL -o samm-wipe-financials.sh \
  https://raw.githubusercontent.com/mhdhaidarah/samm/main/tools/samm-wipe-financials.sh

sudo bash samm-wipe-financials.sh --dry-run   # show what would be deleted, change nothing
sudo bash samm-wipe-financials.sh             # do it
آن را مستقیماً داخل پوسته لوله نکنید هرگز این را به عنوان curl … | sudo bash اجرا نکنید. برای اسکریپتی که داده های شما را از بین می برد می خواهید ابتدا آن را بخوانید، و دانلود کوتاه شده نباید بتواند نیمی از a را اجرا کند پاک کن دانلود کنید، بررسی کنید، سپس اجرا کنید.

اسکریپت از اجرا به عنوان یک کاربر غیر ریشه امتناع می ورزد، دقیقاً همان چیزی را که قرار است چاپ کند حذف کنید، سپس از شما می‌خواهد که YES را تایپ کنید تا تأیید کنید که یک نسخه پشتیبان تأیید شده دارید و برای ادامه WIPE . پیشنهاد می کند ابتدا پایگاه داده خود را تخلیه کند (به /var/backups/samm/ ) و در صورت عدم موفقیت این dump لغو می شود. پاک کن به صورت a اجرا می شود یک تراکنش همه یا هیچ، و RADIUS عمداً در حال اجرا گذاشته می‌شود، بنابراین مشترکین آنلاین می مانند تا زمانی که کتاب ها پاک می شوند.

مرجع

پرسش‌های متداول و رفع اشکال

SAMM از چه سیستم‌عامل‌هایی پشتیبانی می‌کند؟

Ubuntu 22.04 / 24.04 / 26.04 LTS و Debian 12/13. فقط درجه سرور Linux — انواع دسکتاپ پشتیبانی نمی شوند. نصب کننده از systemd، یک تازه انتظار دارد نصب PostgreSQL (یکی برای شما تنظیم شده است)، و دسترسی روت.

آیا برای اجرای SAMM به اتصال اینترنت نیاز دارم؟

خیر. SAMM به‌طور کامل روی سرور خودتان اجرا می‌شود و مشترکان را به‌صورت محلی از طریق RADIUS احراز هویت می‌کند. تنها ترافیک خروجی، یک ضربان دوره‌ای مجوز به سرور مجوز SecuryTik است تا پلن شما معتبر بماند.

آیا می‌توانم SAMM را در فضای ابری اجرا کنم، یا باید on-prem باشد؟

هر دو کار می‌کند. بیشتر اپراتورها آن را on-prem در کنار روترهای هسته خود اجرا می‌کنند؛ برخی روی یک VM ابری کوچک با یک تونل Cloudflare Zero Trust به‌عقب اجرا می‌کنند. تنها لازمه این است که روترهای MikroTik بتوانند سرور SAMM را روی پورت‌های RADIUS (1812/1813 UDP) دریافت کنند و SAMM بتواند روترها را از طریق API میکروتیک دریافت کند.

آیا هنگام افزودن یا حذف یک روتر باید FreeRADIUS را راه‌اندازی مجدد کنم؟

خیر. SAMM کلاینت‌های NAS را به‌صورت پویا از پایگاه داده تشخیص می‌دهد، بنابراین افزودن، ویرایش یا حذف یک روتر در MikroTik → NAS بدون راه‌اندازی مجدد اعمال می‌شود.

تغییر پلن یا بازنشانی شمارنده با چه سرعتی اعمال می‌شود؟

اقدامات مدیریتی صف‌بندی می‌شوند و توسط سرویس samm-radius در تیک بعدی‌اش اعمال می‌گردند — به‌طور پیش‌فرض ظرف ۳۰ ثانیه. اگر مشترک آنلاین باشد، SAMM همچنین یک CoA زنده برای تازه‌سازی نشست ارسال می‌کند. برای زمان‌بندی دقیق‌تر، بازه samm-radius را در System → Settings کاهش دهید.

اگر یک مجوز پولی منقضی شود، چه بلایی سر داده‌های من می‌آید؟

هیچ چیز هرگز حذف نمی‌شود. یک مجوز منقضی‌شده مرحله‌به‌مرحله از هشدار، مهلت، یک قفل نرم (RADIUS حدود یک هفته به احراز هویت ادامه می‌دهد) و در نهایت یک قفل سخت پایین می‌آید. فعال‌سازی مجدد در هر مرحله، همه سرویس‌ها را با تمام داده‌های دست‌نخورده راه‌اندازی می‌کند.

آیا SAMM رایگان است؟ Pro چه چیزی اضافه می‌کند؟

سطح رایگان برای همیشه رایگان است و همهٔ امکانات را دارد. طرح‌های پولی امکانی باز نمی‌کنند — سقف کاربران AAA و کارت‌های Hotspot را بالا می‌برند و محدودیت روتر را برمی‌دارند. مجوز و سطوح را ببینید.

یک مشترک نمی‌تواند احراز هویت شود — از کجا شروع کنم؟

بررسی کنید که shared secret مربوط به RADIUS روتر دقیقاً با رکورد NAS مطابقت دارد، که روتر برای PPP / Hotspot RADIUS فعال است، و اینکه حساب مشترک فعال (Active) و منقضی‌نشده است. journalctl -u samm-api -f و لاگ FreeRADIUS را زیر نظر بگیرید و تأیید کنید که روتر می‌تواند میزبان SAMM را روی UDP 1812/1813 دریافت کند.

کمک بیشتری می‌خواهید؟

برای گزارش یک اشکال یا درخواست یک قابلیت به [email protected] ایمیل بزنید.