التوثيق

SAMM التوثيق

الدليل الكامل للمشغل — من أول تثبيت حتى العمليات اليومية.

25 موضوعا 8 أقسام تثبيت بأمر واحد
تثبيت سريع

تعمل خلال دقائق، من أمر واحد.

نفذ سطرا واحدا على خادم جديد بنظام Ubuntu أو Debian — سيقوم سكربت التهيئة بجلب آخر إصدار وتثبيت منظومة SAMM بالكامل لك.

اقرأ دليل التثبيت الكامل
install.sh — bash
curl -fsSL https://samm.securytik.com/install.sh | sudo bash

البدء

نظرة عامة & البنية

SAMM — SecuryTik Active Mikrotik Manager — هي منصة كاملة لإدارة مزودي خدمة الإنترنت لشبكات MikroTik PPPoE & Hotspot. مثبت واحد يحول خادم Linux فارغا إلى نظام كامل لـ AAA والفوترة وإدارة المشتركين.

لمن SAMM

تم تصميم SAMM لمزودي الإنترنت اللاسلكي، ومشغلي الألياف، ومزودي Hotspot الذين يشغلون MikroTik RouterOS. إذا كنت تصادق المشتركين عبر PPPoE أو Hotspot وتحتاج إلى فرض باقات السرعة، وحدود البيانات، وتواريخ الانتهاء، والفوترة — يقوم SAMM بذلك كله من شاشة واحدة.

كيف يعمل

يبقي 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يقوم بفحص الراوترات؛ ويزامن بيانات أجهزة MikroTik عبر API
samm-notificationيسلم إشعارات البريد الإلكتروني & Telegram عبر قائمة انتظار واحدة منظمة
samm-telegramيشغل روبوت Telegram التفاعلي للخدمة الذاتية

ماذا يفعل SAMM

نواة AAA

مصادقة PPPoE & Hotspot، وفرض السرعة لكل مستخدم، وCoA هجين.

الباقات & الحدود

باقات سرعة بالإضافة إلى أربعة حدود مستقلة ونوافذ سرعة مجدولة.

المشتركون

مستخدمو PPPoE/Hotspot بالإضافة إلى بطاقات قسائم Hotspot مدفوعة مسبقا مع PDFs قابلة للطباعة.

الفوترة

تسعير لكل باقة، فواتير تلقائية، ودفتر إيصالات/دفعات/مصاريف مزدوج القيد.

الخدمة الذاتية

بوابة ويب للعملاء وروبوت Telegram للاستخدام والفواتير والتذاكر.

العمليات

مخزون MikroTik مباشر، مسؤولون مبنيون على الأدوار، نسخ احتياطي & استعادة، وأدوات جماعية.

النظام

WireGuard VPN مدمج، وCloudflare Tunnel، وست لغات، وواجهة قابلة للتخصيص.

الإشعارات

تنبيهات التجديد والانتهاء والحصة والإيصالات عبر البريد الإلكتروني وTelegram.

بقية هذا الدليل هو شرح لكل من هذه المجالات. استخدم القائمة على اليسار، أو ابدأ بـ التثبيت.

البدء

التثبيت

يثبت SAMM كل ما يحتاجه — FreeRADIUS، وPostgreSQL، وnginx، وWireGuard، وcloudflared، وخدمات SAMM الخمس — في خطوة واحدة. المثبت متكرر آمن (idempotent): إعادة تشغيله ترقي تثبيتا قائما في مكانه ولا تستبدل إعداداتك أو تعيد توليد كلمة مرور قاعدة البيانات.

يتم تشغيل SAMM في أي مكان — اختر مسار التثبيت الذي يناسب شبكتك:

  • الخيار أ / ب — خادم Linux مكشوف (موصى به للإنتاج): أمر واحد أو تثبيت يدوي على Ubuntu / دبيان.
  • الخيار ج — Docker الإنشاء: نفس SAMM مثل الحاويات؛ متعدد القوس (amd64 + Arm64) لذا فهو يعمل على Ubuntu ، Windows Docker Desktop، Apple -Silicon Macs، في أي مكان.
  • الخيار د — MikroTik RouterOS 7 حاوية: قم بلصق إنشاء YAML مباشرة في جهاز التوجيه الخاص بك. لا حاجة إلى صندوق Linux خارجي.

المتطلبات الأساسية

  • خادم جديد: Ubuntu 22.04 LTS أو Ubuntu 24.04 LTS أو Debian 12. نسخ Linux الخاصة بالخوادم فقط — نسخ سطح المكتب غير مدعومة.
  • صلاحية Root / sudo واتصال بالإنترنت.
  • systemd، ومضيف يمكن تثبيت PostgreSQL عليه محليا (يتم إعداده لك).

الخيار أ — التثبيت بأمر واحد

على الخادم، نفذ:

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

يقوم سكربت التهيئة هذا بتنزيل أحدث حزمة إصدار SAMM من GitHub، ويستخرجها، ويشغل المثبت الكامل تلقائيا. يتم خلال دقائق قليلة.

الخيار ب — التثبيت يدويا من حزمة إصدار

نزل أحدث samm-<version>.tar.gz من صفحة إصدارات GitHub، ثم على الخادم:

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.

في كلتا الحالتين، بعد انتهاء التثبيت، افتح بوابة الإدارة وسجل الدخول بهذه البيانات:

رابط الدخولhttp://<your-server>/admin · اسم المستخدمadmin · كلمة المرورadmin

غير كلمة مرور المدير فورا بعد أول تسجيل دخول.

الخيار ج — التثبيت باستخدام Docker الإنشاء

إذا كنت تفضل تشغيل SAMM كحاويات - نفس المنتج، ولكن معبأ بشكل مختلف - استخدم Docker توزيع الإنشاء على 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 + .env إلى /opt/samm-docker/ ، ويبدأ المكدس. الصورة تم إنشاء mhdhaidarah/samm من نفس الحزمة المترجمة مثل تثبيت نظام التشغيل المجرد - مصدر مغلق حسب الإنشاء.

Multi-arch منذ الإصدار 2.2.6 — نفس العلامة تأتي لـ linux/amd64 و linux/arm64 . يختار docker pull المتغير الصحيح بشفافية، بحيث يكون مسار التثبيت متطابقًا على خادم Intel/AMD 64 بت، أو جهاز Apple -silicon Mac يعمل بنظام Docker Desktop، أو جهاز ARM MikroTik (RB5009، hAP ax²، CCR2004/2116/2216) باستخدام ميزة حاوية RouterOS 7.

على الأجهزة المضيفة حيث لا يُسمح بتوصيل الأنابيب curl إلى bash (المربعات المغلقة، سياسات الخروج الصارمة)، يمكنك جلب ملف الإنشاء الجاهز للتشغيل مباشرةً:

git clone https://github.com/mhdhaidarah/samm-docker.git
cd samm-docker
cp .env.example .env
$EDITOR .env       # set POSTGRES_PASSWORD and SAMM_PUBLIC_HOST
docker compose up -d

بعض الميزات ليست موجودة بعد في متغير Docker (تأمين الترخيص المرحلي، إعادة التحميل الديناميكي FreeRADIUS ). تم إخفاء صفحات إدارة WireGuard و Cloudflare النفق المضمنة عمدًا في المتغير Docker - فهي تدير خدمات systemd على مستوى المضيف التي لا يمكن الوصول إليها من داخل الحاوية. اختر الخيار A أو B أعلاه إذا كنت بحاجة إلى تلك المضمنة، أو قم بتشغيل cloudflared / wg-quick على المضيف Docker مباشرة بجانب SAMM . انظر الملف التمهيدي Docker الخاص بالمتغير للحصول على تحذيرات الإصدار 1 الكاملة ومسار التثبيت اليدوي.

على نظام التشغيل Windows (سطح المكتب Docker ) — تقييم فقط

غير مستحسن للإنتاج. وضع السكون / السبات / إغلاق الغطاء في Windows يوقف الحاويات؛ يتم تشغيل إعادة تشغيل التمهيد فقط عند بدء تشغيل WSL (وليس عند تشغيل Windows)؛ ال يتم تشغيل التحديث التلقائي اليومي فقط أثناء وجود WSL. استخدمه للتقييم/العرض التوضيحي، إذن نشر الإنتاج على Linux جهاز افتراضي (Hyper-V، Proxmox، ESXi) أو صندوق فعلي صغير (على سبيل المثال NUC يقوم بتشغيل خادم Ubuntu ).

تثبيت Docker سطح المكتب لنظام التشغيل Windows (يتيح له إعداد الواجهة الخلفية لـ WSL2 عند التشغيل لأول مرة). ثم من PowerShell - لا حاجة إلى محطة WSL - احصل على حزمة الإنشاء وابدأ المكدس:

mkdir C:\samm-docker
cd C:\samm-docker
curl.exe -fLO https://github.com/mhdhaidarah/samm-docker/releases/latest/download/docker-compose.yml
curl.exe -fLO https://github.com/mhdhaidarah/samm-docker/releases/latest/download/env.example
copy env.example .env
notepad .env       # set POSTGRES_PASSWORD and SAMM_PUBLIC_HOST (your Windows LAN IPv4)
docker compose pull
docker compose up -d

راقب إقلاع الحزمة في Docker Desktop → الحاويات — تتوسع مجموعة samm إلى 7 خدمات. بمجرد أن تصبح كلها خضراء، افتح بوابة الإدارة وسجل الدخول بهذه البيانات:

رابط الدخولhttp://localhost:8000/admin · اسم المستخدمadmin · كلمة المرورadmin

غير كلمة مرور المدير فورا بعد أول تسجيل دخول.

إذا كان NAS MikroTik حقيقيًا سيصل إلى مضيف Windows هذا لـ RADIUS، فاسمح بـ UDP 1812 + 1813 من خلال جدار حماية Windows:

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

هدم: إنشاء عامل الإرساء -v من دليل التثبيت (يمسح -v حجم postgres ومفتاح Fernet - قم بعمل نسخة احتياطية لهما أولاً إذا كنت قد أضفت بيانات).

الخيار د — التثبيت على جهاز توجيه MikroTik ( RouterOS 7)

نفس SAMM ، لا حاجة إلى مربع Linux . إذا كان جهازك MikroTik يدعم حزمة الحاوية وكان به محرك أقراص USB أو بطاقة microSD متصلة، فيمكنك تشغيل المجموعة بأكملها مباشرة على جهاز التوجيه. تأتي الصورة متعددة الأقواس ( linux/amd64 + linux/arm64 )، لذا فإن الأجهزة مثل RB5009، وhAP ax²، وCCR2004/2116/2216 تسحب المتغير الصحيح بشفافية.

مدعوم: الذراع64 MikroTik — RB5009، hAP ax²، CCR2004-1G-12S+2XS، CCR2116، CCR2216. وحدات SKU AMD64 — CCR2004-1G-2XS-PCIe (amd64)، x86 RouterOS ، CHR على برامج Hypervisor AMD64.
غير مدعوم: أجهزة Armv7 / mipsbe / smips / Tile / PPC (hEX، RB750، نماذج RB الأقدم) — لا يوجد دعم للحاوية أو ذاكرة الوصول العشوائي/وحدة المعالجة المركزية (RAM) قليلة جدًا لمكدس SAMM .

1. قم بإعداد جهاز التوجيه

قم بتثبيت حزمة الحاوية (من extra_packages.zip على mikrotik.com/download — قم بتحميل حاوية المطابقة-*.npk عبر الملفات، ثم أعد التشغيل). ثم قم بتمكين وضع الحاوية (مرة واحدة، يتطلب إعادة التشغيل):

/system device-mode update container=yes
# router reboots

2. تهيئة القرص وتثبيته (ext4)

أدخل محرك أقراص USB أو بطاقة microSD (يوصى بسعة ≥ 8 جيجابايت — Postgres + إضافة طبقات الصورة). على جهاز التوجيه:

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

بعد التهيئة، تحقق من تركيب القرص وقابليته للكتابة:

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

3. الصق إنشاء YAML في تطبيق الحاوية

في WebFig أو WinBox، افتح الحاوية التطبيقات + جديد YAML . الصق ملف الإنشاء أدناه في حقل YAML، وقم بتعيين القرص الذي قمت بتنسيقه في الخطوة 2 كموقع تخزين، ثم أرسله. سيقوم RouterOS بسحب كل صورة وتوصيل الخدمات لك.

docker-compose.yaml — النسخ واللصق
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

  samm-api:
    image: mhdhaidarah/samm:latest
    restart: unless-stopped
    command: ["api"]
    environment:
      # SAMM_ROLE picks the daemon. Docker reads `command:` above; MikroTik's
      # container feature drops that field on YAML import, so we also pass
      # the role as an env var — every parser preserves environment blocks.
      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
    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
      POSTGRES_HOST: postgres
      POSTGRES_PORT: 5432
      POSTGRES_DB: samm
      POSTGRES_USER: samm
      POSTGRES_PASSWORD: change-me-strong-random-string
      TZ: UTC
    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
      POSTGRES_HOST: postgres
      POSTGRES_PORT: 5432
      POSTGRES_DB: samm
      POSTGRES_USER: samm
      POSTGRES_PASSWORD: change-me-strong-random-string
      TZ: UTC
    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
      POSTGRES_HOST: postgres
      POSTGRES_PORT: 5432
      POSTGRES_DB: samm
      POSTGRES_USER: samm
      POSTGRES_PASSWORD: change-me-strong-random-string
      TZ: UTC
    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
      POSTGRES_HOST: postgres
      POSTGRES_PORT: 5432
      POSTGRES_DB: samm
      POSTGRES_USER: samm
      POSTGRES_PASSWORD: change-me-strong-random-string
      TZ: UTC
    volumes:
      - etcsamm:/etc/samm
      - sammvar:/opt/samm/var
      - sammlogs:/var/log/samm

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

volumes:
  pgdata: {}
  etcsamm: {}
  sammvar: {}
  sammlogs: {}
  sammlocales: {}

قبل لصق ، استبدل كل سلسلة Change-me-strong-random-string بكلمة المرور العشوائية القوية SAME (≥ 24 حرفًا عشوائيًا) - تنتقل إلى Postgres عند البداية الأولى وتستخدمها كل خدمة SAMM للاتصال. قم بإنشاء واحد باستخدام مدير كلمات المرور أو قم بتشغيل pwgen 32 1 على أي مربع Linux .

4. تحقق من MikroTik واربطه بـ SAMM

بمجرد تشغيل الحاويات السبع جميعها، افتح بوابة الإدارة في المتصفح وسجل الدخول بهذه البيانات:

رابط الدخولhttp://<router-ip>:8000/admin · اسم المستخدمadmin · كلمة المرورadmin

غير كلمة مرور المدير فورا. مصادقة RADIUS والمحاسبة معروضتان على UDP 1812 + 1813 على الموجه نفسه، لذا يمكن لعميل RADIUS في MikroTik الإشارة إلى 127.0.0.1 بالسر المشترك الذي تضبطه في النظام → RADIUS.

تجريبي في الإصدار 1. تعد ميزة الحاوية RouterOS أصغر حجمًا من ميزة الإنشاء Docker - DNS لاسم الخدمة، وترتيب التبعية ( يعتمد على )، وتتصرف عمليات إعادة التشغيل المباشرة بشكل مختلف. إذا كان أداء المكدس سيئًا على أجهزتك، فارجع إلى تشغيل Docker على مربع Linux صغير (NUC، Pi 4، Linux VM) بجوار MikroTik . يعمل نفس ملف الإنشاء هناك مع دلالات الإنشاء الكاملة.

خيارات غير تفاعلية

يمكن الإجابة على جميع المطالبات مسبقا باستخدام متغيرات البيئة، حتى يمكن تشغيل المثبت دون تدخل:

المتغيرالتأثير
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 — كل ملف ترحيل متكرر آمن
Python venvيتم بناء جميع التبعيات من requirements.txt؛ ويتم تجميع كتالوجات الترجمة
nginxيتم إضافة الوكيل العكسي بالإضافة — لا تزال المواقع القائمة أبدا. يستخدم المنفذ 80 إذا كان متاحا؛ وإلا فإنه يطلب منفذا بديلا
5 servicessamm-api وsamm-radius وsamm-worker وsamm-notification وsamm-telegram — كلها مفعلة كوحدات systemd
WireGuardالحزم مثبتة؛ يتم إعدادها لاحقا من النظام ← VPN
cloudflaredالبرنامج التنفيذي يثبت دائما؛ ورمز النفق اختياري عند التثبيت أو يضاف لاحقا من النظام ← Cloudflare Tunnel

جميع بيانات الاعتماد — كلمة مرور قاعدة البيانات ومفاتيح توقيع الجلسة — تولد تلقائيا عند التثبيت الأول.

المطالبات التفاعلية

تظهر أي مطالبات في البداية، قبل بدء التثبيت:

  • رمز Cloudflare — الصق رمز موصل Zero Trust لنشر SAMM عبر الإنترنت دون منافذ مفتوحة، أو اضغط Enter للتخطي وإعداده لاحقا.
  • منفذ HTTP — إذا كان المنفذ 80 مستخدما، فإن المثبت يترك تلك المواقع دون تغيير ويطلب منفذا بديلا (الافتراضي 8080).

ملخص التثبيت

عند انتهاء المثبت يطبع ملخصا يتضمن رابط المسؤول، وبيانات تسجيل الدخول الافتراضية، ومنفذ 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

تعيد إعادة التشغيل مزامنة المصدر، وترقي البيئة الافتراضية، وتعيد تطبيق جميع الترحيلات، وتعيد تحميل إعدادات FreeRADIUS وnginx، وتعيد تشغيل كل خدمة. ملفات الإعداد ومنفذ HTTP الذي تم اختياره عند التثبيت الأول يتم الحفاظ عليها.

نصيحة يمكن لـ SAMM أيضا تحديث نفسه — راجع الترخيص & التحديثات. فعل التحديثات التلقائية، أو طبقها عند الطلب، من النظام ← الترخيص.
بيئات معزولة & قواعد بيانات بعيدة يشحن SAMM ذاته فقط — أما FreeRADIUS وPostgreSQL وnginx وغيرها فيتم جلبها عند التثبيت من مستودعات apt الرسمية، لذا يجب على التثبيتات المعزولة تجهيز تلك الحزم مسبقا. لقاعدة بيانات PostgreSQL بعيدة، اضبط DSN في /etc/samm/samm.yaml بعد التثبيت.

البدء

الخطوات الأولى

خمس مهام قصيرة تنقل تثبيتا جديدا إلى نقطة يمكن فيها للمشتركين الاتصال وإصدار فواتيرهم.

1 · أول تسجيل دخول

  1. افتح http://<your-server>/admin/ (استخدم منفذ HTTP من ملخص التثبيت إذا لم يكن 80)، أو رابط نفق Cloudflare الخاص بك.
  2. سجل الدخول بـ admin / admin.
  3. غير كلمة المرور فورا من النظام ← المسؤولون، أو من قائمة الملف الشخصي في الشريط العلوي.

2 · أضف أول راوتر

  1. اذهب إلى MikroTik ← NAS وانقر على إضافة راوتر.
  2. أدخل IP الراوتر، واسما مختصرا، وسرا مشتركا لـ RADIUS. لأجهزة MikroTik، يمكنك اختياريا إضافة بيانات اعتماد API للمزامنة المباشرة للجهاز.
  3. على MikroTik، أضف خادم RADIUS يشير إلى مضيف SAMM (المنافذ 1812/1813) بـ نفس السر المشترك، وفعل RADIUS لـ PPP / Hotspot.

لا حاجة لإعادة تشغيل FreeRADIUS — يحل SAMM عملاء NAS ديناميكيا من قاعدة البيانات. راجع الراوترات (NAS) للإجراء الكامل، أو دع معالج الإعداد يهيئ MikroTik لك.

3 · أنشئ باقة

تحدد الباقة السرعة والحدود والسعر الذي تبيعه. اذهب إلى المستخدمون ← الباقات ← باقة جديدة. مرجع كامل للحقول: الباقات & الحدود.

4 · أضف مشتركا

اذهب إلى المستخدمون ← عميل جديد، واملأ بيانات تسجيل الدخول واختر باقة. يمكن للمشترك الاتصال فورا. للوصول المدفوع مسبقا إلى Hotspot، أنشئ بطاقات قسائم بدلا من ذلك.

5 · فعل ترخيصك

يعمل التثبيت الجديد غير مسجل على باقة الحد الأدنى. افتح النظام ← الترخيص وفعله لرفع الحدود — راجع الترخيص & الباقات.

الإيقاع اليومي أضف الراوترات ← أنشئ الباقات ← أضف المشتركين أو البطاقات ← راقب لوحة التحكم ← سجل المدفوعات ضمن المحاسبة.

المشتركون & الباقات

الباقات & الحدود

الباقة هي تعريف الخدمة المخصصة للمشتركين — تحدد السرعة والحدود والسعر. أنشئ الباقات قبل إضافة المستخدمين.

إنشاء باقة

  1. اذهب إلى المستخدمون ← الباقات.
  2. انقر على باقة جديدة.
  3. املأ النموذج وانقر على حفظ الباقة.

كل حد هو مفتاح تبديل — فعل فقط ما تحتاجه. تستخدم النافذة المنبثقة نفسها لتعديل باقة قائمة (افتح قائمة ⋮ للصف ← تعديل).

حقول الباقة

الحقلالمعنى
الاسماسم باقة فريد، مثل Home-50M
السعريحتسب لكل فترة فوترة عند استخدام إصدار الفواتير
سرعة التنزيل / الرفعمثل 50M، 512K، 1G — تفرض كحد السرعة في MikroTik
الحد: الانتهاءينتهي الاشتراك بعد فترة ثابتة من التفعيل (أيام/أشهر/ساعات/دقائق)
الحد: الحصةإجمالي حد للبيانات (مجمع، أو للتنزيل فقط، أو للرفع فقط) لكامل الاشتراك
الحد: زمن التشغيلحد على زمن الاتصال التراكمي — مجموع مدد كل الجلسات
الحد: الاستخدام اليوميحد للبيانات يعاد ضبطه كل يوم في وقت الإعادة اليومية المعين
نافذة غير محدودةإضافة سريعة لنافذة سرعة واحدة — يوجد المحرر الكامل في صفحة نوافذ السرعة الخاصة بالباقة
مجمع IPاسم Framed-Pool اختياري في RADIUS لتعيين العناوين
تجديد تلقائيابدأ فترة جديدة عند الانتهاء بدلا من تغيير الباقة أو قطع الاتصال

الحدود الأربعة

كل حد مستقل واختياري. عند ضبط عدة حدود، يتحقق SAMM منها بـ ترتيب ثابت — الانتهاء ← الحصة ← زمن التشغيل ← اليومي — وأول حد يستنفد يحدد الإجراء.

الحديتتبععند الاستنفاد
الانتهاءالوقت التقويمي منذ التفعيلالتبديل إلى باقة أخرى، أو قطع الاتصال
الحصةإجمالي البايتات المستخدمةالتبديل إلى باقة أخرى، أو قطع الاتصال
زمن التشغيلثوان الجلسات التراكميةالتبديل إلى باقة أخرى، أو قطع الاتصال
يوميالبايتات منذ آخر إعادة يوميةتخفيف (التبديل إلى باقة أبطأ) حتى الإعادة اليومية التالية

لكل حد تختار ما يحدث عند الاستنفاد: اختر باقة تالية للتبديل إليها للمشترك، أو اتركها كـ — قطع الاتصال —. بالنسبة للحد اليومي تعمل الباقة التالية كتخفيف — يعود المشترك إلى الباقة الأصلية في الإعادة اليومية التالية تلقائيا.

نوافذ السرعة

نافذة السرعة تتجاوز السرعة الأساسية للباقة لساعات محددة — على سبيل المثال نافذة سرعة غير محدودة بعد منتصف الليل. انقر على صف الباقة لفتح محرر نوافذ السرعة الخاص بها، الذي يضيف التحكم بأيام الأسبوع ويدعم النوافذ التي تتخطى منتصف الليل. عند تطابق عدة نوافذ، تفوز النافذة الأعلى سرعة.

ملاحظة المشتركون الذين تم تخفيفهم أو استنفدوا الحدود يستثنون من نوافذ السرعة — لا يرفع SAMM السرعة أبدا أثناء سريان حد ما.

مفهومان للاستخدام

يحتفظ SAMM بالاستخدام في مكانين، ولا يخلط بينهما أبدا:

  • عدادات قابلة للإعادة — حالة كل حد. تصفر بإعادة من المسؤول وبالإعادة اليومية.
  • عدادات الفوترة — إجماليات مدى الحياة غير قابلة للإعادة. لا تصفر أبدا، حتى تبقى التقارير والفواتير دقيقة.

إدارة الباقات

تعرض قائمة الباقات سرعة كل باقة، وعدد المشتركين، والحدود النشطة، ونوافذ السرعة. من قائمة ⋮ للصف يمكنك التعديل، أو فتح نوافذ السرعة الخاصة بها، أو تفعيلها/تعطيلها، أو الانتقال إلى مشتركيها، أو حذفها (فقط عندما لا يكون لها مشتركون). تعديل التجديد التلقائي يعرض تعميم التغيير على جميع المشتركين الحاليين.

المشتركون & الباقات

المشتركون

المشترك (العميل / المستخدم) هو حساب PPPoE أو Hotspot يقوم بالمصادقة عبر SAMM. يخصص لكل مشترك باقة واحدة بالضبط.

إنشاء مشترك

  1. اذهب إلى المستخدمون وانقر على عميل جديد.
  2. أكمل النموذج واحفظ — يمكن للمشترك الاتصال فورا.
الحقلالمعنى
اسم المستخدم *اسم تسجيل دخول PPPoE / Hotspot — يجب أن يكون فريدا
كلمة المرور *كلمة مرور تسجيل الدخول (تخزن لمصادقة PAP/CHAP في RADIUS)
الاسم الأول / الأخيراسم المشترك
الجوال / البريد الإلكتروني / العنوانبيانات الاتصال — تستخدم للإشعارات والفواتير
الباقة *باقة الخدمة المراد تعيينها
تجاوز الانتهاءتاريخ انتهاء يدوي اختياري بدلا من التاريخ المحسوب من الباقة
تجديد تلقائيتجديد فترة الباقة تلقائيا عند الانتهاء

قائمة المشتركين

تسرد صفحة المستخدمين كل مشترك مع نقطة حالة سريعة الفهم، والباقة المعينة، وكم تبقى من كل حد — الاستخدام اليومي مع شريط تقدم، والحصة المتبقية، وزمن التشغيل المتبقي، والأيام المتبقية. صف حسب الحالة (الكل / نشط / موقوف / منته / متصل) أو ابحث باسم المستخدم أو الاسم أو رقم الجوال.

شارة تبديل الباقة شارة واحدة تعني باقة المشترك. شارتان مربوطتان بسهم تعنيان أن المشترك بلغ حده اليومي وتم تحويله مؤقتا إلى باقة تخفيف — ويعود إلى الأصلية عند الإعادة اليومية التالية.

إدارة المشترك

انقر بزر الفأرة الأيمن على صف — أو استخدم قائمة ⋮ — لكل إجراء خاص بالمشترك:

الإجراءما الذي يفعله
عرض / تعديلافتح صفحة التفاصيل، أو عدل بيانات الاتصال وكلمة المرور وتاريخ الانتهاء
تفعيل / تعطيلإيقاف الحساب — يتم قطع اتصال المشتركين المتصلين
تجديد الانتهاءأضف مدة الباقة فوق أي وقت متبق؛ ويصدر فاتورة إذا كان للباقة سعر
إعادة زمن التشغيل / الحصة / اليوميتصفير عداد الحد المختار
الاستخدامافتح رسوم الاستخدام البيانية وسجل الجلسات
حذفإزالة المشترك وكل سجله — يتم قطع الجلسات النشطة أولا
كيف تسري الإجراءات ترتب عمليات الإعادة وتغييرات الباقة والتجديدات في سجل تدقيق وتطبق بواسطة نبضة samm-radius — عادة خلال ثوان قليلة. إذا كان المشترك متصلا، يرسل SAMM أيضا تحديثا مباشرا. راجع CoA & التغييرات الفورية.

عرض الاستخدام

يفتح إجراء الاستخدام صفحة حركة بيانات مفصلة لمشترك واحد، مع محدد فترات 7 / 14 / 30 / 90 يوما. يظهر ثلاثة أرقام رئيسية — حركة اليوم (مع تقسيم الرفع/التنزيل ودقائق الاتصال)، وحركة هذا الشهر، وزمن الاتصال التراكمي للشهر. أسفلها رسم بياني يومي لحركة البيانات للرفع مقابل التنزيل، وجدول كامل لسجل الجلسات: وقت البدء والإنهاء، والمدة، والبايتات المنزلة والمرفوعة، وجهاز NAS، وسبب إنهاء كل جلسة.

العمليات الجماعية

لتغيير المالك أو الانتهاء أو الحالة أو التجديد التلقائي لعدة مشتركين دفعة واحدة — أو لحذف الكثير — استخدم أدوات التغييرات الجماعية والحذف الجماعي. لإنشاء مشتركين بالجملة من جدول بيانات، استخدم التصدير / الاستيراد.

المشتركون & الباقات

بطاقات Hotspot

للوصول المدفوع مسبقا إلى Hotspot، أنشئ دفعة من بطاقات القسائم بدلا من المشتركين الأفراد. كل بطاقة هي زوج من اسم مستخدم/كلمة مرور بسرعتها وحدودها الخاصة، تولد بالآلاف وتطبع للتوزيع.

إنشاء مجموعة بطاقات

  1. اذهب إلى المستخدمون ← بطاقات Hotspot وانقر على مجموعة جديدة.
  2. املأ النموذج أدناه وانقر على إنشاء مجموعة — يولد SAMM بيانات اعتماد كل بطاقة تلقائيا.
القسمالحقول
الهويةاسم مجموعة فريد، ووصف، وبادئة اسم مستخدم اختيارية، وعدد البطاقات المراد توليدها (حتى 10,000)
بيانات الاعتمادتنسيق اسم المستخدم وكلمة المرور (أرقام / حروف / أحرف وأرقام) وطولهما
حد السرعةسرعة التنزيل والرفع — 256k، 6M، 1G؛ 0 = غير محدود
حد النقلغير محدود، أو حد مجمع، أو حدود منفصلة للتنزيل/الرفع (MB / GB / TB)
حد الأوقاتحد زمن التشغيل، والانتهاء بعد أول تسجيل دخول، وتاريخ "صالح حتى" للمجموعة

يحتسب الانتهاء من أول تسجيل دخول لكل بطاقة، بينما صالح حتى هو تاريخ نهائي صارم — لا يمكن استخدام البطاقات بعده، سواء تم تفعيلها أم لا.

حالات البطاقة

الحالةالمعنى
غير مستخدمةتم توليدها لكن لم يتم تسجيل الدخول بها أبدا
نشطةقيد الاستخدام، ضمن حدودها
مستنفدةتم بلوغ حد (حصة أو زمن تشغيل أو انتهاء)
معطلةمعطلة يدويا

الطباعة & التتبع

افتح مجموعة لرؤية بطاقاتها، واطبعها كملف PDF للتوزيع (يستخدم تخطيط الطباعة شعار مزود الخدمة الخاص بك من الإعدادات)، وراجع استخدام كل بطاقة. تظهر حركة بيانات البطاقات أيضا في التقارير ضمن علامة تبويب البطاقات، ولكل مجموعة عرض محاسبي خاص بها.

الشبكة & الراوترات

الراوترات (NAS)

NAS (Network Access Server) هو راوتر يصادق المشتركين عبر SAMM عبر RADIUS. كل راوتر يحمل حركة بيانات المشتركين يحتاج إلى سجل NAS.

إضافة راوتر

  1. اذهب إلى MikroTik ← NAS وانقر على إضافة راوتر.
  2. املأ الحقول أدناه واحفظ.
الحقلالمعنى
IP / اسم مضيف NASعنوان الراوتر، كما يراه مضيف SAMM
الاسم المختصرتسمية واضحة تظهر عبر الواجهة
النوعmikrotik يفتح المزامنة المباشرة للجهاز ودفع الإعدادات؛ الأنواع الأخرى لـ RADIUS فقط
السرالسر المشترك لـ RADIUS — يجب أن يطابق الراوتر تماما، وإلا تفشل المصادقة
منفذ CoAمنفذ UDP الذي يرسل إليه SAMM حزم Change-of-Authorization (افتراضي MikroTik 3799)
منفذ / مستخدم / كلمة مرور APIبيانات اعتماد MikroTik API التي يستخدمها SAMM لقراءة معلومات الجهاز ودفع الإعدادات
لا حاجة لإعادة التشغيل يحل SAMM عملاء NAS ديناميكيا من قاعدة البيانات — إضافة أو إزالة راوتر لا تتطلب أبدا إعادة تشغيل FreeRADIUS.

قائمة NAS

يظهر كل راوتر في جدول واحد — المعرف، وIP / اسم مضيف NAS، والاسم المختصر، والنوع، وسر مقنع (انقر على الخلية لإظهاره)، ومنفذا CoA وAPI، ونتيجة ping مباشرة مع زمن الذهاب والإياب. يصف مربع البحث حسب IP أو الاسم المختصر أو الوصف.

تحمل قائمة ⋮ لكل صف إجراءات خاصة بالراوتر — عرض الجهاز و تحديث المعلومات (MikroTik فقط)، وتعديل، ودفع إعدادات RADIUS (MikroTik فقط)، وحذف. فتح صف من نوع mikrotik ينتقل مباشرة إلى صفحة جهازه.

اكتشاف الجيران

انقر على اكتشاف الجيران لفحص أجهزة MikroTik على الشبكة وإضافتها كسجلات NAS دون كتابة كل عنوان يدويا.

دفع إعدادات RADIUS إلى الراوتر

بالنسبة لسجلات MikroTik NAS، تقدم قائمة ⋮ للصف دفع إعدادات RADIUS — يقوم 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 للمحاسبة على نحو 60 ثانية — هذه هي الوتيرة التي يجمع بها SAMM الاستخدام ويقيم الحدود.

أجهزة للمراقبة فقط

الراوتر الذي يضاف كـ مراقبة يظهر في مخزون MikroTik ويتم فحصه ومزامنته، لكن ليس له دور RADIUS — لا يستطيع مصادقة المشتركين. استخدمه لمراقبة الراوترات التي ليست NAS للمشتركين.

الشبكة & الراوترات

مدير MikroTik

عندما يكون للراوتر بيانات اعتماد API، يديره SAMM مباشرة عبر MikroTik API — بدون WinBox، وبدون SSH. قسم MikroTik هو مخزون مباشر لكل راوتر، وكل جهاز يفتح صفحة تفاصيل بها خمس عشرة علامة تبويب تهيئ تقريبا كل جزء من RouterOS من متصفحك.

مراقب MikroTik

يعرض MikroTik ← المراقب بطاقة واحدة لكل راوتر، مرتبة كشبكة. تظهر كل بطاقة — يتم تحديثها من قبل samm-worker وتستفسر مباشرة كل 30 ثانية — نقطة قابلية الوصول، وإصدار RouterOS، وحمل المعالج وعدد النوى، واستخدام الذاكرة، وعدد الجلسات النشطة، وزمن التشغيل، ووقت آخر عينة.

توسم البطاقة إما NAS (راوتر يصادق أيضا المشتركين عبر RADIUS) أو مراقبة (جهاز أضيف للمراقبة فقط). إضافة MikroTik تسجل جهازا جديدا؛ وتحديث الآن يفرض استفسارا فوريا. تحمل بطاقات المراقبة فقط قائمة بالنقر بالزر الأيمن — فتح، تعديل، تحديث المعلومات، حذف.

صفحة الجهاز — ست عشرة علامة تبويب

افتح أي جهاز للحصول على صفحة إدارته الكاملة. تنقسم علامات التبويب إلى أربع مجموعات.

المراقبة

علامة التبويبما الذي يعرضه
نظرة عامةمعلومات الجهاز، ومعلومات النظام، ورسوم بيانية لتاريخ الأداء (المعالج، الذاكرة، الجلسات بمرور الوقت)
الواجهاتكل واجهة مع حالتها المباشرة، بالإضافة إلى تاريخ حركة البيانات لكل واجهة
المواقعالمواقع & التطبيقات التي تظهر على الراوتر وعرض تاريخي لأداء تلك الحركة

المدير

علامة التبويب المدير ← عام هي صفحة الصيانة للجهاز: الهوية (اسم الراوتر)، والوقت (الساعة، والمنطقة الزمنية وNTP)، والأدوات (إعادة التشغيل، وping، وإجراءات أخرى للراوتر بنقرة واحدة).

إعداد الشبكة

علامة التبويبما الذي تهيئه
الجسرأنشئ جسور LAN واختر الواجهات الفعلية (المنافذ) التي تنتمي لكل منها
VLANإضافة وإدارة واجهات VLAN
IPثلاث علامات تبويب فرعية — ثابت (عناوين ثابتة وديناميكية)، وDHCP client (سحب عنوان من الأعلى)، وDHCP server (توزيع العناوين، مع جدول إيجارات مباشر)
DNSخوادم DNS وذاكرتها المؤقتة، بالإضافة إلى فلتر المواقع & التطبيقات — حجب المحتوى المعتمد على DNS
WiFi / CAPsMANواجهات Wi-Fi مع إعداداتها وملفات الأمان؛ ومتحكم CAPsMAN — الإعدادات، وقواعد التزويد، وCAPs البعيدة
QoSأولوية تنزيل واعية بالتطبيقات — اسحب التطبيقات والمواقع التي يراها فلتر Websites & App إلى ثماني خانات أولوية، حد سرعة أي تطبيق، وادفعها إلى الراوتر كشجرة طوابير

الخدمات & الصيانة

علامة التبويبما الذي تهيئه
PPPoEخوادم PPPoE، وملفات PPP، ومجمعات IP، وفاصل interim-update لمحاسبة RADIUS
Hotspotخوادم Hotspot، وملفات Hotspot وملفات المستخدمين، ومجمعات DHCP/IP، وصفحة تسجيل دخول البوابة الإلزامية
الإنترنتوصلات WAN — شبكات WAN المدارة من SAMM والمسارات الافتراضية، مع عرض أي شبكات WAN قائمة غير مدارة من SAMM للقراءة فقط
الجدار الناريقواعد التصفية، وتحليل أمان الراوتر، والاتصال & الأهداف، ووحدات الأمان، ونسخ احتياطية للجدار الناري
التحديثتحديثات RouterOS — اختر قناة تحديث، وتحقق وطبق، وراجع الحزم المثبتة
المعالجالإعداد الموجه لأول مرة، بالأسفل

فاصل التحديث المرحلي (Interim-Update) لـ PPPoE

في تبويب PPPoE، يحدد التحديث المرحلي (Interim update) عدد المرات التي يرسل فيها الراوتر حزم RADIUS accounting Interim-Update إلى SAMM. يستخدم SAMM هذه الحزم لتجميع عدادات البايتات ووقت التشغيل وتقييم حدود الحصة (Quota) والحدود اليومية وحدود وقت التشغيل — بدونها، يتوقف فرض الحدود وعدادات الجلسات المباشرة عن العمل. القيمة الموصى بها هي 5m.

صفحة تسجيل الدخول إلى Hotspot

من تبويب Hotspot يمكنك إدارة صفحة تسجيل الدخول الخاصة بالـ captive-portal: الإبقاء على صفحات MikroTik الافتراضية، أو تطبيق أحد القوالب الجاهزة، أو تطبيق أحد تصاميمك المحفوظة. يتضمن SAMM محرر تصميم مرئيا ومعرض قوالب — خصص صفحة تسجيل الدخول وادفعها مباشرة إلى Hotspot الراوتر.

QoS واع بالتطبيقات

علامة التبويب QoS تحول التطبيقات والمواقع التي يراها SAMM أصلا على الراوتر إلى خطة أولوية تنزيل. اسحب كل تطبيق من المجمع إلى إحدى خانات الأولوية الثماني — الخانة 1 تخدم أولا عند الازدحام، والخانة 8 أخيرا؛ والتطبيقات المتروكة في المجمع لا يجري تشكيلها. اختياريا حد سرعة تنزيل أي تطبيق (على سبيل المثال 10M) وعين سقف تنزيل إجماليا تتنافس عليه الأولوية. التوزيع التلقائي حسب الفئة يرتب كل شيء بنقرة واحدة — المراسلة والمؤتمرات أولا، والتنزيلات الضخمة واختبارات السرعة أخيرا.

عند الدفع، يجمع SAMM الخانات في شجرة طوابير على MikroTik (موسومة بـ SAMM:qos، parent=global) مع قواعد جدار حماية مطابقة لعلامات الرزم، الأعلى أولوية أولا. وهي مبنية على نفس كتالوج Websites & App filter الذي يشغل المراقبة، لذا لا تظهر إلا التطبيقات التي شوهدت فعلا على الراوتر — وإزالة SAMM QoS تجرد الراوتر من كل كائن SAMM:qos، مع ترك عداداتك دون مساس.

معالج الإعداد

يجمع تبويب المعالج (Wizard) كل شيء في تسع خطوات قصيرة، ثم يدفع الإعدادات الكاملة إلى الراوتر دفعة واحدة في النهاية. لا يرسل أي شيء قبل تأكيدك في خطوة المراجعة النهائية.

  1. الترحيب والاكتشاف (Welcome & detect) — يفحص SAMM الراوتر ويعرض ما هو معد مسبقا، بحيث يمكنك تخطي تلك العناصر عند الدفع.
  2. واجهة الـ Bridge — أعط اسما لـ bridge شبكة LAN.
  3. منافذ الـ Bridge — اختر الواجهات الفيزيائية التي ستنضم إلى الـ bridge.
  4. DNS — حدد الـ resolvers الأعلى (إعدادات جاهزة بنقرة واحدة لـ Google وCloudflare وQuad9 وغيرها)، وحجم الـ cache، واختياريا فلتر محتوى DNS.
  5. الإنترنت — أضف وصلة WAN واحدة أو أكثر (Static / DHCP / PPPoE).
  6. RADIUS إلى SAMM — وجه الراوتر إلى مضيف SAMM لديك للمصادقة (Authentication) والمحاسبة (Accounting) وCoA.
  7. الخدمات — اختر ما إذا كان المعالج سينشئ خادم PPPoE أو خادم Hotspot أو كليهما.
  8. تفاصيل PPPoE / Hotspot وجدار الحماية — الـ pools والـ profiles وأوقات الإيجار (lease)، إضافة إلى قواعد الـ firewall وNAT.
  9. المراجعة والدفع — اطلع على القائمة الدقيقة للأوامر التي سترسل، ثم ادفعها جميعها إلى الراوتر.
سرعة كل مشترك تأتي من RADIUS ينشئ المعالج profile واحدا لـ PPPoE / Hotspot — ولا يدفع profile لكل باقة. يسلم SAMM سرعة كل مشترك ضمن رد RADIUS عند تسجيل الدخول، لذا لا تتطلب تغييرات الباقات أي تعديل على الراوتر.

الشبكة & الراوترات

CoA & التغييرات الفورية

CoA (Change-of-Authorization) هو الأسلوب الذي يغير به SAMM جلسة المشترك أثناء اتصاله — لرفع سرعته أو خفضها، أو لقطع اتصاله — دون انتظار إعادة اتصاله.

كيف يصل التغيير إلى مشترك متصل حاليا

لا يدفع SAMM أبدا تغييرا للراوتر مباشرة بنقرة زر. يتبع كل إجراء إداري مسارا آمنا واحدا:

إجراء المسؤول سجل التدقيق نبضة samm-radius صندوق صادر CoA الراوتر
  1. يسجل الإجراء في سجل التدقيق (Audit Log) كأمر في الطابور.
  2. تفرغ خدمة samm-radius الطابور في نبضتها التالية، وتطبق التغيير، و — إذا كان المشترك متصلا — تضيف CoA إلى الطابور.
  3. يفرغ صندوق صادر CoA وترسل الحزمة إلى الراوتر.

الأحداث المعتمدة على الوقت — انتهاء الصلاحية، وحدود نوافذ السرعة، وعمليات إعادة التعيين اليومية — تغذي الصندوق نفسه. الحد الأقصى للتأخير هو نبضة samm-radius واحدة (30 ثانية افتراضيا؛ خفضها من الإعدادات لفرض أكثر صرامة).

CoA الهجين

يرسل SAMM أولا CoA-Update لتغيير الجلسة في مكانها. إذا رفضها الراوتر بعد عدد المحاولات المعد، يتراجع SAMM تلقائيا إلى Disconnect-Request — يعيد المشترك الاتصال ويلتقط الإعدادات الجديدة. تعمل هذه الاستراتيجية الهجينة عبر كل إصدارات firmware MikroTik.

صفحة صندوق صادر CoA

المستخدمون → صندوق صادر CoA هو العرض المباشر لذلك الطابور. samm-radius هو المرسل الوحيد — لا تدفع لوحة الإدارة CoA مباشرة أبدا — ويفرغ الطابور في كل نبضة. تحدث الصفحة تلقائيا كل 30 ثانية.

تتصدر الصفحة ستة عدادات — قيد الانتظار، مرسل، NACK (إعادة المحاولة)، تم، فشل والمجموع. صف الجدول حسب الحالة، أو حسب الإجراء (update أو disconnect)، أو ابحث باسم المستخدم أو IP الـ NAS أو السبب.

الحالةالمعنى
قيد الانتظارفي الطابور، بانتظار النبضة التالية لـ samm-radius
مرسلأرسلت إلى الراوتر، بانتظار رده
nackرفض الراوتر الـ CoA-Update — يعيد SAMM المحاولة، ثم يتراجع إلى قطع الاتصال
تمطبق بنجاح
فشلتخلى عن المحاولة بعد بلوغ حد الإعادات — مرر فوق الشارة لرؤية آخر خطأ

يعرض كل صف المستخدم، والراوتر، والإجراء، وعدد المحاولات، والسبب، وأوقات الإنشاء والإرسال. تتيح لك إجراءات كل صف إعادة المحاولة لحزمة فشلت أو رفضت بـ nack، أو إلغاء حزمة لا تزال جارية، أو فتح الخصائص (Attributes) لفحص خصائص RADIUS الدقيقة التي تحملها الحزمة. تعد شارة الشريط الجانبي الصفوف قيد الانتظار، وتتتبع لوحة المعلومات حالات الفشل خلال 24 ساعة. النظام السليم يبقي هذا الطابور شبه فارغ.

العمليات اليومية

لوحة المعلومات & الجلسات المباشرة

الشاشتان ضمن نظرة عامة هما نقطة بداية كل دوام عمل — لوحة المعلومات لصحة النظام بأكمله، والجلسات المباشرة لمعرفة من المتصل تحديدا الآن.

لوحة التحكم

نظرة عامة → لوحة المعلومات هي الشاشة الرئيسية للمشغل. يضبط محدد الفترة في الأعلى — اليوم، 7 أيام، 14 يوما، 30 يوما، 90 يوما — نافذة مخطط الاتجاه والأرقام المحددة بتاريخ.

بطاقات مؤشرات الأداء الست (KPI)

كل بطاقة هي عداد مباشر واختصار — انقرها للانتقال مباشرة إلى القائمة المصفاة وراء الرقم.

البطاقةتظهرتفتح
متصلون الآنالمشتركون الذين لديهم جلسة RADIUS مباشرة الآنالمستخدمون المصفون إلى متصلون
المشتركون النشطونالحسابات النشطة، مع إجمالي عدد المشتركين أدناهالمستخدمون المصفون إلى نشط
منتهي الصلاحيةالمشتركون الذين انتهى اشتراكهم دون تحديد باقة تاليةالمستخدمون المصفون إلى منتهي الصلاحية
طابور CoAحزم Change-of-Authorization قيد الانتظار، إضافة إلى عدد الحزم التي فشلت في آخر 24 ساعةصندوق صادر CoA
الراوتراتإجمالي سجلات NAS، إضافة إلى عدد السجلات التي يتعذر الوصول إليها حاليامراقب MikroTik
الفواتير غير المدفوعةالفواتير التي لا تزال بحاجة إلى متابعة الدفعالفواتير المصفاة إلى غير مدفوعة

مخطط المستخدمين & الجلسات المباشرة

مخطط خطي يومي يرسم ثلاث سلاسل عبر الفترة المختارة — المستخدمون النشطون، والجلسات المتصلة، والمستخدمون منتهو الصلاحية — بحيث يصبح النمو والتسرب مرئيين بنظرة واحدة.

صحة خط المعالجة (Pipeline)

هذه اللوحة هي نبض محرك فرض السياسات. في نظام سليم تكون الطوابير عند الصفر أو قريبا منه — أي رقم يبقى مرتفعا يشير إلى خدمة عالقة أو راوتر يرفض التغييرات.

المؤشرماذا يعني
samm-radius الطابورحزم CoA قيد الانتظار في انتظار النبضة التالية — يفترض أن تتم خلال ثوان
CoA فاشلة (24 ساعة)صفر في نظام سليم؛ أي رقم غير صفري يعني أن راوترا يرفض حزم CoA
سجل التدقيق قيد الانتظارإجراءات إدارية في الطابور لم تطبق بعد من قبل samm-radius
جلسات مقيدة السرعة (Throttled)مشتركون محتجزون حاليا عند سرعة منخفضة بسبب حد ما — أمر متوقع، ليس خطأ
لقطة الجلساتعدد الجلسات المباشرة — يجب أن يطابق متصلون الآن
الباقات النشطةحجم كتالوج باقاتك
مسار فرض السياسات توضع الإجراءات الإدارية في طابور samm.audit_log؛ تفرغها نبضة samm-radius وتصدر حزم CoA إلى samm.coa_outbox. المسار الكامل موجود في CoA والتغييرات المباشرة.

جداول النشاط الأخير

أربعة جداول تحت المخطط تعطي عرضا متجددا لما حدث للتو، ولكل منها رابط عرض الكل إلى صفحته الكاملة:

  • صندوق صادر CoA الأخير — الإجراء، المستخدم، الحالة (تم / قيد الانتظار / nack / فشل)، عدد المحاولات، السبب، والوقت.
  • الإجراءات الإدارية الأخيرة — الإجراء، الهدف، الجهة التي أطلقته، وما إذا طبق بعد، والوقت.
  • المشتركون الجدد — أحدث الحسابات مع حالتها ووقت آخر مصادقة.
  • الراوترات — كل NAS مع نقطة صحة: قابل للوصول / غير قابل للوصول / لا توجد بيانات.

الجلسات المباشرة

تسرد نظرة عامة → الجلسات المباشرة كل مشترك تبلغ الراوترات حاليا عن اتصاله عبر RADIUS accounting. تحدث الصفحة تلقائيا كل 30 ثانية؛ كما يوجد زر تحديث يدوي في الرأس.

تصفية القائمة

  • بحث — يطابق اسم المستخدم أو الـ Framed IP أو IP الـ NAS، ويتم البحث أثناء الكتابة.
  • الراوتر — قصر القائمة على الجلسات الموجودة على NAS واحد.
  • المقيدون فقط — اعرض فقط المشتركين الذين يبقيهم حد ما على سرعة منخفضة.
  • لكل صفحة — 20 أو 50 أو 100 أو 200 صف.

ما يعرضه كل صف

العمودالمعنى
المستخدماسم المستخدم — رابط إلى صفحة تفاصيل المشترك
Framed IPالعنوان الذي خصصه الراوتر لهذه الجلسة
الراوترالاسم المختصر لـ NAS وعنوان IP الخاص به
الباقةباقة المشترك الحالية
السرعة الفعليةالسرعة المفروضة على الراوتر الآن — سرعة الباقة معدلة بأي نافذة سرعة نشطة. شارة مقيد تعني أن حدا ما يبقي المشترك على سرعة منخفضة.
تنزيل / رفععدادات بايتات مباشرة للجلسة
متصلمنذ متى والجلسة قائمة
بدأتمتى بدأت الجلسة

قطع جلسة

يضع زر قطع الاتصال الموجود على الصف CoA-Disconnect في الطابور لتلك الجلسة بالذات (السبب admin_manual) بعد رسالة تأكيد. يقطع المشترك فورا؛ وإذا كان حسابه لا يزال نشطا فبإمكانه إعادة الاتصال. تتبع الحزمة في صندوق صادر CoA.

العمليات اليومية

التقارير & التحليلات

نظرة عامة → التقارير هي عرض التحليلات — اتجاهات المشتركين، وحركة البيانات عبر الوقت، وأكثر المستخدمين والبطاقات استهلاكا على شبكتك.

اختيار النطاق

كل رقم على الصفحة مرتبط بنطاق تواريخ. اختر إعدادا جاهزا — 7 أيام، 14 يوما، 30 يوما، 90 يوما — أو أدخل تاريخي البداية والنهاية صراحة ثم انقر تطبيق. تغطي طبقة تحميل الصفحة أثناء تنفيذ استعلام طويل المدى كاستعلام 90 يوما.

اتجاهات المشتركين & الجلسات

مخطط خطي بثلاث سلاسل عبر النطاق المختار: المشتركون النشطون، والجلسات المتصلة، والمشتركون منتهو الصلاحية. استخدمه لرصد النمو والتسرب والساعات المزدحمة في شبكتك.

حركة البيانات اليومية

مخطط أعمدة مكدسة لبايتات الرفع والتنزيل لكل يوم. عند تمرير المؤشر فوق يوم تظهر أرقام الرفع والتنزيل إضافة إلى المجموع الكلي في تذييل تلميح الأداة.

قوائم أعلى 10

أربعة جداول تظهر حساباتك الأكثر استهلاكا لحركة البيانات، مرتبة حسب الحجم بالـ GB:

القائمةترتب
أعلى 10 تنزيلا اليومأكبر تنزيل منذ آخر إعادة تعيين يومية
أعلى 10 رفعا اليومأكبر رفع منذ آخر إعادة تعيين يومية
أعلى 10 تنزيلا للشهرأكبر تنزيل خلال هذا الشهر التقويمي
أعلى 10 رفعا للشهرأكبر رفع خلال هذا الشهر التقويمي

حركة البيانات حسب الكيان

جدول مقسم إلى صفحات وقابل للبحث يعرض حركة البيانات لكل حساب. يبدل تبويبان ما يعرضه:

  • المستخدمون — كل مشترك مع اسمه وباقته، ورفع/تنزيل اليوم بالـ MB، ورفع/تنزيل الشهر بالـ GB.
  • البطاقات — كل بطاقة hotspot مع مجموعتها وحالتها ونفس تقسيم حركة البيانات اليوم / الشهر.

يصفي مربع البحث الجدول أثناء الكتابة؛ ويقبل محدد لكل صفحة من 20 إلى 200 صف. كل صف يربطك بصفحة تفاصيل ذلك المشترك أو البطاقة.

التصدير التقارير عرض تحليلي على الشاشة. للحصول على صفوف خام لتحليلها في جدول بيانات، استخدم الأدوات → التصدير / الاستيراد لتنزيل المستخدمين أو الباقات أو NAS كـ CSV / XLSX.

العمليات اليومية

المحاسبة & الفوترة

يتضمن SAMM نظاما كاملا للقيد المزدوج (double-entry bookkeeping) — فواتير، ومصاريف، وإيصالات، ومدفوعات، وموزعين، وأصول ثابتة، وقوائم مالية كاملة. لا حاجة لمنتج فوترة منفصل لدمجه، ولا لمحاسب لإبقاء الدفاتر منضبطة.

لن تتعامل أبدا مع المدين والدائن كل إجراء — تسجيل دفعة، إضافة مصروف، بيع مجموعة بطاقات — يسجل تلقائيا قيد يومية متوازنا في دفتر الأستاذ. أنت تعمل بمصطلحات بسيطة (فواتير، مصاريف، إيصالات)؛ ويمسك SAMM دفاتر القيد المزدوج خلف الكواليس ويثبت توازنها في ميزان المراجعة.

صفحة المحاسبة منظمة في عشرة تبويبات.

نظرة عامة

اللقطة المالية. أربعة أرقام رئيسية في الأعلى:

الرقمالمعنى
النقد المتوفرإجمالي الرصيد عبر جميع حسابات النقد & البنوك
أموال مستحقة لكالمستحقات — فواتير العملاء والموزعين غير المدفوعة
أموال عليك دفعهاالذمم الدائنة — مصاريف غير مدفوعة
أرباح هذا الشهرالدخل ناقص المصاريف للشهر الحالي

في الأسفل: جدول بكل حسابات النقد & البنوك مع رصيد كل منها، ومخطط الدخل مقابل المصاريف خلال آخر 1 أو 2 أو 3 أو 6 أو 12 شهرا.

الفواتير

الفاتورة هي مطالبة مالية تصدرها. انقر فاتورة جديدة واملأ:

الحقلالمعنى
العميلبحث أثناء الكتابة عن الحساب الذي تصدر له الفاتورة
فئة الإيرادأي حساب دخل ترحل إليه المبيعات
تاريخ الإصدار / الاستحقاقتاريخ إصدار فارغ = اليوم؛ تاريخ استحقاق فارغ = تاريخ الإصدار
نسبة الضريبة %تأخذ افتراضيا النسبة الموجودة في الإعدادات → الفوترة
بنود الفاتورةصف واحد أو أكثر من الوصف / الكمية / سعر الوحدة — يحسب المجموع الفرعي والضريبة والمجموع الكلي بشكل مباشر

تنشأ الفواتير أيضا تلقائيا عند تجديد باقة مشترك (من إجراء تجديد الصلاحية أو عبر التجديد التلقائي)، شرط أن يكون للباقة سعر. تصفى القائمة حسب الحالة — غير مدفوعة، جزئية، مستحقة، مدفوعة — وتبحث برقم الفاتورة أو العميل. افتح أي فاتورة لرؤية صفحة تفاصيلها وملف PDF قابل للطباعة؛ يمكن للمشتركين تنزيل نسخهم الخاصة من بوابة العملاء وبوت Telegram.

المصاريف

المصروف هو مال أنفق لتشغيل الـ ISP. يسجل مصروف جديد فئة (حساب المصروف)، والمورد المدفوع له، والمبلغ، وتاريخ التكبد، وتاريخ استحقاق اختياري. لكل مصروف نفس دورة الحياة غير مدفوع / جزئي / مستحق / مدفوع الخاصة بالفاتورة، وصفحة تفاصيل، وسند PDF قابل للطباعة.

الإيصالات & المدفوعات

هذان التبويبان يسجلان النقد الذي ينتقل فعليا — منفصلين عن الفاتورة أو المصروف الذي تسبب فيه.

  • الإيصالات — أموال داخلة: نقد مستلم من عميل أو موزع أو دخل آخر، يدخل إلى أحد حسابات النقد لديك. الفاتورة هي المطالبة؛ والإيصال هو المال الواصل مقابلها.
  • المدفوعات — أموال خارجة: نقد يدفع مقابل مصروف أو لموزع.

تسجيل إيصال أو دفعة يدفع الفاتورة أو المصروف المرتبط نحو مدفوع ويرحل القيد المحاسبي المطابق.

العملاء & مبيعات البطاقات

يسرد تبويب العملاء الرصيد الجاري لكل عميل — أي ما يدين لك به. أما مبيعات البطاقات فتغطي إيرادات Hotspot المدفوعة مسبقا: يتتبع مجموعات البطاقات المباعة والموزعين. يشتري الموزع منك مجموعات بطاقات كاملة على فاتورة، ثم يعيد بيع البطاقات الفردية للمستخدمين النهائيين؛ ورصيده المستحق هو ما لا يزال عليه دفعه لك.

الأصول & حسابات النقد

  • الأصول — سجل الأصول الثابتة (راوترات، مركبات، معدات). يتتبع SAMM قيمتها واستهلاكها عبر الزمن.
  • النقد — أدر حسابات النقد & البنوك، وحسابات رأس المال: حقوق المالك، حيث المساهمة هي مال يضعه المالك في النشاط، والسحب هو مال يخرجه منه. رأس المال ليس إيرادا ولا يظهر أبدا في قائمة الأرباح & الخسائر.

التقارير — القوائم المالية

تبويب التقارير هو عرض المحاسب. خمس قوائم، كل منها بنطاق تواريخ وقابلة للتصدير إلى PDF:

التقريريجيب عن
الأرباح & الخسائرالدخل مقابل المصاريف وصافي الربح خلال نطاق تواريخ. على أساس الاستحقاق — يحسب الدخل عند الفوترة، والمصاريف عند تكبدها، لا عند انتقال النقد.
الميزانية العموميةبتاريخ محدد: ما تملكه (أصول) مقابل ما عليك (التزامات) إضافة إلى حقوق الملكية. شارة متوازنة تؤكد تطابق الجانبين.
التدفق النقديلكل حساب نقدي — الرصيد الافتتاحي، والوارد، والصادر، والرصيد الختامي خلال نطاق.
أعمار الذممالمستحقات والذمم الدائنة القائمة مرتبة في فئات عمرية، لتلاحق الفواتير المتأخرة وتسبق المدفوعات.
متقدمالدفاتر الخام: دفتر الأستاذ العام (كل بند على حساب واحد مع رصيد جار)، وميزان المراجعة (التحقق من توازن الدفاتر)، ودفتر اليومية، وسجل النشاط.
اختبار التوازن في ميزان المراجعة يجب أن يتساوى مجموع عمودي المدين والدائن لكل حساب — وهذا هو الدليل على سلامة الدفاتر. وإن خرج عن التوازن في أي وقت، فهذا يشير إلى خطأ ترحيل يستحق التحقيق.

العمليات اليومية

تذاكر الدعم

يتضمن SAMM مكتب دعم مدمجا. يفتح المشتركون التذاكر من بوابة العملاء أو بوت Telegram، ويمكن للمسؤول فتح تذكرة نيابة عن المشترك، ويعمل فريقك عليها جميعا من المستخدمون → تذاكر الدعم.

طابور التذاكر

يسرد الطابور كل تذكرة — الرقم، العميل، الموضوع، الأولوية، الحالة، تاريخا الفتح وآخر تحديث، وعدد الرسائل. صفه عبر:

  • شارات الحالة — واحدة لكل حالة تذكرة، تحمل كل منها عدادا مباشرا، بحيث يصبح حجم العمل واضحا بنظرة واحدة.
  • الأولوية — عادية أو متوسطة أو حرجة.
  • نشطة / مسحوبة — يمكن للعميل سحب تذكرة لم يعد بحاجة إليها؛ التذاكر المسحوبة تظهر باهتة ومخفية افتراضيا.
  • بحث — برقم التذكرة أو الموضوع أو العميل.

تعد شارة الشريط الجانبي التذاكر المفتوحة بحيث لا يفوت أي شيء.

فتح تذكرة

يتيح تذكرة جديدة للمسؤول فتح تذكرة لعميل مختار — اختر العميل، ثم حدد الموضوع والأولوية والوصف. كما يفتح المشتركون تذاكرهم بأنفسهم من بوابة العملاء أو بوت Telegram.

العمل على تذكرة

افتح تذكرة لقراءة سلسلة المحادثة الكاملة. من هناك يمكنك:

  • الرد على العميل — رسالة عامة يراها المشترك في بوابته ومن خلال بوت Telegram.
  • إضافة ملاحظة داخلية — رسالة للموظفين فقط، مخفية عن العميل، لملاحظات التسليم بين أفراد فريقك.
  • تغيير حالة وأولوية التذكرة.

انقر بزر الفأرة الأيمن على أي صف — أو استخدم زر ⋮ الخاص به — للحصول على نفس إجراءات الحالة والأولوية والرد والملاحظة الداخلية دون مغادرة الطابور.

العمليات اليومية

مركز الإشعارات

يبقي SAMM المشتركين على اطلاع تلقائيا — عبر البريد الإلكتروني وTelegram — ويتيح لك بث الرسائل. تسلم خدمة samm-notification كل شيء عبر طابور مقيد الإيقاع. تتضمن صفحة النظام → مركز الإشعارات ستة تبويبات.

نظرة عامة

تبويب البداية — عدادات مباشرة (في الطابور، قيد الإرسال، أرسلت اليوم، فشلت، تم تخطيها، مستبعدة)، وحالة كل قناة تسليم، وتغذية بأحدث الإشعارات.

القنوات

اضبط كيفية خروج الرسائل من SAMM. يستخدم البريد الإلكتروني حساب إشعارات خاصا به، منفصلا عن SMTP استعادة كلمة المرور في الإعدادات. ويستخدم Telegram توكن البوت. يختار كل مشترك، من بوابة العملاء، القنوات التي يريدها ويمكنه إيقاف الإشعارات كليا.

الرسائل

قوالب الرسائل، مجموعة واحدة لكل حدث. عدل صياغة أي إشعار — تذكيرات التجديد والإيصالات وما إلى ذلك — بحيث تخرج كل رسالة بصوتك ولغتك.

القواعد & المؤقتات

يتحكم هذا التبويب بمتى وكيف تطلق الإشعارات التلقائية. لكل حدث، أنت تتحكم بـ:

  • ما إذا كانت القاعدة مفعلة.
  • تجاهل الاستبعاد — عند تفعيلها، تصل الرسالة إلى كل مشترك حتى لو اختار الاستبعاد. خصصها للرسائل المعاملاتية المهمة.
  • التوقيت — مثلا، كم يوما قبل انتهاء الصلاحية يرسل تذكير التجديد.
  • التسليم & ضبط الإيقاع — يفرغ العامل الطابور دفعة واحدة في كل نبضة؛ ويتحكم حجم الدفعة وفاصل النبضة معا في سرعة خروج الرسائل، بحيث لا يغرق بث كبير خادم البريد لديك أبدا.

تشمل الأحداث التي يمكن لـ SAMM إصدارها بنفسه: تذكير التجديد (قبل انتهاء الاشتراك)، وإشعار انتهاء الصلاحية (عند انقضائه)، وتحذير الحصة (عند اقتراب استنفاد حد البيانات)، وإيصال الدفع (عند تسجيل دفعة)، وتجديد الباقة.

البث

أرسل رسالة لمرة واحدة — نافذة صيانة، تغيير سعر — إلى مجموعة مختارة من المشتركين. يمر البث عبر نفس الطابور المقيد الإيقاع الذي تمر فيه الإشعارات التلقائية.

صندوق الصادر

كل رسالة وضعها SAMM في الطابور أو أرسلها، مع حالة التسليم الخاصة بكل رسالة، بحيث يمكنك تأكيد وصول إشعار إلى المشترك أو معرفة سبب عدم وصوله.

النظام

WireGuard VPN

يستطيع SAMM تشغيل خادم WireGuard VPN على مضيف SAMM — عادة للوصول الإداري عن بعد إلى جهاز SAMM والوصول الإداري إلى أجهزة MikroTik الموجودة خلفه. تدار بالكامل من النظام → VPN

تبويب الخادم

  1. انقر توليد المفاتيح لإنشاء زوج مفاتيح الخادم. يظهر المفتاح العام للخادم فور توليده — يحتاجه العملاء.
  2. حدد منفذ الاستماع (UDP، الافتراضي 51820)، وعنوان نفق الخادم (الـ CIDR على واجهة wg0، الافتراضي 10.254.254.1/24)، ونطاق IP العملاء — عنوانا البداية والنهاية اللذان يوزعهما SAMM تلقائيا على الأقران الجدد.
  3. فعل تفعيل WireGuard VPN وانقر حفظ — يرفع SAMM واجهة wg0. يبقى المفتاح مقفلا حتى وجود مفاتيح الخادم.

تبويب العملاء

انقر إضافة عميل، أعط القرين اسما، وسيخصص له SAMM العنوان التالي من نطاق العملاء. لكل قرين يمكنك تنزيل ملف إعداداته، أو مسح رمز QR بتطبيق WireGuard للجوال، أو نسخ أوامر MikroTik RouterOS الجاهزة لإدخال راوتر إلى الـ VPN. يمكن تفعيل الأقران/تعطيلهم أو حذفهم؛ وتظهر ألوان الحالة ما إذا كان كل قرين متصلا أو غير محدث أو لم ير قط.

إعادة توليد المفاتيح إجراء مدمر تغير إعادة توليد المفاتيح زوج مفاتيح الخادم. كل إعدادات العملاء المنشورة مسبقا تحتوي على المفتاح العام القديم للخادم، وستتوقف عن الاتصال حتى تعيد توزيع الإعدادات المحدثة. تحمي الواجهة هذا الإجراء بنافذة تأكيد بكتابة نص.

النظام

Cloudflare Tunnel

ينشر نفق Cloudflare Zero Trust نظام SAMM على الإنترنت العام دون فتح أي منافذ في جدار الحماية — مفيد عندما يكون مضيف SAMM خلف NAT. يدار من النظام → نفق Cloudflare.

حالة الخدمة

تفتح الصفحة على بطاقة حالة تبلغ عن وضع الـ connector:

الحالةالمعنى
يعملالنفق نشط ويمرر حركة البيانات
متوقفمعد ولكنه غير قيد التشغيل حاليا
غير معدالملف الثنائي موجود — الصق توكنا لإعداده
غير مثبتأعد تشغيل install.sh لتثبيت الملف الثنائي cloudflared

كما تعرض إصدار cloudflared وما إذا كان الـ connector مهيأ للتشغيل التلقائي عند الإقلاع.

إعداد النفق

  1. في لوحة Cloudflare Zero Trust (one.dash.cloudflare.com)، افتح Networks → Tunnels ثم Create a tunnel.
  2. اختر الـ connector من نوع Cloudflared، أعط النفق اسما، واحفظ. في خطوة التثبيت، انسخ التوكن فقط — السلسلة الطويلة بعد --token.
  3. الصقه في SAMM وانقر إعداد النفق. يسلم SAMM التوكن إلى cloudflared ويشغل الـ connector.
  4. ارجع إلى Cloudflare وأضف Public hostname: العنوان الذي اخترته، النوع HTTP، URL localhost:80 (ممرر عبر nginx — موصى به) أو localhost:8000 (مباشرة إلى الـ API).

خلال بضع ثوان تتحول شارة الحالة إلى الأخضر ويصبح SAMM متاحا على اسم المضيف العام. بعد الإعداد، تتيح لك الإجراءات بنقرة واحدة تشغيل الـ connector أو إيقافه أو إعادة تشغيله، أو استبدال التوكن لتدويره، أو إزالة النفق (إجراء يتطلب كتابة REMOVE للتأكيد).

لا منافذ مفتوحة، والتوكن لا يخزن في قاعدة البيانات أبدا ينشئ النفق اتصالا صادرا إلى حافة Cloudflare — ولا يفتح أي منفذ في جدار الحماية على الخادم. يمرر التوكن إلى cloudflared ويخزن تحت /etc/cloudflared/؛ ولا يخزنه SAMM في قاعدة البيانات أبدا. ينتهي TLS عند حافة Cloudflare، لذا يعمل SAMM نفسه عبر HTTP عادي على الـ loopback.

النظام

الإعدادات

تحتوي النظام → الإعدادات على المعلمات الحية القابلة لإعادة التحميل الفوري. تعيد العفاريت (daemons) قراءتها في نبضتها التالية — دون الحاجة إلى إعادة تشغيل الخدمة. الإعدادات منظمة في تبويبات.

المعلمات العامة

الإعدادالافتراضييتحكم بـ
samm-radius interval30 sعدد مرات تقييم الأحداث المعتمدة على الوقت وإرسال حزم CoA
samm-worker interval60 sإيقاع ping الراوتر + مزامنة MikroTik API
فاصل Accounting المرحلي60 sفاصل المحاسبة (Accounting) المدفوع إلى الراوترات
وقت إعادة التعيين اليومية00:00متى تعاد عدادات الاستخدام اليومية
المنطقة الزمنية للخادمUTCالمنطقة الزمنية لنوافذ السرعة وإعادة التعيين اليومية
منفذ CoA الافتراضي3799منفذ UDP الافتراضي لحزم CoA
الحد الأقصى لإعادة محاولات CoA3عدد الإعادات قبل التراجع إلى Disconnect-Request

خفض فاصل samm-radius لفرض أكثر صرامة؛ ارفعه لتقليل الحمل.

تبويب الـ ISP

حدد هوية الـ ISP لديك وارفع شعار الـ ISP. يعاد ضبط حجم الشعار تلقائيا ويظهر على بطاقات Hotspot المطبوعة وملفات PDF للفواتير.

تبويب البريد الإلكتروني

اضبط خادم SMTP المستخدم لـ رموز استعادة كلمة المرور المرسلة إلى المسؤولين والعملاء (المضيف، المنفذ، SSL/STARTTLS، اسم المستخدم، عنوان المرسل، كلمة المرور). انقر اختبار الاتصال للتحقق من بيانات الاعتماد دون إرسال بريد.

حسابا بريد إلكتروني تبويب البريد الإلكتروني هنا مخصص فقط لـ OTP / استعادة كلمة المرور. أما الحساب المستخدم لـ إشعارات العملاء فيضبط بشكل منفصل في مركز الإشعارات.

النظام

المسؤولون & الأدوار

تدير النظام → المسؤولون من يستطيع تسجيل الدخول إلى بوابة الإدارة وما يمكن لكل شخص فعله. تحتوي على تبويبين: المسؤولون والأدوار.

حسابات المسؤولين

أنشئ مسؤولا باسم مستخدم وكلمة مرور وبريد إلكتروني اختياري ودور. من قائمة ⋮ الخاصة بالصف يمكنك تعديل الدور أو كلمة المرور، أو تعطيل الحساب، أو حذفه. السوبر أدمن وحده هو من يستطيع إدارة المسؤولين الآخرين.

الأدوار & الصلاحيات

يمنح الدور صلاحية وصول لكل منطقة. يتمتع دور السوبر أدمن المدمج دائما بصلاحية وصول كاملة ولا يمكن تغييره. أنشئ أدوارا مخصصة للوصول المحدود — يبدأ الدور الجديد بلا أي صلاحية وصول حتى تحدد صلاحياته.

لكل منطقة في SAMM (المشتركون، الباقات، NAS، المحاسبة، الأدوات، الإعدادات، وما إلى ذلك) يضبط الدور على أحد ثلاثة مستويات:

المستوىالمعنى
غير مسموحتخفى المنطقة من الشريط الجانبي كليا
عرضصلاحية قراءة فقط
تعديلصلاحية كاملة — إنشاء وتغيير وحذف

نطاق رؤية البيانات

لكل دور أيضا نطاق. رؤية كل العملاء & البطاقات تعني أن الدور يرى كل سجل؛ وعند إلغاء تفعيلها، يرى مسؤولوه فقط المشتركين والبطاقات التي أنشأوها بأنفسهم — مثالي للموزعين أو موظفي الفروع.

صفحة الترخيص متاحة دائما صفحة النظام → الترخيص مستثناة عمدا من مصفوفة الصلاحيات — فهي مسار الخروج من حالة الإغلاق ويجب ألا تخفى عن أي مسؤول.

النظام

الأدوات

يجمع قسم الأدوات أدوات العمليات بالجملة والصيانة.

النسخ الاحتياطي & الاستعادة

أنشئ لقطة كاملة لقاعدة البيانات قبل أي تغيير كبير. النسخة الاحتياطية هي أرشيف pg_dump مضغوط بـ gzip ومخزن على الخادم، ولكل منها ترويسة خاصة بـ SAMM.

  • إنشاء نسخة احتياطية — اختياريا أضف ملاحظة؛ فعل تخطي الاستخدام & السجل التاريخي للحصول على نسخة أصغر وأسرع تتجاهل جداول السجلات الضخمة.
  • تنزيل نسخة احتياطية إلى جهازك، أو رفع نسخة احتياطية سابقة لـ SAMM إلى الخادم مجددا.
  • الاستعادة تكتب فوق قاعدة البيانات الحالية — محمية بنافذة تتطلب كتابة RESTORE للتأكيد.

منظف السجل التاريخي

احذف نهائيا صفوف السجل والتاريخ القديمة لاسترداد مساحة قاعدة البيانات. اختر إعدادا جاهزا للاحتفاظ وأكد. يقلم المنظف جلسات RADIUS المغلقة، وسجلات post-auth، وتجميعات الاستخدام اليومية، وتاريخ الراوترات/الواجهات، وسجلات التقييد، وقيود التدقيق المطبقة، وصفوف CoA المنتهية. وهو لا يمس أبدا الجلسات المباشرة، أو الأوامر في الطابور، أو حزم CoA قيد الانتظار، أو إجماليات الاستخدام مدى الحياة غير القابلة للتصفير.

خذ نسخة احتياطية أولا يحذف منظف السجل التاريخي نهائيا. خذ نسخة احتياطية قبل التنظيف إذا كنت قد تحتاج إلى البيانات لاحقا.

التصدير / الاستيراد

تصدير واستيراد بالجملة لـ المستخدمين والباقات وNAS بصيغة .csv أو .xlsx. نزل قالبا (الأعمدة الصحيحة مع صف عينة) أو لقطة من البيانات الحالية، املأها، وارفعها مرة أخرى. يفحص كل صف ويعرض على شاشة معاينة — تظهر التكرارات والصفوف غير الصالحة، وتختار ما إذا كنت تريد تخطي التكرارات أو تحديثها في مكانها — قبل أن تكتب أي بيانات.

التغييرات بالجملة

طبق تغييرا واحدا — المالك أو تاريخ الانتهاء أو الحالة أو التجديد التلقائي — على كل مشترك يطابق فلترا، في تشغيل واحد. اختر التغيير، وابن الفلتر (الحالة / الباقة / المالك / البحث)، وراجع القائمة المطابقة، ثم أكد.

الحذف بالجملة

احذف نهائيا العديد من المشتركين أو بطاقات Hotspot دفعة واحدة، مختارين عبر فلتر. يؤدي حذف مشترك أيضا إلى إزالة تاريخ استخدامه وجلساته وسجلات RADIUS الخاصة به وفواتيره، ويقطع أي جلسة مباشرة. محمي بنافذة تتطلب كتابة DELETE للتأكيد.

النظام

اللغات & السمات

اللغات

بوابتا الإدارة والعملاء قابلتان للترجمة بالكامل. تأتي ست لغات مدمجة: الإنجليزية، العربية (من اليمين إلى اليسار)، التركية، الفرنسية، الإسبانية والألمانية. يختار كل مستخدم لغته من الشريط العلوي أو من ملفه الشخصي؛ ويحفظ الخيار لكل حساب.

محرر الترجمات

يستطيع السوبر أدمن تعديل الترجمات مباشرة من النظام → الترجمات — دون إعادة تشغيل ودون تعديل ملفات. ينشئ المحرر أيضا لغات جديدة كليا ويستورد/يصدر مصنفات الترجمة بصيغة .xlsx، بحيث يمكنك تعريب SAMM إلى أي لغة تخدمها.

السمات

يأتي SAMM مع 11 سمة بصرية، فاتحة وداكنة. يختار كل مستخدم سمة من الشريط العلوي؛ تتحدث المعاينة فورا وتحفظ لكل حساب. مصطلحات تكنولوجيا المعلومات لا تترجم أبدا، بحيث تبقى الشاشات التقنية دقيقة في كل لغة.

النظام

سجل التدقيق

النظام → سجل التدقيق هو سجل الإجراءات الإدارية — وطابور الأوامر الذي ينفذها. عندما تعيد تعيين عداد، أو تغير باقة، أو تجدد مشتركا، يكتب SAMM الإجراء هنا بدلا من المس المباشر براوتر يعمل.

يعرض كل قيد الإجراء وهدفه والمسؤول الذي أطلقه ومتى حدث وما إذا تم تطبيقه بعد. تفرغ خدمة samm-radius القيود المعلقة في نبضتها التالية، وعند الحاجة تصدر CoA لتحديث جلسة مباشرة. تعد شارة الشريط الجانبي القيود التي لا تزال معلقة؛ وتتتبع لوحة صحة خط المعالجة (Pipeline) في لوحة المعلومات هذا التراكم.

لماذا الطابور تمرير كل إجراء إداري عبر سجل التدقيق يعني أن التغييرات تطبق من قبل عملية واحدة بالضبط وبترتيب يمكن التنبؤ به — فلا يحدث أبدا تسابق (race) بين بوابة الويب والراوتر.

الترخيص

الترخيص & الباقات

كل تثبيت لـ SAMM مرخص لكل جهاز — تكون الباقة على ذلك التثبيت، لذا يمكنك تشغيل عدة خوادم SAMM، كل منها على باقته الخاصة. تحدد الباقة ثلاثة سقوف رقمية.

الباقةمستخدمو AAAبطاقات HotspotNAS / راوترات
غير مسجل252001
Free1005002
Pro2,0005,0005
Pro Maxغير محدودغير محدودغير محدود

يعمل التثبيت الجديد غير المسجل عند الحد الأدنى. كل ميزة متاحة في كل باقة — الباقة تحدد السقوف فقط. إنشاء مشترك أو بطاقة أو NAS بعد تجاوز السقف يحظر حتى ترقي؛ ولا تفقد أي بيانات أبدا.

التفعيل & الترقية

  1. افتح النظام → الترخيص.
  2. فعل بتسجيل الدخول بحساب SecuryTik الخاص بك — أو استخدم ربط هذا الجهاز، الذي يظهر رمزا تعتمده على samm.securytik.com دون كتابة كلمة المرور على الخادم. يفعل الجهاز على Free.
  3. للارتقاء أعلى، اطلب Pro أو Pro Max من الصفحة نفسها — يقوم مسؤول SecuryTik بالمراجعة والموافقة.

تعيد صفحة الترخيص أيضا فحص الترخيص عند الطلب وتظهر استخدامك الحالي مقابل كل سقف. إلغاء ربط الجهاز يعيد التثبيت إلى الباقة غير المسجلة دون حذف أي بيانات.

إذا انتهت صلاحية ترخيص مدفوع

لا يحذف SAMM البيانات أبدا. الترخيص المنتهي يتدرج للأسفل بسلاسة:

المرحلةماذا يحدث
تحذيرشريط تذكير؛ ويستمر كل شيء في العمل
فترة سماحنافذة قصيرة لإعادة التفعيل؛ يبقى المشتركون متصلين
إغلاق ناعمتتوقف الخدمات الخلفية؛ ويستمر RADIUS بالمصادقة نحو 7 أيام
إغلاق صارمتتوقف الخدمات باستثناء صفحة إعادة التفعيل

إعادة التفعيل في أي مرحلة تعيد تشغيل كل الخدمات تلقائيا — وتبقى بيانات المشتركين وسجلاتهم سليمة.

التحديثات التلقائية

التحديث التلقائي مستقل عن الترخيص — كل الباقات تتحدث، ولا يمنعه ترخيص منتهي الصلاحية أبدا. يتفقد SAMM يوميا وجود إصدار جديد موقع. من النظام → الترخيص يمكنك التبديل بين الإبلاغ (الافتراضي — شريط مع زر تطبيق الآن) والتلقائي (تطبيق دون تدخل). يتحقق من كل تحديث، ويؤخذ منه نسخة احتياطية، ويطبق في مكانه. يمكنك أيضا إعادة تشغيل المثبت في أي وقت — فهو يرقي بطريقة idempotent.

لمشتركيك

بوابة العملاء & الروبوت

يمنح SAMM كل مشترك واجهتين للخدمة الذاتية — بوابة ويب وبوت Telegram — بحيث يمكنه التحقق من الاستخدام والدفع دون التواصل معك.

بوابة العملاء

يسجل المشتركون الدخول من جذر موقع SAMM (/) باسم مستخدم SAMM وكلمة المرور الخاصة بهم. تحتوي البوابة على:

الصفحةما يراه المشترك
نظرة عامةحالة الحساب، الباقة، تاريخ الانتهاء، استخدام اليوم والشهر، وأي فاتورة قائمة
الاستخدام & الجلساتإجمالي التنزيل/الرفع، وميزانية وقت التشغيل، وكامل تاريخ الجلسات
باقاتيالباقة الحالية إضافة إلى كتالوج الباقات المتاحة
فواتيريسجل الفوترة مع تنزيل PDF بنقرة واحدة
تذاكر الدعمفتح تذاكر الدعم ومتابعتها
الملف الشخصيتعديل بيانات التواصل، تغيير كلمة المرور، ضبط اللغة & السمة، إدارة الإشعارات

من الملف الشخصي، يربط المشترك حسابه على Telegram، ويرتب قنوات الإشعارات المفضلة لديه، أو يستبعد نفسه من الإشعارات كليا. وإذا نسي كلمة المرور، يرسل إليه رمز OTP بالبريد الإلكتروني (يتطلب ذلك ضبط تبويب البريد الإلكتروني).

بوت Telegram

تشغل خدمة samm-telegram بوت خدمة ذاتية تفاعليا. يرسل المشترك /start، ويتحقق مرة واحدة باسم مستخدم SAMM وكلمة المرور (يحذف البوت رسالة كلمة المرور فورا)، ثم يستطيع، عبر الدردشة بالكامل:

  • التحقق من باقته وحصته واستخدامه وتاريخ انتهائه
  • عرض الفواتير وتنزيلها بصيغة PDF
  • تحديث ملفه الشخصي وتغيير كلمة المرور
  • فتح تذاكر الدعم ومتابعتها

يسلم البوت أيضا الإشعارات التلقائية — تذكيرات التجديد، إشعارات الانتهاء، تحذيرات الحصة، والإيصالات — للمشتركين الذين ربطوا Telegram.

المرجع

تشغيل SAMM

يتم كل شيء تقريبا من بوابة الإدارة. هذه الصفحة هي المرجع لسطر الأوامر (shell) للمرات النادرة التي تحتاجها فيها.

إدارة الخدمات

# 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

سطر أوامر المسؤول (Admin CLI)

لعمليات سريعة على المشتركين من الـ shell. يوضع كل أمر في طابور سجل التدقيق ويطبق في نبضة 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

ملفات الإعداد

الملفيحتوي
/etc/samm/samm.yamlDSN قاعدة البيانات، وأحجام Connection Pool، ومستوى السجل (log level)
/etc/samm/api.envأسرار جلسة البوابة وإعدادات SMTP لاستعادة كلمة المرور
/etc/samm/secret.keyمفتاح التشفير لكلمات مرور API الراوترات المخزنة

تحفظ هذه الملفات عبر الترقيات ولا يكتب فوقها أبدا عند إعادة تشغيل المثبت. أما المعلمات في وقت التشغيل (إيقاع الحلقات، وقت إعادة التعيين اليومية، منافذ CoA) فتوجد في الإعدادات بدلا من ذلك، وتطبق دون إعادة تشغيل.

تحديث SAMM

إما أن تترك SAMM يحدث نفسه من النظام → الترخيص، أو تعيد تشغيل المثبت — راجع التثبيت → الترقية. كلا المسارين يعيد تطبيق الـ migrations ويعيد تشغيل الخدمات؛ أما إعداداتك وبياناتك فلا تمس.

النسخ الاحتياطي & الاستعادة

استخدم الأدوات → النسخ الاحتياطي & الاستعادة للحصول على لقطة كاملة لقاعدة البيانات قبل أي تغيير كبير. لإعادة البناء على مضيف جديد، ثبت SAMM ثم استعد النسخة الاحتياطية.

المرجع

الأسئلة الشائعة & حل المشكلات

ما أنظمة التشغيل التي يدعمها SAMM؟

Ubuntu 22.04 LTS وUbuntu 24.04 LTS وDebian 12. لينكس بمستوى الخوادم فقط — الإصدارات المكتبية غير مدعومة. يتوقع المثبت وجود systemd وتثبيت PostgreSQL جديد (يتم إعداده لك) وصلاحية root.

هل أحتاج إلى اتصال إنترنت لتشغيل SAMM؟

لا. يعمل SAMM بالكامل على خادمك الخاص ويصادق المشتركين محليا عبر RADIUS. حركة البيانات الصادرة الوحيدة هي نبضة ترخيص دورية إلى خادم تراخيص SecuryTik لكي تبقى باقتك مصادقا عليها.

هل يمكنني تشغيل SAMM على السحابة، أم يجب أن يكون on-prem؟

كلا الخيارين يعمل. معظم المشغلين يشغلونه on-prem إلى جانب راوترات الـ core؛ والبعض يشغله على VM سحابي صغير مع نفق Cloudflare Zero Trust للعودة. الشرط الوحيد هو أن تستطيع راوترات MikroTik الوصول إلى خادم SAMM على منافذ RADIUS (1812/1813 UDP)، وأن يستطيع SAMM الوصول إلى الراوترات عبر MikroTik API.

هل علي إعادة تشغيل FreeRADIUS عند إضافة راوتر أو إزالته؟

لا. يحلل SAMM عملاء NAS ديناميكيا من قاعدة البيانات، لذا إضافة راوتر أو تعديله أو إزالته في MikroTik → NAS يصبح ساري المفعول دون إعادة تشغيل.

ما مدى سرعة سريان تغيير باقة أو إعادة تعيين عداد؟

توضع الإجراءات الإدارية في الطابور وتطبق من قبل خدمة samm-radius في نبضتها التالية — خلال 30 ثانية افتراضيا. إذا كان المشترك متصلا، يرسل SAMM أيضا CoA مباشرا لتحديث الجلسة. خفض فاصل samm-radius في النظام → الإعدادات لتوقيت أكثر إحكاما.

ماذا يحدث لبياناتي إذا انتهت صلاحية الترخيص المدفوع؟

لا يحذف أي شيء أبدا. ينتقل الترخيص المنتهي عبر مراحل التحذير، ثم المهلة، ثم القفل المرن (يستمر RADIUS بالمصادقة لحوالي أسبوع)، وأخيرا القفل التام. إعادة التفعيل في أي مرحلة تعيد تشغيل جميع الخدمات مع الحفاظ على كافة البيانات سليمة.

هل SAMM مجاني؟ وما الذي يضيفه إصدار Pro؟

الفئة المجانية مجانية للأبد وتشمل جميع الميزات. لا يفتح إصدارا Pro وPro Max ميزات جديدة، بل يرفعان الحدود القصوى لمستخدمي AAA وبطاقات الـHotspot والموجهات. راجع الترخيص & الفئات.

أحد المشتركين لا يستطيع المصادقة، من أين أبدأ؟

تأكد من أن السر المشترك لـRADIUS على الموجه مطابق تماما لسجل NAS، وأن الموجه مفعل لـRADIUS الخاص بـPPP / Hotspot، وأن حساب المشترك فعال وغير منتهي. راقب journalctl -u samm-api -f وسجل FreeRADIUS، وتحقق من قدرة الموجه على الوصول إلى مضيف SAMM عبر UDP على المنفذين 1812/1813.

بحاجة إلى مساعدة إضافية؟

راسلنا على [email protected] للإبلاغ عن خلل أو طلب ميزة جديدة.