Dokumentation

SAMM Dokumentation

Das vollständige Betreiberhandbuch — von der ersten Installation bis zum täglichen Betrieb.

25 Themen 8 Abschnitte Ein-Befehl-Installation
Schnellinstallation

In Minuten online, mit einem Befehl.

Führen Sie eine einzige Zeile auf einem frischen Ubuntu- oder Debian-Server aus — der Bootstrapper holt das neueste Release und installiert den gesamten SAMM-Stack für Sie.

Vollständige Installationsanleitung lesen
install.sh — bash
curl -fsSL https://samm.securytik.com/install.sh | sudo bash
Playlist Videokurs SAMM von der Installation bis zum täglichen Betrieb ansehen — ein kompletter Videokurs Eine kostenlose Schritt-für-Schritt-YouTube-Playlist, die Sie durch die Installation von SAMM und den täglichen Betrieb führt — dieselben Themen wie in diesem Handbuch, als Video. Auf YouTube ansehen

Erste Schritte

Übersicht & Architektur

SAMM — S ecuryTik A ctive M ikrotik M anager – ist eine vollständige ISP-Verwaltungsplattform für MikroTik PPPoE & Hotspot-Netzwerke. Ein Installationsprogramm verwandelt einen nackten Linux -Server in einen vollständigen AAA. Abrechnungs- und Abonnentenverwaltungssystem.

Für wen SAMM gedacht ist

SAMM wurde für Mobilfunk-ISPs, Glasfaserbetreiber und Hotspot-Anbieter entwickelt MikroTik RouterOS . Wenn Sie Abonnenten über PPPoE, Hotspot oder IPoE/DHCP authentifizieren und dies benötigen Erzwingen Sie Geschwindigkeitsstufen, Datenobergrenzen, Ablaufdaten und Abrechnung – SAMM erledigt alles von dort aus ein Bildschirm.

IPoE/DHCP-Teilnehmer werden anhand ihrer DHCP Option 82-Leitungs-ID (der physischen) identifiziert Zugriffsport (auf professionelle ISP-Art) oder Geräte-MAC und das Radius-Passwort des DHCP-Servers einfach das gemeinsame RADIUS-Geheimnis des Routers, sodass nichts extra bereitgestellt werden muss.

IPv6 Dual-Stack ist eine Opt-in-Option: Jeder Abonnent kann IPv6 erhalten neben IPv4. Aktivieren Sie es im Router-Assistenten und wählen Sie das delegierte Präfix (DHCPv6-PD). Länge – standardmäßig /56 oder irgendwo zwischen /48 und /64 – und die zu verteilenden IPv6-Blöcke. Auf jedem Access-Accept SAMM gibt einen WAN-IPv6-Pool plus ein an den Abonnenten delegiertes Routing-Präfix zurück LAN, also unterteilt der eigene Router des Kunden (im Route-Modus) es in /64s und führt SLAAC dafür aus ihre Geräte – das standardmäßige ISP-Präfix-Delegierungsmodell. Es funktioniert mit PPPoE, Hotspot und IPoE, Für Geschäftskunden kann pro Abonnent ein statisches IPv6-Präfix festgelegt werden.

So funktioniert es

SAMM hält den Hot-Pfad nahe an der Datenbank. FreeRADIUS behandelt alle Authentifizierungs- und Abrechnungspaket; bei jedem Buchhaltungs-Interim-Update, das es abruft PostgreSQL-Funktionen dienen direkt dazu, die Nutzung zu akkumulieren und Grenzwerte auszuwerten – es gibt keine Python-Roundtrip, während Abonnenten online sind.

Vier Ausführungsebenen arbeiten über eine einzige Datenbank zusammen:

  • 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.

Die fünf Dienste

DienstRolle
samm-apiAdmin-Portal + Kunden-Self-Service-Portal + REST API
samm-radiusLeert den CoA-Postausgang; führt Ablauf-/Tagesreset-/Geschwindigkeitsfenster-Sweeps durch
samm-workerPingt Router; synchronisiert MikroTik-Gerätemetadaten über die API
samm-notificationLiefert E-Mail- & Telegram-Benachrichtigungen über eine gedrosselte Warteschlange
samm-telegramFührt den interaktiven Telegram-Self-Service-Bot aus

Was SAMM macht

AAA-Kern

PPPoE & Hotspot-Authentifizierung, benutzerbasierte Geschwindigkeitsdurchsetzung, hybrides CoA.

Tarife & Limits

Geschwindigkeitsstufen plus vier unabhängige Limits und geplante Geschwindigkeitsfenster.

Abonnenten

PPPoE-, Hotspot- und IPoE/DHCP-Nutzer plus vorausbezahlte Hotspot-Gutscheinkarten mit druckbaren PDFs.

Abrechnung

Tarifbasierte Preisgestaltung, automatische Rechnungen, doppelte Buchführung für Quittungen/Zahlungen/Ausgaben.

Self-Service

Ein Kunden-Webportal und ein Telegram-Bot für Nutzung, Rechnungen und Tickets.

Betrieb

Live-MikroTik-Inventar, rollenbasierte Administratoren, Sicherung & Wiederherstellung, Massen-Tools.

System

Integriertes WireGuard VPN, Cloudflare Tunnel, acht Sprachen, thematisch anpassbare Benutzeroberfläche.

Benachrichtigungen

Verlängerungs-, Ablauf-, Kontingent- und Quittungswarnungen per E-Mail und Telegram.

Der Rest dieses Handbuchs ist eine Anleitung für jeden dieser Bereiche. Nutzen Sie das Menü links oder beginnen Sie mit Installation.

Erste Schritte

Installation

SAMM installiert alles, was es braucht – FreeRADIUS , PostgreSQL, nginx, WireGuard , cloudflared und die fünf SAMM -Dienste – in einem Schritt. Das Installationsprogramm ist idempotent : Durch erneutes Ausführen wird eine vorhandene Installation aktualisiert und Überschreibt niemals Ihre Konfiguration oder generiert Ihr Datenbankkennwort neu.

SAMM läuft überall – wählen Sie den Installationspfad, der zu Ihrem Netzwerk passt:

Voraussetzungen

  • Ein frischer Server: Ubuntu 22.04 / 24.04 / 26.04 LTS oder Debian 12 / 13. Nur Server-Linux — Desktop-Varianten werden nicht unterstützt.
  • Root-/sudo-Zugriff und eine Internetverbindung.
  • systemd und ein Host, auf dem PostgreSQL lokal installiert werden kann (eine Instanz wird für Sie eingerichtet).

Installation

Option A — mit einem Befehl installieren

Führen Sie auf dem Server aus:

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

Dieses Bootstrap-Skript lädt das neueste SAMM-Release-Paket von GitHub herunter, entpackt es und führt das vollständige Installationsprogramm automatisch aus. In wenigen Minuten erledigt.

Ist github.com in Ihrem Land gesperrt, verwenden Sie stattdessen den Cloudflare-Mirror — derselbe Installer, nichts wird von GitHub geladen. (Der Standardbefehl oben erkennt ein gesperrtes GitHub und wechselt selbst auf diesen Mirror.)

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

In beiden Fällen öffnen Sie nach Abschluss der Installation das Admin-Portal und melden sich mit diesen Zugangsdaten an:

Login-URLhttp://<your-server>/admin · Benutzernameadmin · Passwortadmin

Ändern Sie das Admin-Passwort sofort nach Ihrer ersten Anmeldung.

Installation

Option B — manuelle Installation aus einem Release-Paket

Laden Sie die neueste samm-<version>.tar.gz von der GitHub-Releases-Seite herunter, dann auf dem Server:

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

Sie können auch aus einer auf einem anderen Rechner erzeugten Zip-Datei deployen — das Installationsprogramm rsynct die Quelle selbst nach /opt/samm:

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

Oder klonen Sie das Repository nach /opt/samm und führen Sie sudo bash /opt/samm/install.sh aus.

In beiden Fällen öffnen Sie nach Abschluss der Installation das Admin-Portal und melden sich mit diesen Zugangsdaten an:

Login-URLhttp://<your-server>/admin · Benutzernameadmin · Passwortadmin

Ändern Sie das Admin-Passwort sofort nach Ihrer ersten Anmeldung.

Installation

Option C – Installation mit Docker Compose

Wenn Sie SAMM lieber als Container ausführen möchten – dasselbe Produkt, anders verpackt –\n Verwenden Sie die Docker Compose-Distribution unter github.com/mhdhaidarah/samm-docker .\n Auf jedem Host mit Docker verfügbar:

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

Das installiert Docker falls nötig, legt eine docker-compose.yml in /opt/samm-docker/ ab — mit bereits eingetragenem starkem zufälligem Datenbank-Passwort — und startet den Stack. Das Image mhdhaidarah/samm wird aus demselben kompilierten Bundle gebaut wie die Bare-OS-Installation — konstruktionsbedingt closed source.

Multi-Arch — derselbe Tag wird für linux/amd64 und linux/arm64 ausgeliefert, und die richtige Variante wird automatisch aus dem Tag gewählt: docker pull auf jedem Docker-Host (Intel/AMD, ARM-Server, Apple-Silicon-Mac) und MikroTik RouterOS 7.23+ auf dem Router selbst. Eine Datei, jede Plattform.

Auf Hosts, auf denen das Weiterleiten von curl an bash nicht zulässig ist (gesperrte Boxen, strenge Egress-Richtlinien), können Sie die betriebsbereite Compose-Datei direkt abrufen:

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

Einige Funktionen sind noch nicht in der Docker -Variante enthalten (gestufte Lizenzsperre, dynamisches FreeRADIUS -Neuladen).\n Die integrierten Admin-Seiten WireGuard und Cloudflare Tunnel sind in der Docker -Variante absichtlich ausgeblendet – sie verwalten systemd-Dienste auf Hostebene, die nicht aus dem Container heraus erreichbar sind. Wählen Sie oben Option A oder B aus, wenn Sie diese integriert benötigen, oder führen Sie cloudflared / wg-quick auf dem Docker -Host direkt neben SAMM aus. Siehe die Docker Variant's README für die vollständigen v1-Vorbehalte und den manuellen Installationspfad.

Unter Windows ( Docker Desktop) – nur zur Evaluierung

Nicht für die Produktion empfohlen. Windows-Ruhezustand/Ruhezustand/Deckel schließen stoppt die Behälter; boot-restart wird nur ausgelöst, wenn WSL startet (nicht beim Windows-Start); die Der Cron für die tägliche automatische Aktualisierung wird nur ausgeführt, solange die WSL aktiv ist. Nutzen Sie es dann zur Evaluierung/Demo Stellen Sie die Produktion auf einer Linux VM (Hyper-V, Proxmox, ESXi) oder einer kleinen physischen Box (z. B. einem NUC, auf dem Ubuntu Server ausgeführt wird).

Installieren Docker Desktop für Windows (ermöglicht die Einrichtung des WSL2-Backends beim ersten Start).\n Dann greifen Sie aus PowerShell – kein WSL-Terminal erforderlich – auf das Compose-Bundle und starten Sie den Stack:

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

Sehen Sie sich den Stapelstart in Docker Desktop → Container an – die Gruppe samm wird auf 8 Dienste erweitert. Sobald alle grün sind, öffnen Sie das Admin-Portal und melden Sie sich mit diesen Anmeldeinformationen an:

Login-URLhttp://localhost:8000/admin · Benutzernameadmin · Passwortadmin

Ändern Sie das Admin-Passwort sofort nach Ihrer ersten Anmeldung.

Wenn ein echter MikroTik -NAS diesen Windows-Host für RADIUS erreicht, lassen Sie UDP 1812 + 1813 über die Windows-Firewall zu:

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

Entfernen: docker compose down -v aus dem Installationsverzeichnis (das -v löscht das Postgres-Volume und den Fernet-Schlüssel – sichern Sie sie zuerst, wenn Sie Daten hinzugefügt haben).

Installation

Option D — Installation auf einem MikroTik-Router (RouterOS 7.23+)

Dasselbe SAMM, kein Linux-Rechner nötig. Wenn Ihr MikroTik-Gerät das container-Paket unterstützt und ein USB-Laufwerk oder eine microSD hat, können Sie den gesamten Stack direkt auf dem Router ausführen — mit der gleichen docker-compose.yml wie überall sonst. RouterOS 7.23+ zieht die richtige CPU-Architektur automatisch aus den Multi-Arch-Image-Tags, es gibt also nichts Router-Spezifisches herunterzuladen.

Unterstützt: jeder Container-fähige MikroTik Router – RB5009, hAP ​​ax², CCR2004-1G-12S+2XS, CCR2116, CCR2216, L009 und ähnliche (arm64), plus x86 RouterOS und CHR (amd64). Nicht unterstützt: armv7-/mipsbe-/smips-/tile-/ppc-Geräte (hEX, RB750, ältere RB-Modelle) – keine Containerunterstützung oder zu wenig RAM/CPU für den Stack von SAMM . RouterOS 7.23 oder neuer ist erforderlich (ältere Versionen können die Architektur nicht aus einem Multi-Arch-Tag auswählen).

1. Bereiten Sie den Router vor

Installieren Sie das Paket container (aus extra_packages.zip auf mikrotik.com/download — das passende container-*.npk über Files hochladen, dann neu starten). Aktivieren Sie dann den Container-Modus (einmalig — er wird erst nach einem harten Stromreset aktiv, nicht durch einen Soft-Reboot):

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

2. Formatieren und mounten Sie die Festplatte (ext4)

Stecken Sie ein USB-Laufwerk oder eine microSD-Karte ein (≥ 8 GB empfohlen – Postgres + Bildebenen summieren sich). Auf dem Router:

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

Überprüfen Sie nach der Formatierung, ob die Festplatte bereitgestellt und beschreibbar ist:

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

3. Compose-Datei kopieren

Eine Datei für jede Plattform. Ersetzen Sie change-me-strong-random-string (das Postgres-Passwort — überall denselben starken Wert) und change-me-random-token. Dann in WebFig/WinBox: Container → Apps → + New → YAML, einfügen, die ext4-Disk aus Schritt 2 als Speicher setzen, absenden. RouterOS 7.23+ zieht die richtige CPU-Architektur automatisch aus den Image-Tags.

Hängt bei "waiting for reverse proxy"? Deaktivieren Sie unter RouterOS 7.23+ im Apps-Dialog Use HTTPS und deployen Sie erneut — diese Option steuert den Web-UI-Proxy der App, nicht den Image-Pull.
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: 30s
    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

4. Überprüfen und verbinden Sie MikroTik mit SAMM

Sobald die SAMM -Container ausgeführt werden, öffnen Sie das Admin-Portal in einem Browser und melden Sie sich mit diesen Anmeldeinformationen an:

Login-URLhttp://<router-ip>:8000/admin · Benutzernameadmin · Passwortadmin

Ändern Sie das Admin-Passwort sofort. RADIUS-Authentifizierung + Accounting werden auf UDP 1812 + 1813 auf dem Router selbst bereitgestellt, sodass der MikroTik-RADIUS-Client auf 127.0.0.1 mit dem in System → RADIUS festgelegten gemeinsamen Geheimnis verweisen kann.

Experimenteller Bereitstellungspfad. Die Containerfunktion von RouterOS ist schlanker als die von Docker Compose – Dienstnamen-DNS, Abhängigkeitsreihenfolge ( depends_on ) und Live-Neustarts verhalten sich anders. Wenn sich der Stack auf Ihrer Hardware nicht richtig verhält, greifen Sie auf die Ausführung von Docker auf einer kleinen Linux -Box (NUC, Pi 4, Linux VM) neben MikroTik zurück. Dort funktioniert dieselbe Compose-Datei mit vollständiger Compose-Semantik.

5. Aktualisieren – manuell sichern und wiederherstellen

Durch das Aktualisieren einer MikroTik -Container-App wird Ihre Datenbank gelöscht. RouterOS kann die Version einer installierten App nicht ändern – die einzige Möglichkeit besteht darin, sie zu entfernen app und fügen Sie sie erneut hinzu. Durch das Entfernen wird alles gelöscht, was in der App gespeichert ist, einschließlich SAMM Datenbank. Erstellen Sie ein Backup und laden Sie es auf Ihren Computer herunter, BEVOR Sie es entfernen App. Ein auf dem Router verbleibendes Backup wird zusammen mit allem anderen gelöscht.

So verschieben Sie eine MikroTik -Containerinstallation in eine neue Version:

  1. Gehen Sie in SAMM zu Extras → Backup , erstellen Sie ein Backup und Laden Sie die Datei auf Ihren Computer herunter .
  2. Entfernen Sie auf dem Router die App und fügen Sie sie mit der neuen erneut hinzu Version.
  3. Öffnen Sie die neue Datei SAMM , gehen Sie zu Extras → Sicherung und stellen Sie die Datei wieder her Datei, die Sie heruntergeladen haben.

Dies gilt nur für den MikroTik -Container. Am Docker ( Linux , Windows oder eine Linux VM) ein Update ist dann docker compose pull docker compose up -d und Ihre Daten bleiben unberührt – die Volumes befinden sich außerhalb Container und überleben.

Installation

Option E — SAMM Server ISO (Appliance-Installation)

Die SAMM Server ISO macht aus jeder leeren Maschine oder VM einen fertigen SAMM-Server: booten, auf dem einzigen angezeigten Bildschirm DHCP oder eine statische IP wählen, bestätigen — fertig. Sie installiert Ubuntu Server 24.04 LTS (minimiert), nennt den Host samm-server und lädt und installiert beim ersten Start automatisch das neueste SAMM-Release — die ISO veraltet nie. Die Konsole zeigt einen SAMM-Bootsplash und ein Login-Banner mit der IP des Servers, der Adresse des Admin-Panels und den Standard-Zugangsdaten; der Befehl samm-tools bietet direkten Zugriff auf die Wartungswerkzeuge (Health-Check, Datenbank-Backup/-Restore, Admin-Passwort-Reset).

Die ISO löscht die erste Festplatte der Maschine. Booten Sie sie nur auf Hardware oder einer VM, die für SAMM bestimmt ist. Ist die Maschine während der Installation offline, schließt sich die Einrichtung selbst ab, sobald Internet verfügbar ist.

Schreiben Sie sie auf einen USB-Stick (Rufus, balenaEtcher oder dd) oder hängen Sie sie an eine VM, booten Sie und beantworten Sie die Netzwerkfrage. Standard-Logins nach der Installation — Panel: admin / admin, OS: samm / samm oder root / sammändern Sie alle.

SAMM Server ISO herunterladen 2.2 GB

SHA-2568b6d57e286a4c0524d96b5b4970b57079113e000fc8229f94360410c12f5102e

Installation

Installer-Referenz

Nicht-interaktive Optionen

Alle Eingabeaufforderungen können mit Umgebungsvariablen vorab beantwortet werden, sodass das Installationsprogramm unbeaufsichtigt laufen kann:

VariableWirkung
DB_PASSDieses Datenbankpasswort anstelle eines automatisch generierten verwenden (nur bei Erstinstallation)
CF_TOKENCloudflare-Tunnel-Connector mit diesem Zero-Trust-Token installieren
SAMM_HTTP_PORTnginx-Lauschport erzwingen (überspringt die Port-80-Erkennungsaufforderung)
SAMM_VERBOSE1 streamt rohe Befehlsausgabe anstelle des Fortschrittsbalkens
NO_COLOR1 deaktiviert farbige Ausgabe
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

Was das Installationsprogramm einrichtet

Das Installationsprogramm wird als farbige Live-Fortschrittsanzeige ausgeführt – ein Prozentbalken und ein Checkliste pro Phase. Die Rohausgabe jeder Phase wird erfasst /var/log/samm-install.log ; Bei einem Fehler werden die letzten 30 Zeilen gedruckt.

KomponenteDetails
FreeRADIUS 3Mit PostgreSQL-Backend und dynamischen NAS-Clients konfiguriert; validiert mit freeradius -CX
PostgreSQLDatenbank, Schema und alle SQL-Migrationen angewendet — jede Migrationsdatei ist idempotent
Python venvAlle Abhängigkeiten werden aus requirements.txt gebaut; Übersetzungskataloge kompiliert. Passt das Python der Distribution nicht zum kompilierten Bundle, lädt der Installer automatisch einen passenden Standalone-Interpreter nach /opt/samm/runtime
nginxReverse-Proxy wird additiv hinzugefügt — bestehende Sites werden nie entfernt. Verwendet Port 80 wenn frei; sonst wird ein alternativer Port abgefragt
5 servicessamm-api, samm-radius, samm-worker, samm-notification, samm-telegram — alle als systemd-Einheiten aktiviert
WireGuardPakete installiert; später konfiguriert unter System → VPN
cloudflaredBinärdatei wird immer installiert; das Tunnel-Token ist bei der Installation optional oder wird später unter System → Cloudflare Tunnel hinzugefügt

Alle Anmeldedaten — das Datenbankpasswort und die Sitzungs-Signaturschlüssel — werden bei der ersten Installation automatisch generiert.

Interaktive Aufforderungen

Alle Aufforderungen erfolgen vorab, bevor die Installation beginnt:

  • Cloudflare-Token — fügen Sie ein Zero-Trust-Connector-Token ein, um SAMM ohne offene Ports online zu veröffentlichen, oder drücken Sie Enter, um es zu überspringen und später zu konfigurieren.
  • HTTP-Port — wenn Port 80 bereits belegt ist, lässt das Installationsprogramm diese Sites unberührt und fragt nach einem alternativen Port (Standard 8080).

Installationszusammenfassung

Wenn das Installationsprogramm fertig ist, druckt es eine Zusammenfassung mit der Admin-URL, dem Standard- Login, dem gewählten HTTP-Port, den Datenbank-Anmeldedaten und den Konfigurationspfaden:

============================================================
  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
============================================================

Aktualisieren

Zum Aktualisieren laden Sie den neuen Quellcode und führen das Installationsprogramm erneut aus:

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

Durch die erneute Ausführung wird die Quelle erneut synchronisiert, der Venv aktualisiert, alle Migrationen erneut angewendet. lädt die FreeRADIUS - und Nginx-Konfigurationen neu und startet jeden Dienst neu. Deine Konfiguration Dateien und der bei der Erstinstallation gewählte HTTP-Port bleiben behalten .

Tipp SAMM kann sich auch selbst aktualisieren – siehe Lizenzierung & Aktualisierungen .\n Aktivieren Sie automatische Updates oder wenden Sie sie bei Bedarf über System → Lizenz an.
Air-Gapped & Remote-DB SAMM liefert nur SAMM – FreeRADIUS , PostgreSQL, Nginx und der Rest werden abgerufen unter Installationszeit von Upstream-Apt-Repos, daher müssen Air-Gap-Installationen diese vorab bereitstellen Pakete. Legen Sie für ein Remote-PostgreSQL den DSN in /etc/samm/samm.yaml fest. nach der Installation.

Erste Schritte

Erste Schritte

Fünf kurze Aufgaben bringen eine neue Installation auf den Punkt, an dem Abonnenten sich verbinden und abgerechnet werden können.

1 · Erste Anmeldung

  1. Öffnen Sie http://<your-server>/admin/ (verwenden Sie den HTTP-Port von Installationszusammenfassung, wenn sie nicht 80 ist) oder Ihre Cloudflare -Tunnel-URL.
  2. Melden Sie sich mit admin / admin an.
  3. Ändern Sie das Passwort sofort unter System → Admins oder über das Profilmenü in der oberen Leiste.

2 · Ersten Router hinzufügen

  1. Gehen Sie zu MikroTik → NAS und klicken Sie auf Router hinzufügen.
  2. Geben Sie die IP des Routers, einen Kurznamen und ein RADIUS-Shared-Secret ein. Für MikroTik- Geräte können Sie optional API-Anmeldedaten für die Live-Gerätesynchronisation hinzufügen.
  3. Fügen Sie auf dem MikroTik einen RADIUS-Server hinzu, der auf den SAMM-Host (Ports 1812/1813) zeigt, mit demselben Shared Secret, und aktivieren Sie RADIUS für PPP / Hotspot.

Es ist kein FreeRADIUS Neustart erforderlich – SAMM löst NAS-Clients dynamisch aus dem auf\n Datenbank. Das vollständige Verfahren finden Sie unter Router (NAS) .\n oder lassen Sie den Einrichtungsassistenten konfigurieren MikroTik für Sie.

3 · Tarif erstellen

Ein Plan definiert die Geschwindigkeit, die Limits und den Preis, den Sie verkaufen. Gehe zu Benutzer → Pläne → Neuer Plan . Vollständige Feldreferenz: Pläne & Grenzen .

4 · Abonnenten hinzufügen

Gehen Sie zu Benutzer → Neukunde und geben Sie die Anmeldedaten ein\n Anmeldeinformationen und wählen Sie einen Plan aus. Der Teilnehmer kann sich sofort verbinden. Für Prepaid\n Hotspot-Zugriff, generieren Sie stattdessen Gutscheinkarten .

5 · Lizenz aktivieren

Bei einer Neuinstallation wird unregistriert mit einer Mindeststufe ausgeführt. Offen System → Lizenz und aktivieren, um die Beschränkungen aufzuheben – siehe Lizenzierung & Ebenen .

Täglicher Rhythmus Router hinzufügen → Pläne erstellen → Abonnenten oder Karten hinzufügen → ansehen Dashboard → Zahlungen erfassen unter Buchhaltung .

Erste Schritte

Von einem anderen System migrieren

Sie betreiben bereits ein anderes RADIUS-Abrechnungssystem? SAMM liest dessen Daten und legt Ihre Tarife und Abonnenten neu an, sodass Sie nichts erneut eingeben müssen. Abonnenten behalten ihr bestehendes Dienstpasswort und ihr Ablaufdatum und melden sich damit genau wie bisher an.

Gehen Sie zu Werkzeuge → Export / Import und wählen Sie Ihr altes System unter Von einem anderen System migrieren. Wie der übrige Werkzeuge-Bereich ist die Funktion nur für Superadmins verfügbar.

Was hochzuladen ist

Altes SystemDateiWoher es stammt
SAS4 / Radius Manager .sql oder .sql.gz Eine MySQL-Sicherung der alten Datenbank
Super Speed Radius .sql oder .sql.gz Eine MySQL-Sicherung der alten Datenbank
Pro Radius .xlsx oder .csv Deren exportierte Abonnentenliste — dieses System bietet keine Sicherung an

Datenbanksicherungen sind oft mehrere Gigabyte groß; das ist in Ordnung, laden Sie die Datei unverändert hoch. Komprimierte Sicherungen müssen vorher nicht entpackt werden.

So funktioniert es

  1. Die Datei hochladen. Es wird noch nichts geschrieben.
  2. Die Vorschau prüfen. Sie listet die Tarife und Abonnenten auf, die angelegt würden, weist auf alles hin, was übersprungen oder korrigiert werden musste, und prüft die Gesamtzahl gegen Ihre Lizenz, bevor Sie bestätigen.
  3. Wählen, was mit bereits vorhandenen Benutzernamen geschieht in SAMM — überspringen und den SAMM-Datensatz behalten, oder Name und Kontaktdaten aus dem alten System aktualisieren.
  4. Importieren. Jede Zeile wird unabhängig geschrieben, sodass eine fehlerhafte Zeile nie den Rest zurückrollt.

Was übernommen wird

  • Tarife — Name, Geschwindigkeiten, Preis, Laufzeit und Datenkontingent, soweit das alte System sie erfasst.
  • Abonnenten — Benutzername, Dienstpasswort, Name, Kontaktdaten, Ablaufdatum, Tarif, statische IP und MAC.
  • Im alten System deaktivierte Abonnenten bleiben deaktiviert.

Abrechnung, Rechnungen, Prepaid-Karten, Tickets, Buchhaltung und Admin-Protokolle werden bewusst nicht importiert — sie gehören zum Datenmodell des alten Systems und lassen sich selten sauber übertragen.

Werte, die nicht zu ihrer Spalte passen

Echte Datenbanken sind unordentlich: eine Adresse im E-Mail-Feld, eine Notiz im Mobilfeld, eine Telefonnummer, die auf einer arabischen Tastatur geschrieben wurde. SAMM prüft jeden Wert daraufhin, was seine Spalte enthalten soll. Alles, was nicht passt, bleibt außerhalb dieses Feldes und wird stattdessen in den nur für Admins sichtbaren Notizen des Abonnenten gespeichert, versehen mit seiner Herkunft — so geht nichts verloren und kein Feld wird verunreinigt. Die Vorschau nennt Ihnen die Anzahl der betroffenen Werte.

Pro Radius im Detail

Pro Radius exportiert Abonnenten, aber keine Tarife. SAMM leitet die Tarife daher aus der Diensteinstufung jedes Abonnenten ab und entnimmt die Geschwindigkeit dem Namen (ein Dienst namens „4MBPS“ wird zu einem 4-Mbit/s-Tarif). Drei Angaben fehlen in dieser Datei schlicht und werden auf sinnvolle Standardwerte gesetzt, die Sie anschließend prüfen sollten:

  • Laufzeit — auf 1 Monat gesetzt. Das tatsächliche Ablaufdatum jedes Abonnenten wird unverändert übernommen, dies betrifft also nur künftige Verlängerungen.
  • Upload-Geschwindigkeit — auf die Download-Rate gesetzt.
  • Preis — auf 0 gesetzt.
Tarife vor der Rechnungsstellung prüfen Öffnen Sie nach einem Pro-Radius-Import die Tarife und legen Sie für jeden den tatsächlichen Preis und Zeitraum fest. Bis dahin rechnen diese Tarife mit null ab.

Gut zu wissen

  • Mehrfaches Ausführen ist gefahrlos. Ein erneuter Import derselben Datei überspringt alle bereits vorhandenen Einträge, statt sie zu verdoppeln.
  • Ihre Lizenz gilt weiterhin. Enthält die Datei mehr Abonnenten, als Ihre Stufe erlaubt, sagt die Vorschau das vorab und nennt die Zahl, die hineinpassen würde — Sie können upgraden oder eine Teilmenge importieren.
  • Erstellen Sie zuerst eine Sicherung, wenn Sie in eine Installation importieren, die bereits echte Daten enthält.

Abonnenten & Tarife

Tarife & Limits

Ein Tarif ist die Dienstdefinition, die Teilnehmern zugewiesen wird — er legt Geschwindigkeit, Limits und Preis fest. Erstellen Sie Tarife, bevor Sie Benutzer hinzufügen.

Eine frische Installation bringt bereits 9 einsatzbereite Tarife mit — acht monatliche Geschwindigkeitsstufen plus einen "Expired"-Drosseltarif — Sie können sofort verkaufen oder eigene anlegen. Das Seeding läuft nur bei der Erstinstallation und überschreibt nie Ihre Tarife.

Tarif erstellen

  1. Gehen Sie zu Benutzer → Tarife.
  2. Klicken Sie auf Neuer Tarif.
  3. Füllen Sie das Formular aus und klicken Sie auf Tarif speichern.

Jedes Limit ist ein Schalter — aktivieren Sie nur die, die Sie benötigen. Dasselbe Modal bearbeitet einen vorhandenen Tarif (öffnen Sie das ⋮-Menü der Zeile → Bearbeiten).

Tariffelder

FeldBedeutung
NameEindeutiger Tarifname, z. B. Home-50M
PreisPro Abrechnungszeitraum berechnet, wenn Rechnungsstellung verwendet wird
Download-/Upload-Geschwindigkeitz. B. 50M, 512K, 1G — als MikroTik-Ratenlimit erzwungen
Gleichzeitige SitzungenWie viele Geräte in diesem Tarif gleichzeitig online sein dürfen. Standard ist 1 — eine zweite Anmeldung wird abgelehnt, solange die erste verbunden ist. 0 bedeutet unbegrenzt. Eine Sitzung, die keine Daten mehr meldet, wird ignoriert, sodass eine abgebrochene Verbindung den Teilnehmer nie aussperrt
Limit: AblaufDas Abonnement endet eine feste Zeit nach Aktivierung (Tage/Monate/Stunden/Minuten)
Limit: KontingentEine Gesamtdatenobergrenze (kombiniert, nur Download oder nur Upload) für das gesamte Abonnement
Limit: BetriebszeitEine Obergrenze für die kumulierte Verbindungszeit — die Summe aller Sitzungsdauern
Limit: Tägliche NutzungEine Datenobergrenze, die jeden Tag zur konfigurierten täglichen Reset-Zeit zurückgesetzt wird
Unbegrenztes FensterSchnelles Hinzufügen eines Geschwindigkeitsfensters — der vollständige Editor befindet sich auf der Speed-Windows-Seite des Tarifs
IP-PoolOptionaler RADIUS-Framed-Pool-Name für die Adressvergabe
Automatische VerlängerungBei Ablauf eine neue Periode starten statt Tarif zu wechseln oder zu trennen

Die vier Limits

Jeder Grenzwert ist unabhängig und optional. Wenn mehrere festgelegt sind, checkt SAMM sie ein feste Reihenfolge – Ablauf → Kontingent → Betriebszeit → täglich – und die erste Erschöpft entscheidet über die Aktion.

LimitVerfolgtBei Erschöpfung
AblaufKalenderzeit seit AktivierungZu einem anderen Tarif wechseln oder trennen
KontingentVerwendete GesamtbytesZu einem anderen Tarif wechseln oder trennen
BetriebszeitKumulative SitzungssekundenZu einem anderen Tarif wechseln oder trennen
TäglichBytes seit dem letzten TagesresetDrosseln — auf eingegebene Geschwindigkeiten oder über einen langsameren Tarif — bis zum nächsten Tagesreset

Für jedes Limit wählen Sie, was bei Erschöpfung passiert: einen Folgetarif, auf den der Teilnehmer wechselt, oder — trennen —. Das Tageslimit drosselt statt zu trennen: standardmäßig geben Sie die Drosselgeschwindigkeiten direkt ein (Download-/Upload-Felder) oder wählen einen langsameren "Folge"-Tarif — in beiden Fällen kehrt der Teilnehmer beim nächsten Tagesreset automatisch zum ursprünglichen Tarif zurück.

Geschwindigkeitsfenster

Ein Geschwindigkeitsfenster überschreibt die Grundgeschwindigkeit des Plans für festgelegte Stunden – für Beispiel: ein Fenster mit unbegrenzter Geschwindigkeit nach Mitternacht. Klicken Sie auf eine Planzeile, um sie zu öffnen Speed Windows -Editor, der die Kontrolle über den Wochentag hinzufügt und unterstützt Fenster, die Mitternacht überschreiten. Wenn mehrere Fenster übereinstimmen, wird die Höchstgeschwindigkeit Einer gewinnt.

Hinweis Gedrosselte oder limiterschöpfte Teilnehmer werden von Speed Windows ausgeschlossen — SAMM hebt die Geschwindigkeit nie an, während ein Limit aktiv ist.

Zwei Nutzungskonzepte

SAMM speichert die Nutzung an zwei Orten und vermischt sie nie:

  • Zurücksetzbare Zähler — der Status pro Limit. Wird durch einen Admin- Reset und durch den täglichen Reset auf Null gesetzt.
  • Abrechnungszähler — nicht zurücksetzbare Lebensdauer-Summen. Nie auf Null gesetzt, damit Berichte und Rechnungen korrekt bleiben.

Tarife verwalten

In der Liste „Pläne“ werden die Geschwindigkeit, die Abonnentenzahl, die aktiven Limits und die Geschwindigkeit jedes Plans angezeigt Fenster. Im ⋮-Menü einer Zeile können Sie sie bearbeiten, ihre Geschwindigkeitsfenster öffnen, sie aktivieren/deaktivieren, Springen Sie zu seinen Abonnenten oder löschen Sie es (nur wenn es keine Abonnenten hat). Bearbeiten Die automatische Verlängerung bietet an, die Änderung an alle aktuellen Abonnenten weiterzugeben .

Duplizieren kopiert einen Plan exakt – Geschwindigkeiten, Grenzwerte, Geschwindigkeitsfenster usw Preis – unter einem neuen Namen, was viel schneller geht, als einen Tarif manuell neu zu erstellen, um ihn zu ändern Nummer. Sollte der von Ihnen angegebene Name bereits vergeben sein, wird die nächste freie Rufnummer verwendet.

Abonnenten & Tarife

Abonnenten

Ein Teilnehmer (Kunde / Benutzer) ist ein PPPoE- oder Hotspot-Konto, das sich gegenüber SAMM authentifiziert. Jedem Teilnehmer wird genau ein Tarif zugewiesen.

Abonnenten erstellen

  1. Gehen Sie zu Benutzer und klicken Sie auf Neuer Kunde.
  2. Formular ausfüllen und speichern — der Abonnent kann sich sofort verbinden.
FeldBedeutung
Benutzername *Der PPPoE/Hotspot-Anmeldename — muss eindeutig sein
Passwort *Das Anmeldepasswort (gespeichert für PAP/CHAP RADIUS-Auth)
Vor-/NachnameDer Name des Teilnehmers
Mobil / E-Mail / AdresseKontaktdaten — für Benachrichtigungen und Rechnungen verwendet
Tarif *Der zuzuweisende Diensttarif
AblaufüberschreibungOptionales manuelles Ablaufdatum statt des vom Tarif berechneten
Automatische VerlängerungTariffzeitraum automatisch bei Ablauf verlängern

Erstellen Sie viele Abonnenten gleichzeitig

Neue Batch-Benutzer erstellen in einem Durchgang eine nummerierte Reihe von Konten – die übliche Art, einen Block an Logins an einen Dorf-Rollout, ein Hotel oder einen Wiederverkäufer zu übergeben. Wählen Sie aus, wie viele, bei welcher Zahl Sie beginnen möchten und wie viele Ziffern aufgefüllt werden sollen (3 ergibt 001 , 002 , …); Alles andere – Plan, Ablauf, automatische Verlängerung – ist einmal ausgefüllt und auf alle angewendet. Sie teilen sich ein Passwort.

Die Rechnungsauswahl gilt für jeden Benutzer im Stapel separat , sodass eine Folge von fünfzig entweder fünfzig Rechnungen oder keine auslöst, und die Die Gesamtsumme wird angezeigt, bevor Sie sich verpflichten.

Die Abonnentenliste

Auf der Seite „Benutzer“ wird jeder Abonnent mit einem auf einen Blick sichtbaren Statuspunkt, dem zugewiesenen, aufgeführt Plan und wie viel von jedem Limit noch übrig ist – tägliche Nutzung mit Fortschrittsbalken, Kontingent verbleibende, verbleibende Betriebszeit und verbleibende Tage. Nach Status filtern (Alle / Aktiv / Gesperrt). / Abgelaufen / Online) oder suchen Sie nach Benutzername, Name oder Mobiltelefon.

Das Tarif-Wechsel-Abzeichen Ein einzelnes Abzeichen ist der Plan des Abonnenten. Zwei durch einen Pfeil verbundene Abzeichen Dies bedeutet, dass der Abonnent sein Tageslimit erreicht hat und vorübergehend auf Gas gesetzt wird Plan – sie werden beim nächsten täglichen Zurücksetzen auf den Originalzustand zurückgesetzt.

Abonnenten verwalten

Rechtsklick auf eine Zeile — oder über das ⋮-Menü — für alle Aktionen pro Teilnehmer:

AktionWas es macht
Ansehen / BearbeitenDetailseite öffnen oder Kontaktdaten, Passwort und Ablauf bearbeiten
Aktivieren / DeaktivierenKonto sperren — Online-Abonnenten werden getrennt
Ablauf verlängernFügt die Tarifdauer zur verbleibenden Zeit hinzu; erzeugt eine Rechnung, wenn der Tarif einen Preis hat
Betriebszeit / Kontingent / Täglich zurücksetzenDen gewählten Limiterzähler auf null setzen
NutzungNutzungsgrafiken und Sitzungsverlauf öffnen
LöschenAbonnenten und alle Verlaufsdaten entfernen — aktive Sitzungen werden zuerst getrennt
Wie Aktionen wirksam werden Zurücksetzungen, Planänderungen und Verlängerungen werden in einem Prüfprotokoll in die Warteschlange gestellt und von dort angewendet samm-radius Tick – normalerweise innerhalb weniger Sekunden. Wenn der Abonnent ist\n online sendet SAMM auch eine Live-Aktualisierung. Siehe CoA & Live-Änderungen .

Die Detailseite kann auch das Login-Passwort des Teilnehmers hinter einem Augen-Umschalter zeigen (mit Ein-Klick-Kopie) — praktisch, wenn ein Kunde nach seinen Zugangsdaten fragt.

Die Nutzungsansicht

Die Aktion Nutzung öffnet eine detaillierte Verkehrsseite für einen Abonnenten. mit einem 7d / 14d / 30d / 90d Periodenwähler. Es werden drei Schlagzeilen gemeldet: heutiger -Verkehr (mit der Aufteilung von Upload/Download und den Online-Minuten), der Traffic dieses Monats und die kumulierte Online-Zeit für den Monat. Darunter befindet sich ein Tages-Traffic-Diagramm des Uploads Download und eine vollständige Sitzungsverlaufstabelle : die Start- und Stoppzeit, Dauer, Bytes nach unten und oben, das NAS und die Beendigungsursache jeder Sitzung.

Massenoperationen

Besitzer, Ablauf, Status oder automatische Verlängerung für viele Abonnenten gleichzeitig ändern – oder\n Um viele zu löschen, verwenden Sie Massenänderungen und Bulk\n Werkzeuge löschen. Um Abonnenten in großen Mengen aus einer Tabelle zu erstellen, verwenden Sie Exportieren/Importieren.

Beschränken Sie einen Abonnenten auf bestimmte Router

Ein Abonnent (oder eine ganze Kartengruppe) kann an ein bestimmtes NAS angeheftet werden Router aus dem Bearbeitungsformular. Wenn keine Router ausgewählt sind, funktioniert das Konto auf jedem NAS; Wenn eine oder mehrere ausgewählt sind, wird die Authentifizierung nur von diesen akzeptiert Router – erzwungenes Fail-Closed innerhalb von RADIUS selbst. Beim Ändern des Sets werden alle Verbindungen getrennt Live-Sitzung auf einem jetzt nicht mehr zugelassenen Router sofort zu starten. Kombiniert mit By-NAS Admin Scoping: Auf diese Weise halten Multifilial- und Franchise-Setups die Abonnenten jeder Filiale auf den Routern dieser Zweigstelle.

Abonnenten & Tarife

Hotspot-Karten

Für den Prepaid-Hotspot-Zugang generieren Sie einen Stapel von Gutscheinkarten statt einzelner Abonnenten. Jede Karte ist ein eigenes Benutzername/Passwort-Paar Geschwindigkeit und Grenzen, tausendfach generiert und zur Weitergabe ausgedruckt.

Kartengruppe erstellen

  1. Gehen Sie zu Benutzer → Hotspot-Karten und klicken Sie auf Neue Gruppe.
  2. Füllen Sie das untenstehende Formular aus und klicken Sie auf Gruppe erstellen — SAMM generiert die Anmeldedaten jeder Karte automatisch.
AbschnittFelder
IdentitätEindeutiger Gruppenname, Beschreibung, optionales Benutzernamen-Präfix, Anzahl der zu generierenden Karten (bis zu 10.000)
AnmeldedatenBenutzername- und Passwort-Format (Zahlen / Buchstaben / alphanumerisch) und Länge
GeschwindigkeitslimitDownload- und Upload-Geschwindigkeit — 256k, 6M, 1G; 0 = unbegrenzt
ÜbertragungslimitUnbegrenzt, kombinierte Obergrenze oder separate Download-/Upload-Obergrenzen (MB / GB / TB)
ZeitlimitsUptime-Obergrenze, Ablauf nach erster Anmeldung und ein Gruppen-"Gültig bis"-Stichtag

Der Ablauf beginnt mit der ersten Anmeldung jeder Karte gültig bis ein festes Haltbarkeitsdatum ist – Karten können danach nicht mehr verwendet werden, ob sie jemals aktiviert wurden oder nicht.

Eine Gruppe verwalten

Über das ⋮-Menü einer Gruppe können Sie alle Karten auf einmal aktivieren oder deaktivieren, das "Gültig bis"-Datum verlängern, weitere Karten hinzufügen oder die Details bearbeiten. Einzelne Karten lassen sich auf der Kartendetailseite zurücksetzen (Kontingent, Onlinezeit oder Ablauf) oder deaktivieren.

Duplikatgruppe kopiert jede Einstellung genau und generiert dieselbe Anzahl der Karten mit neuen Codes – ein Kartencode kann immer nur zu einer Karte gehören, Eine Kopie ist also eine neue Auflage, kein Klon der alten. Dies ist der schnelle Weg, eine Bestellung nachzubestellen Gutschein-Charge, die ausverkauft ist.

Kartenstatus

StatusBedeutung
UnbenutztGeneriert, aber nie angemeldet
AktivIn Verwendung, innerhalb der Limits
ErschöpftEin Limit (Kontingent, Betriebszeit oder Ablauf) wurde erreicht
DeaktiviertManuell deaktiviert

Drucken & Nachverfolgung

Öffnen Sie eine Gruppe, um ihre Karten anzuzeigen, und drucken Sie sie zur Verteilung als PDF aus\n (Das Drucklayout verwendet Ihr ISP-Logo aus den Einstellungen) und überprüfen Sie die Nutzung pro Karte. Karte\n Der Datenverkehr erscheint auch in Berichten unter\n Registerkarte „Karten“ und jede Gruppe verfügt über eine eigene Buchhaltungsansicht.

Abonnenten & Tarife

Selbstbedienung – Gäste melden sich selbst an

Das Gegenteil eines Gutscheins: Niemand druckt etwas und niemand steht an einem Schreibtisch. Ein Besucher stellt eine Verbindung zu Ihrem Hotspot her und tippt auf Registrieren . Geben Sie auf der Anmeldeseite seinen Namen und seine Handynummer ein und SAMM sendet ihm eine Passcode per SMS, WhatsApp oder E-Mail. Sie geben es auf derselben Seite ein und sie sind es online – und Sie führen eine benannte, exportierbare Aufzeichnung aller Personen, die den Gast genutzt haben Netzwerk.

Typische Veranstaltungsorte: Restaurants und Cafés, Hotels und Pensionen, Ausstellungen und Messen, Konferenzen, Einkaufszentren, Kliniken und Wartezimmer, Fitnessstudios, Co-Working-Spaces, Salons, Flughafenlounges, Stadien, Campusgelände, Bibliotheken, Autohäuser, Hochzeitsorte, Resorts und Campingplätze.

Einschalten

  1. Richten Sie zunächst einen Lieferkanal ein. Benachrichtigungscenter → SMS aktivieren oder WhatsApp und Senden Sie sich selbst eine Testnachricht. Nichts anderes funktioniert, bis ein Kanal es tut.
  2. Self Service → Einstellungen : ankreuzen Gästen erlauben, sich selbst zu registrieren und auswählen, welche Kanäle sie nutzen möchten Angebot und legen Sie fest, wie lange ein Passcode gültig bleibt und wie lange ein Gast warten muss bevor Sie nach einem anderen fragen.
  3. Belassen Sie Passcodes stammen von im Self Service Kartengruppe, es sei denn, Sie haben einen Grund, sie zu ändern – diese Gruppe bestimmt die Geschwindigkeit und wie viele Geräte einen Passcode teilen dürfen.
  4. Aktivieren Sie die Registerkarte „Registrieren“ für jedes von Ihnen verwendete Login-Design. – siehe unten. Das ist der Schritt, den die Leute verpassen.

Die Anmeldeseite – der Schritt, den die Leute übersehen

Die Registerkarte „Registrieren“ ist pro Login-Design und deaktiviert standardmäßig. Öffnen Sie MikroTik Manager → den Router → Anmeldeseite , Bearbeiten Sie das von Ihnen verwendete Design und aktivieren Sie Self-Service zulassen . Sie können es umformulieren Jeder Satz, den ein Gast auf demselben Bildschirm sieht – die Registerkarte „Registrieren“ und das Intro Zeile, die beiden Feldbeschriftungen, die Schaltfläche und die fünf Antworten („Ihr Passcode ist aktiviert „Auf dem Weg“, „Sie haben bereits eines“, „Bitte versuchen Sie es später noch einmal“, „Wir konnten es nicht senden“, „Anmeldung ist nicht verfügbar“).

Drücken Sie dann „Push“ – und drücken Sie es nach jedem SAMM -Upgrade erneut. Hotspot-Anmeldeseiten befinden sich live im Flash-Speicher des Routers . nicht auf SAMM . Durch das Upgrade von SAMM werden sie nicht erneut gepusht, sodass ein Router weiterhin seinen alten Server bedient Seite – ohne Registerkarte „Registrieren“ –, bis Sie erneut drücken. SAMM warnt Sie beim Login Registerkarte „Seite“, wenn ein Router Seiten bereitstellt, die älter als Ihre installierte Version sind, und die Die Self-Service-Seite nennt jeden Router, der die Registerkarte nicht anzeigen kann, und bietet an, das Problem zu beheben alles auf einmal.

Die Regeln, die Missbrauch stoppen

  • Ein Live-Passcode pro Nummer. Ich frage noch einmal, während a Wenn der Code noch gültig ist, wird der Gast angewiesen, seine Nachrichten zu prüfen, anstatt sie zu senden ein anderer.
  • Dann legen Sie eine Wartezeit vor dieser Zahl fest kann ein neues anfordern.
  • Die Gültigkeit gilt ab dem Zeitpunkt, an dem der Passcode gesendet wird , nicht bei der ersten Anmeldung – ein Code, der eine Woche lang ungenutzt blieb, funktioniert also nicht mehr Arbeit.
  • Eine durch Ihre Lizenz festgelegte Tagesobergrenze (siehe unten). Einmal es ist aufgebraucht, Gäste werden gebeten, es später noch einmal zu versuchen und Passcodes wurden bereits vergeben Arbeite weiter.
  • Jeder Versuch wird anhand der MAC-Adresse des Geräts aufgezeichnet Der Router hat es gemeldet – was ein Gast über seinen Browser nicht vortäuschen kann.

Die Lizenz

Self Service ist lizenziert getrennt von Ihrem Plan , nach wie vielen Passwörtern pro Tag die Installation\n kann ausgestellt werden, und es verlängert sich zu seinem eigenen Datum – Sie können also mit einem kostenpflichtigen Add-on kostenlos sein,\n oder auf Pro Max ohne. Für jede Installation erhalten Sie 10 pro Tag kostenlos ;\n Leicht erhöht es auf 50, Schwer auf 200 und Max hebt das Limit auf. Siehe Preisgestaltung .

Auf der Self-Service-Seite werden verwendet/erlaubt für heute und angezeigt sagt deutlich, wenn das Taschengeld aufgebraucht ist. Kaufen oder verlängern Sie über Ihr Dashboard securytik.com, oder fragen Sie unter System → Lizenz und a SecuryTik Administrator genehmigt es. Ein Passwort, das nicht übermittelt werden konnte, verfällt nicht Ihr Taschengeld.

Netzwerk & Router

Router (NAS)

Ein NAS (Network Access Server) ist ein Router, der Teilnehmer über RADIUS gegenüber SAMM authentifiziert. Jeder Router, der Teilnehmerverkehr trägt, benötigt einen NAS-Datensatz.

Router hinzufügen

  1. Gehen Sie zu MikroTik → NAS und klicken Sie auf Router hinzufügen.
  2. Füllen Sie die folgenden Felder aus und speichern Sie.
FeldBedeutung
NAS-IP / HostnameDie Adresse des Routers, wie sie vom SAMM-Host gesehen wird
KurznameEine freundliche Bezeichnung, die in der gesamten Benutzeroberfläche angezeigt wird
Typmikrotik aktiviert Live-Gerätesynchronisation und Konfigurations-Push; andere Typen sind nur RADIUS
GeheimnisDas RADIUS-Shared-Secret — muss exakt mit dem Router übereinstimmen, sonst schlägt die Authentifizierung fehl
CoA-PortUDP-Port, an den SAMM Change-of-Authorization-Pakete sendet (MikroTik-Standard 3799)
API-Port / Benutzer / PasswortMikroTik-API-Anmeldedaten, die SAMM zum Lesen von Geräteinformationen und zum Push von Konfigurationen verwendet
Kein Neustart erforderlich SAMM löst NAS-Clients dynamisch aus der Datenbank auf — das Hinzufügen oder Entfernen eines Routers erfordert nie einen FreeRADIUS-Neustart.

Die NAS-Liste

Jeder Router wird in einer Tabelle angezeigt – ID, NAS-IP/Hostname, Kurzname, Typ, eine Maskierung Geheimnis (klicken Sie auf die Zelle, um es anzuzeigen), die CoA- und API-Ports und a Live- Ping- -Ergebnis mit Roundtrip-Zeit. Das Suchfeld filtert nach IP, Kurzname oder Beschreibung.

Das Menü ⋮ jeder Zeile enthält die Aktionen pro Router: Gerät anzeigen und Informationen aktualisieren (nur MikroTik ), Bearbeiten , Push\n RADIUS-Konfiguration (nur MikroTik ) und Löschen Sie . Eröffnung eines\n Die Zeile vom Typ mikrotik springt direkt zu ihr Geräteseite .

Nachbarn entdecken

Klicken Sie Discover neighbors, um das Netz nach MikroTik-Geräten zu durchsuchen (über MikroTiks Nachbar-Discovery-Protokoll) und sie als NAS-Einträge hinzuzufügen, ohne Adressen zu tippen. Ein gefundener Router lässt sich per IP hinzufügen oder automatisch hinzufügen — ein Ein-Klick-Bootstrap, der einen SAMM-Verwaltungsbenutzer anlegt, eine Verwaltungs-IP setzt und die Werksbridge entfernt.

Auto-Hinzufügen ist für frische Router Der Ein-Klick-Bootstrap ist für fabrikneue (oder zurückgesetzte) Geräte gedacht — auf einem bereits konfigurierten Router kann er die bestehende Einrichtung überschreiben oder beschädigen.

RADIUS-Konfiguration zum Router übertragen

Für MikroTik NAS-Einträge bietet das ⋮-Menü der Zeile Push RADIUS config — SAMM konfiguriert den Router für Sie über die API, anstatt dass Sie ihn manuell eingeben müssen. Du Bestätigen Sie die SAMM -Server-IP (sie muss vom Router aus erreichbar sein) und die Authentifizierung. Buchhaltungs- und CoA-Ports; SAMM erstellt oder ersetzt dann einen RADIUS-Eintrag auf dem Router:

EinstellungWert
KommentarSAMM — das Tag, das SAMM verwendet, um diesen Eintrag später zu finden und zu aktualisieren
Diensthotspot, ppp
Adresse / GeheimnisDer SAMM-Host, mit dem Shared Secret aus diesem NAS-Eintrag
Zeitüberschreitung3000 ms
Eingehende CoAAkzeptiert, auf dem bestätigten CoA-Port

Der Dialog zeigt ein Ergebnisprotokoll, wenn der Push abgeschlossen ist.

Die MikroTik-Seite konfigurieren

Wenn Sie den Router stattdessen manuell konfigurieren:

  • Fügen Sie einen RADIUS-Server hinzu, der auf den SAMM-Host zeigt, mit demselben Shared Secret, aktiviert für PPP / Hotspot.
  • Verwenden Sie Auth-Port 1812, Accounting-Port 1813.
  • Akzeptieren Sie eingehendes CoA auf Port 3799.
  • Setzen Sie das Accounting-Interim-Update-Intervall auf etwa 5 Minuten (SAMM-Wizard-Standard) — so oft akkumuliert SAMM die Nutzung und wertet Limits aus; kürzere Intervalle verringern die Limit-Latenz, erzeugen aber mehr Accounting-Verkehr.

Nur-Monitor-Geräte

Ein als Monitor hinzugefügter Router erscheint im Inventar MikroTik und wird angepingt und synchronisiert, hat aber keine RADIUS-Rolle – es kann keine Abonnenten authentifizieren. Benutzen Damit können Sie Router im Auge behalten, die keine Abonnenten-NAS sind.

Netzwerk & Router

MikroTik-Verwaltung

Wenn ein Router über API-Anmeldeinformationen verfügt, SAMM verwaltet er diese direkt über MikroTik API – keine WinBox, kein SSH. Die MikroTik Der Abschnitt enthält eine Live-Bestandsaufnahme jedes Routers und jedes Gerät öffnet eine Detailseite mit Fünfzehn Registerkarten, die fast jeden Teil von RouterOS über Ihren Browser konfigurieren.

MikroTik-Monitor

MikroTik → Monitor zeigt eine Karte pro Router, ausgelegt als Gitter. Jede Karte meldet – aktualisiert von samm-worker und live abgefragt alle 30 Sekunden – der Erreichbarkeitspunkt, RouterOS -Version, CPU-Last und Kernanzahl, Speichernutzung, Anzahl aktiver Sitzungen, Betriebszeit und Zeitpunkt der letzten Probe.

Eine Karte ist entweder mit NAS gekennzeichnet (ein Router, der sich auch authentifiziert). Abonnenten über RADIUS) oder Monitor (ein zur Überwachung hinzugefügtes Gerät). nur). Hinzufügen MikroTik registriert ein neues Gerät; Jetzt aktualisieren erzwingt eine sofortige Umfrage. Nur-Monitor-Karten verfügen über ein Rechtsklick-Menü – Öffnen, Bearbeiten, Informationen aktualisieren, löschen.

Die Geräteseite — fünfzehn Tabs

Öffnen Sie ein beliebiges Gerät für seine vollständige Verwaltungsseite. Die Registerkarten fallen in vier Gruppen.

Überwachung

RegisterkarteWas es zeigt
ÜbersichtGeräteinformationen, Systeminformationen und Leistungsverlaufsdiagramme (CPU, Speicher, Sitzungen im Zeitverlauf)
SchnittstellenJede Schnittstelle mit ihrem Live-Status sowie dem Verkehrsverlauf pro Schnittstelle
Websites & AppsDrei Unteransichten: Monitor (auf dem Router gesehene Websites & Apps mit Traffic-Verlauf), QoS (anwendungsbasierte Priorität, unten) und App Filter (DNS-basiertes Content-Blocking aus dem Katalog)

Verwaltung

Die Registerkarte Manager → Allgemein ist die Verwaltungsseite für das Gerät: Identität (der Routername), Zeit (Uhr, Zeitzone und NTP) und Tools (Neustart, Ping und andere Ein-Klick-Router-Aktionen).

Netzwerkkonfiguration

RegisterkarteWas Sie konfigurieren
BridgeErstellen Sie LAN-Brücken und wählen Sie aus, welche physischen Schnittstellen (Ports) dazu gehören
VLANVLAN-Schnittstellen hinzufügen und verwalten
IPDrei Unterregisterkarten: Statisch (statische und dynamische Adressen), DHCP-Client (Adresse vom Upstream abrufen), DHCP-Server (Adressen verteilen, mit einer Live-Lease-Tabelle)
DNSWebsites & Apps
WiFi / CAPsMANWi-Fi-Schnittstellen mit ihren Konfigurationen und Sicherheitsprofilen; und der CAPsMAN-Controller – Konfigurationen, Bereitstellungsregeln und Remote-CAPs

Dienste & Wartung

RegisterkarteWas Sie konfigurieren
PPPoEPPPoE-Server, PPP-Profile, IP-Pools und das RADIUS-Accounting-Zwischenaktualisierungsintervall
HotspotHotspot-Server, Hotspot-Profile und Benutzerprofile, DHCP/IP-Pools und die Anmeldeseite des Captive-Portals
InternetWAN-Uplinks – SAMM -verwaltete WANs und Standardrouten, wobei alle vorhandenen Nicht- SAMM -WANs schreibgeschützt angezeigt werden
FirewallFilterregeln, Router-Sicherheitsanalyse, Konnektivität & Ziele, Sicherheitsmodule und Firewall-Backups — Auto-Security erstellt vor dem Anwenden einen Snapshot und kann eine zeitgesteuerte Auto-Rücknahme scharfschalten: ein Regelwerk, das Sie aussperrt, wird automatisch zurückgerollt
AktualisierungRouterOS -Updates – Wählen Sie einen Update-Kanal aus, prüfen und wenden Sie installierte Pakete an und überprüfen Sie sie
AssistentDie geführte Ersteinrichtung finden Sie weiter unten

Das PPPoE-Interim-Update-Intervall

Auf der Registerkarte PPPoE legt Zwischenaktualisierung fest, wie oft Der Router sendet RADIUS-Accounting-Interim-Update-Pakete an SAMM . SAMM verwendet diese Pakete, um Sammeln Sie Byte- und Betriebszeitzähler und bewerten Sie die Kontingent-, Tages- und Betriebszeitlimits – Ohne sie wird die Durchsetzung eingeschränkt und die Live-Sitzungszähler bleiben stehen . Der empfohlene Wert beträgt 5m .

Die Hotspot-Anmeldeseite

Auf der Registerkarte Hotspot verwalten Sie die Anmeldeseite des Captive-Portals: Behalten Sie die MikroTik Standardseiten bei und wenden Sie eine der integrierten Vorlagen an. oder wenden Sie eines Ihrer gespeicherten Designs an. SAMM beinhaltet ein visuelles Design Editor und eine Vorlagengalerie – passen Sie eine Anmeldeseite an und übertragen Sie sie direkt auf die Hotspot des Routers.

Anwendungsbezogenes QoS

In der Ansicht QoS (eine Unterregisterkarte von Websites und Apps) werden die Apps und Websites angezeigt SAMM sieht auf dem Router bereits einen Download-Prioritätsplan. Ziehen Sie jede App aus dem Pool hinein einer von acht Prioritätsslots – Slot 1 wird im Wettbewerb zuerst bedient, Slot 8 zuletzt; Im Pool verbleibende Apps werden nicht geformt. Begrenzen Sie optional die Download-Geschwindigkeit einer App (z. B 10M ) und legen Sie eine Gesamt-Download-Obergrenze für die Priorität fest, um die Sie konkurrieren möchten. Automatisch verteilen nach Kategorie ordnet alles mit einem Klick – zuerst die Nachrichten, dann die KI-Dienste Geschäfte, alles andere unten.

Beim Übertragen kompiliert SAMM die Plätze zu einem MikroTik-Queue Tree (markiert mit SAMM:qos, parent=global) mit passenden Packet-Mark-Firewall- Regeln, höchste Priorität zuerst. Er basiert auf demselben Websites-&-App-Filter- Katalog, der auch das Monitoring antreibt, sodass nur tatsächlich auf dem Router erkannte Apps erscheinen — und das Entfernen von SAMM QoS löscht jedes SAMM:qos-Objekt wieder vom Router, ohne Ihre Zähler anzutasten.

Der Einrichtungsassistent

Der Assistent-Tab sammelt alles in zehn kurzen Schritten und schiebt die komplette Konfiguration am Ende in einem Rutsch auf den Router. Nichts wird gesendet, bis Sie im abschließenden Review-Schritt bestätigen.

  1. Willkommen & discover – SAMM prüft den Router und zeigt, was ist bereits konfiguriert, sodass Sie diese Elemente im Push überspringen können.
  2. Bridge-Schnittstelle – Benennen Sie die LAN-Bridge.
  3. Bridge-Ports – Wählen Sie aus, welche physischen Schnittstellen der Bridge beitreten.
  4. DNS – Upstream-Resolver festlegen (Ein-Klick-Voreinstellungen für Google , Cloudflare , Quad9 und mehr), Cache-Größe und optional ein DNS-Inhaltsfilter.
  5. NTP — die Uhrzeitquelle des Routers festlegen (NTP-Client, optional Zeit ans LAN ausliefern).
  6. Internet – Fügen Sie einen oder mehrere WAN-Uplinks hinzu (statisch / DHCP / PPPoE).
  7. RADIUS zu SAMM – Richten Sie den Router auf Ihren SAMM -Host Authentifizierung, Buchhaltung und CoA.
  8. Dienste – Wählen Sie aus, ob der Assistent einen PPPoE-Server erstellt, a Hotspot-Server oder einen IPoE-/DHCP-Dienst aktivieren und optional aktivieren IPv6-Dual-Stack (Opt-in, standardmäßig deaktiviert): Wählen Sie die delegierte Option (DHCPv6-PD) aus. Präfixlänge und die IPv6-Blöcke und der Assistent erstellt die Pools und hängt sie an die an PPP-Profil.
  9. PPPoE-/Hotspot-Details & Firewall — Pools, Profile, Lease-Zeiten, Firewall- & NAT-Regeln, plus optional Expired-Pool & Internetsperre: leitet abgelaufene Teilnehmer auf SAMMs "Abo abgelaufen"-Seite statt auf eine tote Verbindung.
  10. Rezension & push – Sehen Sie sich die genaue Liste der Befehle an gesendet, und schieben Sie sie dann alle an den Router.
Benutzerbasierte Geschwindigkeit kommt von RADIUS Der Assistent erstellt ein einzelnes PPPoE-/Hotspot-Profil – es erfolgt kein Push pro Ebene Profile. Die Geschwindigkeit jedes Abonnenten wird von SAMM in der RADIUS-Antwort bei der Anmeldung übermittelt. Planänderungen erfordern also nie eine Router-Änderung.

Netzwerk & Router

CoA & Live-Änderungen

CoA (Change-of-Authorization) ist die Art und Weise, wie SAMM die eines Abonnenten ändert Sitzung, während sie online sind – um ihre Geschwindigkeit zu erhöhen oder zu verringern oder sie zu trennen – ohne darauf zu warten, dass sie sich wieder verbinden.

Wie eine Änderung einen aktiven Abonnenten erreicht

SAMM pusht niemals eine Router-Änderung direkt durch einen Tastenklick. Jede Administratoraktion folgt einem sicheren Pfad:

Admin-Aktion Audit-Protokoll samm-radius-Tick CoA-Postausgang Router
  1. Die Aktion wird in einem Überwachungsprotokoll als Befehl in der Warteschlange aufgezeichnet.
  2. Der Dienst samm-radius entleert die Warteschlange beim nächsten Tick, gilt die Änderung und stellt – wenn der Abonnent online ist – ein CoA in die Warteschlange.
  3. Der CoA-Postausgang wird geleert und das Paket wird an den Router gesendet.

Zeitgesteuerte Ereignisse – Ablauf, Geschwindigkeitsfensterkanten, tägliche Zurücksetzungen – speisen denselben Postausgang.\n Die Obergrenze für die Latenz liegt bei einem Tick von samm-radius (standardmäßig 30 s; niedriger).\n (Sie können es in den Einstellungen für eine strengere Durchsetzung festlegen.)

Hybrides CoA

SAMM sendet zunächst ein CoA-Update , um die bestehende Sitzung zu ändern. Wenn Der Router lehnt es nach den konfigurierten Wiederholungsversuchen ab, SAMM greift automatisch auf a zurück Disconnect-Request – der Abonnent stellt die Verbindung wieder her und nimmt die neue Verbindung entgegen Einstellungen. Diese Hybridstrategie funktioniert für MikroTik Firmware-Versionen.

Die CoA-Postausgangsseite

Benutzer → CoA-Postausgang ist die Live-Ansicht dieser Warteschlange. samm-radius ist der einzige Absender – das Admin-Panel sendet niemals ein CoA direkt – und es leert die Warteschlange bei jedem Tick. Die Seite wird jeden Tag automatisch aktualisiert 30 Sekunden.

Sechs Zähler stehen an der Spitze der Seite: Ausstehend, Gesendet, NACK (erneuter Versuch), Fertig, Fehlgeschlagen und Insgesamt . Filtern Sie die Tabelle nach Status und Aktion ( update oder disconnect ) oder suchen Sie nach Benutzername, NAS-IP oder Grund.

StatusBedeutung
ausstehendIn der Warteschlange und wartet auf den nächsten Tick von samm-radius
gesendetVersendet (transient — Senden und Ergebnis werden im selben Tick verbucht, Zeilen bleiben selten in diesem Zustand)
nackDer Router hat das CoA-Update abgelehnt – SAMM versucht es erneut und fällt dann auf eine Verbindungsunterbrechung zurück
erledigtErfolgreich angewendet
fehlgeschlagenNach Erreichen des Wiederholungslimits aufgegeben – bewegen Sie den Mauszeiger über das Abzeichen für den letzten Fehler

In jeder Zeile werden der Benutzer, der Router, die Aktion, die Anzahl der Versuche, der Grund sowie die erstellten und erstellten Daten angezeigt mal verschickt. Mit Aktionen pro Zeile können Sie ein fehlgeschlagenes oder ungültiges Paket wiederholen . Stornieren Sie eine noch in Bearbeitung befindliche Datei oder öffnen Sie Attribute für Überprüfen Sie die genauen RADIUS-Attribute, die das Paket trägt. Das Sidebar-Badge zählt ausstehende Zeilen; Das Dashboard verfolgt Ausfälle rund um die Uhr. Ein gesundes System behält diese Warteschlange bei fast leer.

Stale-Session-Reaper

Wenn ein Router abstürzt oder die Verbindung verliert, können seine Accounting-Stop-Pakete verloren gehen – und auf vielen Systemen bleiben diese Abonnenten für immer „online“. SAMM sucht nach Sitzungen die das Senden von Interim-Updates eingestellt haben, und schließt diese automatisch (beenden). Ursache Reaped-Stale ), also die Live-Sitzungsliste, die gleichzeitige Nutzung zählt und Die Nutzungszahlen bleiben wahrheitsgetreu. Das Zeitlimit beträgt stale_session_timeout_seconds Einstellung (Standard 900 s = 15 Minuten; zum Deaktivieren auf 0 setzen), und sie wird live wirksam – nein Neustart erforderlich.

Täglicher Betrieb

Dashboard & Live-Sitzungen

Die beiden Bildschirme unter Übersicht sind der Ausgangspunkt jede Schicht – das Dashboard für den Zustand des gesamten Systems, Live-Sitzungen für genau, wer gerade verbunden ist.

Dashboard

Übersicht → Dashboard ist der Startbildschirm des Bedieners. A Periodenauswahl oben – Heute, 7. Tag, 14. Tag, 30. Tag, 90. Tag – legt fest Fenster für das Trenddiagramm und die datumsgebundenen Zahlen.

Die sechs KPI-Kacheln

Jede Kachel ist ein Live-Zähler und eine Verknüpfung – klicken Sie darauf, um direkt zur gefilterten Liste hinter der Zahl zu springen.

KachelZeigtÖffnet
Jetzt onlineAbonnenten mit einer aktiven RADIUS-Sitzung jetztBenutzer gefiltert nach Online
Aktive AbonnentenAktive Konten mit der Gesamtanzahl der Abonnenten darunterBenutzer gefiltert nach Aktiv
AbgelaufenAbonnenten, deren Abonnement abgelaufen ist ohne festgelegten nächsten TarifBenutzer gefiltert nach Abgelaufen
Offene TicketsNoch nicht gelöste Support-Tickets (ohne erledigte & geschlossene)Benutzer → Support-Tickets
RouterGesamt-NAS-Einträge plus die Anzahl der derzeit nicht erreichbarenDer MikroTik -Monitor
Unbezahlte RechnungenRechnungen, die noch Zahlungsabwicklung benötigenRechnungen gefiltert nach Unbezahlt

Benutzer & Live-Sitzungsdiagramm

Ein tägliches Snapshot-Liniendiagramm stellt drei Serien über den ausgewählten Zeitraum dar – aktive Benutzer , Online-Sitzungen und abgelaufene Benutzer – so sind Wachstum und Abwanderung auf einen Blick sichtbar.

Pipeline-Gesundheit

Dieses Panel ist der Herzschlag der Durchsetzungsmaschine. Auf einem gesunden System Warteschlangen liegen bei oder nahe Null – eine Zahl, die hoch bleibt, weist auf einen festgefahrenen Dienst oder einen anderen hin Router lehnt Änderungen ab.

MetrikWas es bedeutet
samm-radius WarteschlangeAusstehende CoAs warten auf den nächsten Tick – sollten innerhalb von Sekunden gelöscht werden
Fehlgeschlagene CoA (24 Std.)Null auf ein gesundes System; Eine Zahl ungleich Null bedeutet, dass ein Router CoAs ablehnt
Audit-Protokoll ausstehendIn der Warteschlange befindliche Administratoraktionen wurden von samm-radius noch nicht angewendet
Sitzungen gedrosseltAbonnenten werden derzeit durch ein Limit auf eine reduzierte Geschwindigkeit beschränkt – erwartet, kein Fehler
Sitzungs-SnapshotDie Anzahl der Live-Sitzungen – sollte verfolgt werden: Jetzt online
Aktive TarifeDie Größe Ihres Plankatalogs
Der Durchsetzungspfad Administratoraktionen werden in die Warteschlange für samm.audit_log gestellt. die samm-radius Tick entleert sie und gibt CoAs an samm.coa_outbox ab. Der vollständige Pfad ist\n in CoA & Live-Änderungen .

Tabellen der aktuellen Aktivitäten

Vier Tabellen unter dem Diagramm geben einen fortlaufenden Überblick über das, was gerade passiert ist, jeweils mit einem Alle anzeigen Link zur vollständigen Seite:

  • Aktueller CoA-Postausgang – Aktion, Benutzer, Status (erledigt/ausstehend/nack/fehlgeschlagen), Anzahl der Versuche, Grund und Zeit.
  • Letzte Administratoraktionen – Aktion, Ziel, der Akteur, der sie ausgelöst hat, ob sie bereits angewendet wurde, und Zeit.
  • Aktuelle Abonnenten – die neuesten Konten mit ihrem Status und dem Zeitpunkt der letzten Authentifizierung.
  • Router – jedes NAS mit einem erreichbaren/nicht erreichbaren/keine Daten-Zustandspunkt.

Live-Sitzungen

Übersicht → Live-Sitzungen listet jeden Abonnenten auf Router melden sich derzeit über RADIUS-Accounting als online. Die Seite wird alle 30 Sekunden automatisch aktualisiert ; ein Handbuch Aktualisieren Die Schaltfläche befindet sich in der Kopfzeile.

Liste filtern

  • Suche – entspricht dem Benutzernamen, der Frame-IP oder der NAS-IP und wird während der Eingabe übermittelt.
  • Router – schränken Sie die Liste auf die Sitzungen auf einem einzelnen NAS ein.
  • Nur gedrosselt – zeigt nur die Abonnenten an, die ein Limit mit reduzierter Geschwindigkeit hält.
  • Pro Seite – 20, 50, 100 oder 200 Zeilen.

Was jede Zeile zeigt

SpalteBedeutung
BenutzerBenutzername – Links zur Detailseite des Abonnenten
Zugewiesene IPDie vom Router dieser Sitzung zugewiesene Adresse
RouterDer NAS-Kurzname und seine IP-Adresse
TarifDer aktuelle Plan des Abonnenten
Effektive GeschwindigkeitDie aktuell auf dem Router erzwungene Geschwindigkeit – die Plangeschwindigkeit, die durch jedes aktive Geschwindigkeitsfenster angepasst wird. Ein gedrosseltes -Abzeichen bedeutet, dass der Abonnent durch ein Limit auf einer reduzierten Geschwindigkeit gehalten wird.
Down / UpLive-Byte-Zähler für die Sitzung
OnlineWie lange dauert die Sitzung?
GestartetWann die Sitzung begann

Eine Sitzung trennen

Die Schaltfläche Disconnect in einer Zeile stellt einen CoA-Disconnect in die Warteschlange. \n für genau diese Sitzung (Grund admin_manual ) nach einer Bestätigungsaufforderung.\n Der Abonnent scheidet sofort aus; Wenn ihr Konto noch aktiv ist, steht es ihnen frei, dies zu tun\n wieder verbinden. Verfolgen Sie das Paket im CoA-Postausgang .

Täglicher Betrieb

Berichte & Analytik

Übersicht → Berichte ist die Analyseansicht – Abonnent Trends, Verkehr im Laufe der Zeit und die intensivsten Benutzer und Karten in Ihrem Netzwerk.

Bereich auswählen

Jede Zahl auf der Seite ist an einen Datumsbereich gebunden. Wählen Sie eine Voreinstellung – 7d, 14d, 30d, 90d – oder geben Sie explizit start und ein Endtermine und klicken Sie auf Anwenden . Eine Ladeauflage deckt ab die Seite, während eine Abfrage mit großer Reichweite wie 90d ausgeführt wird.

Abonnenten- & Sitzungstrends

Ein Liniendiagramm mit drei Reihen über dem ausgewählten Bereich: Aktiv Abonnenten, Online- Sitzungen und Abgelaufene Abonnenten. Verwenden Sie es, um Wachstum, Abwanderung und die Auslastung Ihres Netzwerks zu erkennen.

Täglicher Datenverkehr

Ein gestapeltes Balkendiagramm mit Upload- und Download- Bytes pro Tag. Wenn Sie mit der Maus über einen Tag fahren, werden die Upload- und Download-Zahlen sowie eine Kombination angezeigt insgesamt in der Tooltip-Fußzeile.

Top-10-Listen

Vier Tabellen zeigen Ihre Konten mit dem höchsten Datenverkehr, jeweils geordnet nach Volumen in GB:

ListeRänge
Top 10 Download heuteGrößter Download seit dem letzten Tagesreset
Top 10 Upload heuteGrößter Upload seit dem letzten Tagesreset
Top 10 Download MonatGrößter Download in diesem Kalendermonat
Top 10 Upload MonatGrößter Upload in diesem Kalendermonat

Datenverkehr nach Entität

Eine paginierte, durchsuchbare Tabelle des Datenverkehrs pro Konto. Zwei Registerkarten wechseln die Liste:

  • Benutzer – jeder Abonnent mit seinem Namen, Plan und dem heutigen Upload/Download in MB und der Upload/Download dieses Monats in GB.
  • Karten – jede Hotspot-Karte mit ihrer Gruppe, ihrem Status usw Verkehrsaufteilung heute/Monat.

Das Suchfeld filtert die Tabelle während der Eingabe. die Der Selektor pro Seite benötigt 20 bis 200 Zeilen. Jede Zeile ist mit verlinkt die Detailseite dieses Abonnenten oder dieser Karte.

Exportieren Berichte sind eine Analyseansicht auf dem Bildschirm. Damit Rohzeilen in einer Tabellenkalkulation verarbeitet werden können,\n Verwenden Sie zum Herunterladen Extras → Exportieren/Importieren Benutzer, Pläne oder NAS als CSV / XLSX.

Täglicher Betrieb

Buchhaltung & Abrechnung

SAMM verfügt über ein integriertes doppeltes Buchhaltungssystem – Rechnungen, Ausgaben, Quittungen, Zahlungen, Wiederverkäufer, Anlagevermögen und vollständige Finanzen Aussagen. Es gibt kein separates Abrechnungsprodukt zur Integration und keinen Buchhalter nötig, um die Bücher klar zu halten.

Sie berühren nie Soll und Haben Jede Aktion – eine Zahlung erfassen, eine Ausgabe hinzufügen, eine Kartengruppe verkaufen – bucht automatisch einen ausgeglichenen Journaleintrag im Hauptbuch. Du Arbeiten Sie in einfachen Worten (Rechnungen, Ausgaben, Quittungen); SAMM behält den doppelten Eintrag bei Bücher hinter den Kulissen und beweist, dass sie in der Probebilanz ausgeglichen sind.

Die Seite Buchhaltung ist in elf Registerkarten gegliedert.

Übersicht

Die finanzielle Momentaufnahme. An der Spitze stehen vier Schlagzeilen:

KennzahlBedeutung
KassenbestandGesamtsaldo über alle Kassen- & Bankkonten
Geld, das Ihnen zustehtForderungen — unbezahlte Kunden- und Wiederverkäuferrechnungen
Geld, das Sie schuldenVerbindlichkeiten — unbezahlte Ausgaben
Gewinn diesen MonatEinnahmen minus Ausgaben für den aktuellen Monat

Unten: eine Tabelle mit allen Bargeld- und Bargeldbeträgen. Bankkonto mit seinem Saldo und ein Einnahmen-Ausgaben-Diagramm über die letzten 1, 2, 3, 6 oder 12 Monate.

Rechnungen

Eine Rechnung ist eine von Ihnen ausgestellte Rechnung. Klicken Sie auf Neue Rechnung und füllen Sie aus:

FeldBedeutung
KundeTipp-Suche nach dem Konto, das abgerechnet wird
UmsatzkategorieAuf welches Einnahmekonto der Verkauf gebucht wird
Ausstellungs-/FälligkeitsdatumLeeres Ausgabedatum = heute; leeres Fälligkeitsdatum = Ausstellungsdatum
Steuersatz % / SteuergruppeStandardmäßig wird der Tarif in Einstellungen → Abrechnung verwendet; Weisen Sie eine Steuergruppe zu, um mehrere Steuersätze (MwSt./GST und mehr) gleichzeitig anzuwenden, wobei jeder auf sein eigenes Steuerkonto gebucht wird
PositionenEine oder mehrere Beschreibungs-/Mengen-/Einheitspreiszeilen – Zwischensumme, Steuer und Gesamtsumme werden live berechnet

Wie viel wird berechnet – voll, segmentiert oder nichts?

Überall dort, wo SAMM einem Abonnenten eine Rechnung ausstellen möchte – bei der Aktivierung, Erneuerung oder Änderung eines Planen, einen Ablauf verlängern oder eine davon in großen Mengen durchführen – das Gleiche Rechnungsauswahl erscheint und zeigt den Betrag an, bevor Sie verpflichten:

AuswahlWas es kostet
Vollständige RechnungNur ganze Planzeiträume – ein Teilzeitraum wird zu einem ganzen aufgerundet.
Segmentierte RechnungDie genaue Zeit, anteilig der letzte Teilzeitraum. Der Gesamtbetrag wird auf den nächsten ganzen Betrag gerundet, wobei die Differenz als Rundungsanpassung verbucht wird, sodass die Bücher immer noch ausgeglichen sind.
Keine RechnungÄndern Sie den Service und berechnen Sie nichts – eine Kulanzverlängerung, eine Migration, eine Korrektur.

Legen Sie die Länge mit dem -Periodenmultiplikator für ganze Planperioden fest. Oder geben Sie ein genaues Datum ein und lassen Sie SAMM die Kosten ermitteln. So oder so zeigt das Panel das an Einzelposten, die Steuer und der Gesamtbetrag, wenn Sie sie ändern, und Bezahlt zeichnet einen Bargeldbetrag auf sofort den Gesamtbetrag bezahlen.

„Keine Rechnung“ ist ein Recht, kein Kontrollkästchen Nichts zu verlangen ist eine finanzielle Entscheidung und unterliegt daher einer rollenspezifischen Berechtigung Einstellungen → Administratoren . Am wichtigsten ist es mit Agenten : ein Agent, dessen Abonnenten ihr eigenes Prepaid-Guthaben abrechnen Andernfalls könnten Sie Ihre Pläne den ganzen Tag verlängern, ändern und die Laufzeit verlängern, ohne jemals dafür bezahlen zu müssen sie. Bei neuen Rollen wird das Recht ausgeschaltet .

Mahnwesen & Prepaid-Geldbörse

Über einmalige Rechnungen hinaus automatisiert SAMM den gesamten Inkassozyklus. A Mahnplan legt einen Rechnungstag, einen Fälligkeitstag und einen automatischen Sperrtag fest – mit optionalen Verspätungsgebühren – so werden überfällige Abonnenten ohne Sie erinnert und dann unterbrochen eine Tabellenkalkulation ansehen. Ein Prepaid-Wallet- -Modus ermöglicht es Abonnenten, eine zu halten Saldo, der Rechnungen bei Verlängerung automatisch begleicht; Sie füllen es selbst aus dem auf Kundenportal per Karte oder Krypto, und jede Auf- und Abbuchung wird im Hauptbuch gebucht.

Rechnungen werden auch automatisch generiert, wenn der Plan eines Abonnenten abgeschlossen wird wird erneuert (durch die Aktion Ablauf verlängern des Benutzers oder durch automatische Verlängerung), vorausgesetzt Der Plan hat einen Preis. Die Liste wird nach Status gefiltert: unbezahlt, teilweise, fällig, bezahlt – und sucht nach Rechnungsnummer oder Kunde. Öffnen Sie eine beliebige Rechnung dafür Detailseite und ein druckbares PDF; Abonnenten können ihre eigenen Exemplare von herunterladen Kundenportal und Telegram Bot.

Ausgaben

Eine Ausgabe ist Geld, das für den Betrieb des ISP ausgegeben wird. Neue Ausgabendatensätze a Kategorie (das Spesenkonto), der bezahlte Kreditor, der Betrag, das Anfallsdatum und eine optionales Fälligkeitsdatum. Für jede Ausgabe gelten die gleichen unbezahlt/teilweise/fällig/bezahlt . Lebenszyklus als Rechnung, Detailseite und druckbares Gutschein-PDF .

Quittungen & Zahlungen

Auf diesen beiden Registerkarten werden die tatsächlichen Bargeldbewegungen erfasst – unabhängig von der Rechnung oder Ausgabe dass es verursacht hat.

  • Quittungen – Geld in : Von einem Kunden erhaltenes Bargeld, a Wiederverkäufer oder andere Einnahmen, die auf einem Ihrer Geldkonten landen. Eine Rechnung ist die Rechnung; Die Quittung ist das dafür eingegangene Geld.
  • Zahlungen – Geld aus : Barzahlung gegen eine Ausgabe oder an einen Wiederverkäufer.

Durch das Erfassen einer Quittung oder Zahlung wird die zugehörige Rechnung oder Ausgabe verschoben hat bezahlt und bucht den entsprechenden Hauptbucheintrag.

Kunden & Kartenverkäufe

Auf der Registerkarte Kunden wird der laufende Kontostand jedes Kunden aufgeführt schulde dir was. Kartenverkäufe decken den Prepaid-Hotspot-Umsatz ab: Es werden die verkauften Karten erfasst Kartengruppen und Wiederverkäufer . Ein Wiederverkäufer kauft die ganze Karte Gruppen von Ihnen auf einer Rechnung und verkauft die einzelnen Karten dann an Endbenutzer weiter; ihr Der geschuldete Restbetrag ist der Betrag, den sie Ihnen noch auszahlen müssen.

Agenten — Großhandelsabrechnung

Ein Agent verkauft Ihren Dienst im Prepaid-Großhandelsmodell an Endkunden weiter — vergleichbar mit einem Franchise oder Unterhändler, der sein eigenes Kundenbuch führt, aber Ihr Netz nutzt. Es ist völlig optional: Wenn Sie nie einen Agenten anlegen, funktioniert die Abrechnung genau wie bisher.

Zwei Schulden, sauber getrennt Der Agent schuldet Ihnen den Großhandelspreis (in Ihren Büchern ist das Ihr Umsatz); der Kunde schuldet dem Agenten den Endkundenpreis (außerhalb Ihrer Bücher — die eigene Forderung des Agenten). Ihre Provision ist die Differenz zwischen beiden und wird als Handelsrabatt gebucht, nie als Aufwand.

Erstellen Sie einen Agenten unter Einstellungen → Administratoren, indem Sie einem neuen Administrator die integrierte Rolle Agent geben. Ein Agent ist ein bereichsbeschränkter Administrator-Zugang mit:

EinstellungBedeutung
Provision %Der Anteil des Agenten am Endkundenpreis (z. B. 40% — Sie behalten 60% als Großhandelsumsatz). Jederzeit pro Agent anpassbar.
KreditlimitWie weit das Prepaid-Guthaben des Agenten ins Minus gehen darf, bevor Verlängerungen abgelehnt werden. Für striktes Prepaid auf 0 setzen.
Prepaid-GuthabenLaden Sie es auf, wenn der Agent Sie bezahlt; jede Verlängerung bucht den Großhandelspreis davon ab.

Wenn einer der Abonnenten des Agenten verlängert wird, bucht SAMM den Großhandelspreis vom Guthaben des Agenten ab, verbucht Ihren Umsatz und stellt dem Endkunden eine echte Endkundenrechnung aus, die an den Agenten zahlbar ist und außerhalb Ihres Hauptbuchs bleibt. Das Mahnwesen auf Agentenseite — mit eigenem Schalter unter Einstellungen → Abrechnung, standardmäßig aktiv und mit editierbarer Karenzzeit — sperrt einen nicht zahlenden Kunden automatisch (per CoA-Trennung); sobald der Agent die Zahlung des Kunden erfasst, wird der Abonnent sofort reaktiviert.

Ein Agent meldet sich in einer bereichsbeschränkten Ansicht an: sein eigenes Dashboard, eine Wallet-Seite Mein Guthaben, eine Liste Meine Kunden mit den Rechnungen und Zahlungen jedes Kunden und ein Mein Kontoauszug — alles auf sein eigenes Buch beschränkt. Ihre unternehmensweiten Bücher, andere Agenten und die Kunden anderer Administratoren bleiben verborgen.

Anlagen & Kassenkonten

  • Vermögenswerte – Registrieren Sie Anlagevermögen (Router, Fahrzeuge, Ausrüstung). SAMM verfolgt ihren Wert und Wertverlust im Laufe der Zeit.
  • Bargeld – verwalten Sie Ihr Bargeld und Bargeld. Bankkonten , und Ihre Kapitalkonten : Eigenkapital, wo eine Einlage erfolgt Geld, das der Eigentümer in das Unternehmen einzahlt, und eine Abhebung ist abgehobenes Geld. Kapital ist kein Umsatz und erscheint nie in der Gewinn- und Verlustrechnung. Verlust.

Berichte — die Finanzberichte

Die Registerkarte Berichte ist die Ansicht des Buchhalters. Jeweils fünf Aussagen datumsbezogen und exportierbar als PDF :

BerichtBeantwortet
Gewinn & VerlustEinnahmen vs. Ausgaben und Nettogewinn über einen Zeitraum. Periodenabgrenzungsbasis – Einnahmen zählen, wenn sie in Rechnung gestellt werden, Ausgaben, wenn sie anfallen, nicht, wenn Bargeld bewegt wird.
BilanzAb einem Datum: Ihr Eigentum (Vermögenswerte) im Vergleich zu Ihren Schulden (Verbindlichkeiten) plus Eigenkapital. Ein ausgeglichenes -Abzeichen bestätigt die Übereinstimmung der beiden Seiten.
CashflowPro Geldkonto – Eröffnungssaldo, Geldeingänge, Geldausgänge, Schlusssaldo über einen bestimmten Bereich.
FälligkeitAusstehende Forderungen und Verbindlichkeiten sind nach Altersgruppen sortiert, sodass Sie überfällige Rechnungen verfolgen und immer einen Überblick über Rechnungen haben.
ErweitertDie rohen Bücher: Hauptbuch (jede Zeile eines Kontos mit laufendem Saldo), Probesaldo (Überprüfung der ausgeglichenen Bücher), das Journal und ein Aktivitätsprotokoll.
Die Saldokontrolle Im Testsaldo müssen die Soll- und Habenspalten jedes Kontos angegeben werden völlig gleich – das ist der Beweis, dass die Bücher solide sind. Sollte es jemals aus dem Gleichgewicht geraten, es weist auf einen Buchungsfehler hin, der untersucht werden sollte.

Export in eine Buchhaltungssoftware

Laden Sie unter Buchhaltung → Berichte → Exportieren die Bücher als CSV herunter QuickBooks, Xero oder eine beliebige Tabellenkalkulation: Hauptbuch, Kontenplan, Rechnungen, Testversion Bilanz, Gewinn & Verlust und Bilanz. Hauptbuch, Rechnungen und Gewinn- und Verlustrechnung verwenden das Datumsbereich; Der Rest ist Stand heute. Die gleichen Daten sind über die API unter verfügbar GET /api/v1/accounting/export/{kind} ( format=json|csv , Geltungsbereich accounting:read ) für BI-Pipelines und Zapier. Exporte schließen ungültige Einträge aus, also a Der Download stimmt immer mit den Bildschirmberichten überein.

Täglicher Betrieb

Rückgängig machen & Genehmigungen

Die meisten Fehler in einem ISP-Panel sind Geldfehler: Der falsche Abonnent hat erneuert, eine Zahlung wurde doppelt erfasst, ein Plan wurde auf dem falschen Konto geändert. SAMM gibt dir ein fünfminütiges Rückgängig-Fenster für diese Aktionen und – wo eine Aktion Geld ausgibt zurück – ein Superadmin-Genehmigungstor , bevor es überhaupt in Kraft tritt.

Das Rückgängig-Fenster

Jede Verwaltungsaktion, die Geld oder Staat bewegt, wird aufgezeichnet, sobald sie stattfindet. Für die nächsten fünf Minuten enthält die obere Leiste eine Schaltfläche Rückgängig und eine Liste Aktionsverlauf – Klicken Sie auf den Pfeil, um die letzte Aktion rückgängig zu machen, oder öffnen Sie die Durchsuchen Sie den Verlauf und springen Sie zu einer beliebigen Stelle innerhalb des Fensters zurück. Wiederholen setzt es zurück.

Warum nur fünf Minuten Ein Rückgängigmachen ist keine Zeitmaschine – es ist ein Sicherheitsnetz für den Klick, den Sie gerade gemacht haben. Nach ein paar Minuten hat sich die Welt weitergedreht: Der Abonnent war online, eine Rechnung wurde bezahlt, jemand anderes hat den Datensatz bearbeitet. SAMM würde lieber ablehnen als stillschweigend Schreiben Sie den Verlauf neu, sodass der Schritt einfach Ihren Verlauf verlässt, wenn das Fenster geschlossen wird.

Ein Rückgängigmachen lehnt ab – mit dem Grund auf dem Bildschirm – wenn das Rückgängigmachen etwas zerstören würde, das es nicht erstellt hat:

AblehnungWas es bedeutet
Dieser Datensatz existiert nicht mehrDer Abonnent, die Rechnung oder die Zahlung wurde nach Ihrer Aktion gelöscht – Sie können nichts mehr zurücksetzen.
Dieser Datensatz existiert wiederAn seiner Stelle wurde etwas neu geschaffen; Beim Rückgängigmachen würde der neuere Datensatz überschrieben.
Dieser Datensatz wurde nach Ihrer Aktion geändertJemand anderes hat es in der Zwischenzeit bearbeitet. Durch das Rückgängigmachen würde die Bearbeitung stillschweigend verworfen.
Dieser Schritt ist nicht mehr in Ihrer GeschichteDas Fünf-Minuten-Fenster ist geschlossen.

Beim Rückgängigmachen handelt es sich um eine -Umkehrung, nicht um eine Löschung. : die ursprüngliche Aktion und ihr Rückgängigmachen Beide bleiben im Audit-Protokoll , sodass die Aufzeichnung des Geschehens erhalten bleibt nie verloren. Aktionen, die etwas erstellen, warnen Sie deutlich – wenn Sie dies rückgängig machen, wird es gelöscht was es erstellt hat – bevor sie ausgeführt werden.

Das Agentengenehmigungstor

Ein Agent bezahlt einen Abonnenten aus eigener Tasche Sie erhalten Ihr Prepaid-Guthaben in dem Moment, in dem sie es aktivieren. Das macht das Umkehren von zu einer Aktion eine Möglichkeit, Geld zurückzubekommen – und eine Möglichkeit zu betrügen: Aktivieren Sie einen Abonnenten, lassen Sie ihn das nutzen gesamten Monat, löschen Sie sie dann am letzten Tag und fordern Sie die Gebühr zurück.

Daher teilt SAMM die Aktionen eines Agenten nach der Art und Weise auf, wie sich das Geld bewegt:

RichtungBeispieleVerhalten
Kostet den Makler Geld Aktivieren, erneuern, Plan ändern, Kundenzahlung einziehen Sofort. Der Tagesjob eines Agenten wartet nie auf irgendjemanden.
Gibt Geld zurück Rückgängig machen, einen Abonnenten löschen, eine Rechnung löschen, eine Sammlung stornieren Als Anfrage geparkt. Es ändert sich nichts, bis ein Superadmin es genehmigt.

Gated Actions passieren nicht zur Hälfte. Die Anfrage wird mit allem Notwendigen gespeichert Führen Sie es später aus, und wenn Sie genehmigen, wird es mit demselben Code wiederhergestellt, den der Agent ausführen würde habe ausgeführt – nie eine zweite Implementierung, die von der ersten abweichen könnte. Ablehnen lässt die Welt genau so zurück, wie sie war, und der Agent behält die Ladung.

Arbeiten in der Warteschlange

Anfragen landen in Buchhaltung → Agentengenehmigung mit dem Agent, die Aktion, worauf sie sich bezieht und wie viel Geld sie zurückgibt – die Zahl, die die Entscheidung trifft. Nach Agent oder Status filtern, suchen, mehrere ankreuzen und sie gemeinsam genehmigen oder ablehnen ; Eine Ablehnung kann einen Kurzschluss nach sich ziehen Grund, den der Agent sieht.

Delegieren Sie es Den ganzen Tag über Agenten zu überprüfen, ist selten die Aufgabe des Superadministrators. Die Das Recht Agentengenehmigung kann jeder Rolle in gewährt werden Einstellungen → Administratoren , also die Person, die tatsächlich die Überprüfung durchführt bekommt genau diese Kraft – und sonst nichts. Erstellen und Verwalten von Agentenaufenthalten Nur Superadministratoren. Niemand kann über sein Anliegen selbst entscheiden.

Was der Agent sieht

Ein Agent erhält die Seite Mein Konto → Ausstehende Genehmigungen alles auflisten, wonach sie gefragt haben: was noch wartet und was genehmigt wurde bzw abgelehnt – mit der Begründung des Rezensenten. Ohne sie wäre eine Ablehnung nicht zu unterscheiden von einer Anfrage, die verschwand, und sie fragten einfach noch einmal.

Sie können ihre eigenen ausstehenden Anfragen zurückziehen – einzeln oder einzeln mehrere auf einmal – denn um etwas zu bitten, das man nicht widerrufen kann, ist eine eigene Falle. Ein zurückgezogener Die Anfrage wurde nie ausgeführt, daher ändert sich nichts. ein entschiedenes ist Geschichte und bleibt. Eine Rechnung Warten auf Überprüfung sagt dies auch auf seiner eigenen Seite, also ein Agent, der auf Löschen geklickt hat und Habe gesehen, dass nichts passiert ist, versteht warum.

Für Ihre Abonnenten

Online-Zahlungen

SAMM können Ihren Abonnenten ermöglichen, ihre eigenen Rechnungen online zu bezahlen – per Bankkarte ( Stripe oder PayPal ) oder mit Krypto / USDT ( Binance ). Wenn ein Abonnent zahlt, SAMM markiert die Rechnung als bezahlt, verbucht sie in Ihren Büchern und – falls sie abgezogen wurde Nichtzahlung – verbindet sie automatisch wieder. Ihnen werden keine Kosten berechnet: Jedes Gateway nutzt Ihr eigenes -Konto, damit das Geld direkt an Sie geht.

Schalten Sie es ein (beliebiges Gateway)

  1. Öffnen Sie Finanzen → Online-Zahlungen (nur Superadmin).
  2. Klicken Sie auf ein Gateway, um es zu erweitern – Stripe , PayPal oder Binance / USDT .
  3. Füllen Sie die Felder aus, markieren Sie Dieses Gateway aktivieren und klicken Sie auf Speichern . SAMM lässt Sie nicht speichern, bis die erforderlichen Felder ausgefüllt sind.
  4. Klicken Sie auf Test ausführen , um zu bestätigen, dass Ihre Anmeldeinformationen funktionieren.
  5. Fertig – Ihre Abonnenten sehen jetzt auf ihren unbezahlten Rechnungen im Portal (und auf der Seite „Abonnement abgelaufen“) die Schaltfläche Bezahlen .

Sie können mehr als ein Gateway aktivieren – der Abonnent entscheidet, welches er verwenden möchte.

Stripe – Bankkarten, weltweit

  1. Erstellen Sie ein kostenloses Konto bei stripe.com . Lassen Sie den Testmodus aktiviert, während Sie es ausprobieren.
  2. Gehen Sie zu Entwickler → API-Schlüssel ​​und kopieren Sie den geheimen Schlüssel ​​(er beginnt mit sk_ ).
  3. Erweitern Sie in SAMM Stripe , fügen Sie den Geheimschlüssel ein, wählen Sie die Währung und das Geldkonto aus, das ihn erhält, dann Speichern und Test ausführen .
  4. Empfohlen: Fügen Sie einen Webhook hinzu, damit Zahlungen zuverlässig bestätigt werden. Gehen Sie in Stripe zu Entwickler → Webhooks → Endpunkt hinzufügen , legen Sie die URL auf https://YOUR-SAMM/pay/webhook/stripe fest, wählen Sie das Ereignis checkout.session.completed aus und kopieren Sie dann dessen Signaturgeheimnis ( whsec_… ) in das Feld Webhook-Signaturgeheimnis von SAMM .
Live gehen Der Testmodus funktioniert überall. Um echtes Geld über Stripe zu erhalten, ist eine Stripe -Unterstützung erforderlich Land und ein verknüpftes Bankkonto.

PayPal – Karten & PayPal Guthaben

  1. Erstellen Sie ein PayPal Business -Konto, erstellen Sie dann unter Developer.paypal.com eine REST App und kopieren Sie deren Client-ID und Secret .
  2. Erweitern Sie in SAMM PayPal , fügen Sie die Client-ID und Client-Geheimnis ein, wählen Sie Sandbox (Testen) oder Live , dann Speichern und Test ausführen .
  3. Empfohlen: Fügen Sie einen Webhook unter Developer.paypal.com → Ihrer App → Webhooks , URL https://YOUR-SAMM/pay/webhook/paypal hinzu, abonnieren Sie CHECKOUT.ORDER.APPROVED und PAYMENT.CAPTURE.COMPLETED und fügen Sie dann die Webhook-ID in SAMM ein, damit eingehende Benachrichtigungen kryptografisch überprüft werden.

Binance / USDT – Krypto, funktioniert überall, keine Bank erforderlich

Dies ist die beste Option, wenn Karten und PayPal nicht verfügbar sind. Ihre Abonnenten senden USDT ; SAMM überwacht Ihr Binance -Konto und markiert die Rechnung als automatisch bezahlt. Sie benötigen drei Dinge: einen API-Schlüssel , ein API-Geheimnis und einen Ort dafür erhalten – eine Wallet-Adresse und/oder eine Binance Pay ID .

Schritt 1 – Erstellen Sie einen schreibgeschützten API-Schlüssel

Sicherheit geht vor Erstellen Sie den Schlüssel mit nur Lesezugriff . Aktivieren Sie niemals „Auszahlen“ oder „Handeln“ – SAMM muss nur Ihre eingehenden Zahlungen lesen , niemals Gelder verschieben.
  1. Melden Sie sich bei Binance an → öffnen Sie Konto → API Management (oder suchen Sie nach „API Management“).
  2. Klicken Sie auf API erstellen → wählen Sie Systemgeneriert → benennen Sie es z. B. „ SAMM “ → Sicherheitsüberprüfung abschließen.
  3. Binance zeigt den API-Schlüssel ​​und den Geheimschlüssel ​​– kopieren Sie jetzt beide (das Geheimnis wird nur einmal angezeigt).
  4. Klicken Sie auf Einschränkungen bearbeiten und lassen Sie nur „Lesen aktivieren“ angekreuzt. Lassen Sie Spot-Handel und Auszahlungen AUS. (Optional: Beschränken Sie den Schlüssel auf die IP-Adresse Ihres Servers.)
  5. Fügen Sie den API-Schlüssel ​​und das API-Geheimnis in die Binance -Karte von SAMM ein (zuerst den Schlüssel, dann das Geheimnis – die gleiche Reihenfolge zeigt sie bei Binance ).

Schritt 2 – Erhalten Sie Ihre empfangende Wallet-Adresse

  1. Gehen Sie in Binance zu Wallet → Spot → Einzahlung (Krypto einzahlen).
  2. Wähle die Münze USDT .
  3. Wählen Sie das Netzwerk TRC20 ist das günstigste und gebräuchlichste; BEP20 und ERC20 funktionieren auch. Verwenden Sie dasselbe, das Sie in SAMM ausgewählt haben.
  4. Kopieren Sie die Einzahlungs- -Adresse und fügen Sie sie in das Feld On-Chain-Empfangs-Wallet-Adresse von SAMM ein. Stellen Sie sicher, dass das Dropdown-Menü Netzwerk von SAMM mit dem von Ihnen ausgewählten Netzwerk übereinstimmt.

Schritt 3 – (optional) Binance Bezahl-ID

Für Abonnenten, die Binance Pay (sofort, keine Netzgebühr) bevorzugen: im Öffnen Sie die Binance App Pay und notieren Sie sich Ihre Pay-ID (Ihre E-Mail-Adresse oder Ihr Telefon funktionieren auch). Fügen Sie es ein in das Feld Binance Pay ID von SAMM ein. Abonnenten können dann auch per Pay ID bezahlen an der Kette.

Markieren Sie abschließend Aktivieren , klicken Sie auf Speichern und dann auf Test ausführen . (Es wird überprüft, ob der Schlüssel Ihr Konto lesen kann). Du bist live.

Exakte Menge, korrektes Netzwerk Ein Abonnent muss den genauen Betrag senden, den SAMM anzeigt (die letzten kleinen Ziffern). ihre Rechnung identifizieren) im richtigen Netzwerk . Eine andere Menge oder die falsche Netzwerk wird die Zahlung verzögern oder verlieren.

Was der Abonnent sieht

  1. Sie melden sich im Kundenportal → Meine Rechnungen an.
  2. Bei einer unbezahlten Rechnung klicken sie auf Bezahlen (oder „Bezahlen · Stripe “ / „Bezahlen · Binance “, wenn mehrere aktiviert sind).
  3. Karte: Sie werden zur sicheren Seite des Gateways weitergeleitet. USDT : Sie sehen den genauen Betrag, Ihre Adresse mit einem QR-Code und/oder Ihre Zahlungs-ID.
  4. Sobald die Rechnung bezahlt ist, wird sie zu Bezahlt , sie wird in Ihren Büchern gepostet, und wenn sie abgelaufen sind, werden sie automatisch wieder verbunden – abgelaufene Abonnenten erhalten auf der abgelaufenen Seite sogar die Schaltfläche „Bezahlen und erneut verbinden“.
Ihre Bücher bleiben exakt Bei jeder Online-Zahlung erfolgt eine ausgeglichene Doppelbuchung (Dr. Bargeld / Cr. Debitorenbuchhaltung) und zeichnet die Methode ( Stripe / Binance ) auf der Rechnung, im Zahlungsverlauf und im PDF auf – also Sie Sie wissen immer, wie die einzelnen Zahlungen eingegangen sind.

Täglicher Betrieb

Support-Tickets

SAMM verfügt über einen integrierten Helpdesk. Abonnenten erheben Tickets über das Kundenportal oder Wenn Sie den Telegram -Bot verwenden, kann ein Administrator einen im Namen eines Abonnenten öffnen, und Ihr Team funktioniert sie alle von Benutzer → Support-Tickets .

Die Ticket-Warteschlange

Die Warteschlange listet jedes Ticket auf – Nummer, Kunde, Betreff, Priorität, Status usw Öffnungs- und Datum der letzten Aktualisierung sowie die Anzahl der Nachrichten. Filtern Sie es mit:

  • Statuschips – einer pro Ticketstatus, jeder trägt ein Live zählen, sodass die Auslastung auf einen Blick ersichtlich ist.
  • Priorität – Normal, Moderat oder Kritisch.
  • Aktiv/Zurückgezogen – ein Kunde kann ein Ticket zurückziehen, das er nicht hat längerer Bedarf; Zurückgezogene Tickets sind standardmäßig abgeblendet und ausgeblendet.
  • Suche – nach Ticketnummer, Betreff oder Kunde.

Das Badge in der Seitenleiste zählt offene Tickets, sodass nichts übersehen wird.

Ein Ticket öffnen

Neues Ticket ermöglicht es einem Administrator, ein Ticket für einen ausgewählten Kunden zu erstellen – Wählen Sie den Kunden aus und legen Sie dann einen Betreff, eine Priorität und eine Beschreibung fest. Abonnenten öffnen auch ihre eigenen über das Kundenportal oder den Telegram -Bot.

An einem Ticket arbeiten

Öffnen Sie ein Ticket, um den vollständigen Konversationsthread zu lesen. Von dort aus können Sie:

  • Dem Kunden antworten – eine öffentliche Nachricht, die der Abonnent sieht ihr Portal und über den Telegram -Bot.
  • Fügen Sie eine interne Notiz hinzu – eine Nachricht nur für Mitarbeiter, die vor dem verborgen ist Kunde, für Übergabenotizen zwischen Ihrem Team.
  • Ändern Sie den Status und die Priorität des Tickets.

Klicken Sie mit der rechten Maustaste auf eine beliebige Zeile – oder verwenden Sie die Schaltfläche ⋮ – für denselben Status, dieselbe Priorität und dieselbe Antwort und interne Notizaktionen, ohne die Warteschlange zu verlassen.

Täglicher Betrieb

Benachrichtigungszentrum

SAMM hält Abonnenten automatisch auf dem Laufenden – über E-Mail , Telegram , SMS und WhatsApp – und ermöglicht das Versenden von Nachrichten. Die Der samm-notification -Dienst liefert alles über eine gedrosselte Warteschlange. Die Seite System → Benachrichtigungscenter verfügt über sechs Registerkarten.

Übersicht

Die Landing-Registerkarte – Live-Zählungen (in der Warteschlange, gesendet, heute gesendet, fehlgeschlagen, übersprungen, deaktiviert), den Status jedes Lieferkanals und einen Feed der aktuellsten Benachrichtigungen.

Kanäle

Konfigurieren Sie, wie Nachrichten gesendet werden SAMM . E-Mail verwendet eine eigene Benachrichtigung\n Konto, getrennt vom Passwort-Wiederherstellungs-SMTP in Einstellungen . Telegram verwendet ein Bot-Token, SMS läuft über ein generisches HTTP-Gateway oder Twilio und WhatsApp verwendet die offizielle Meta WhatsApp Cloud API (erstellt in Meta für\n Entwickler), mit einer optionalen inoffiziellen QR-verknüpften Brücke auf eigenes Risiko – der Brücke\n wird mit einem Klick auf einem Bare-OS-Server installiert und als betriebsbereiter Container auf Docker geliefert.\n Alle Kanalgeheimnisse werden gespeichert\n Fernet-verschlüsselt. Jeder Abonnent wählt im Kundenportal aus, welche Kanäle er nutzen möchte\n wollen und können ganz darauf verzichten.

Nachrichten

Die Nachrichten- -Vorlagen , ein Satz pro Ereignis. Bearbeiten Sie den Wortlaut Benachrichtigungen – Verlängerungserinnerungen, Quittungen und mehr – damit jede Nachricht versendet wird in deiner eigenen Stimme und Sprache.

Regeln & Timer

Auf dieser Registerkarte wird festgelegt, wann und wie automatische Benachrichtigungen ausgelöst werden. Für jedes von Ihnen kontrollierte Ereignis:

  • Ob die Regel auf ist.
  • Deaktivierung ignorieren – wenn diese Option aktiviert ist, erreicht die Nachricht jeden Abonnenten auch wenn sie sich abgemeldet haben. Reservieren Sie es für wichtige Transaktionsnachrichten.
  • Zeitpunkt – zum Beispiel, wie viele Tage vor Ablauf einer Verlängerung Erinnerung wird gesendet.
  • Lieferung & Drosselung – der Worker leert die Warteschlange eins Charge pro Tick; Die Stapelgröße und das Tick-Intervall bestimmen zusammen, wie schnell Nachrichten gesendet werden gehen aus, sodass eine große Sendung niemals Ihren Mailserver überschwemmt.

Zu den Ereignissen, die SAMM einzeln ausgegeben werden können, gehört die Erneuerungserinnerung . (bevor ein Abonnement abläuft), die Ablaufmitteilung (wenn es abläuft), die -Kontingentwarnung (da die Datenobergrenze zur Neige geht), die -Zahlung Quittung (wenn eine Zahlung erfasst wird) und Plan verlängert .

Rundsendung

Senden Sie eine einmalige Nachricht – ein Wartungsfenster, eine Preisänderung – an eine ausgewählte Gruppe von Abonnenten. Die Übertragung durchläuft dieselbe gedrosselte Warteschlange wie bei der automatischen Übertragung Benachrichtigungen.

Postausgang

Jede Nachricht SAMM wurde in die Warteschlange gestellt oder gesendet, mit ihrem Zustellungsstatus pro Nachricht, also Sie kann bestätigen, dass eine Benachrichtigung beim Abonnenten eingegangen ist, oder sehen, warum dies nicht der Fall war.

System

WireGuard VPN

SAMM kann normalerweise einen WireGuard VPN-Server auf dem Host SAMM ausführen für Remote-Administratorzugriff auf die SAMM -Box und Verwaltungszugriff auf die MikroTiks dahinter. Die Verwaltung erfolgt vollständig über System → VPN . Nein Schale benötigt.

Server-Registerkarte

  1. Klicken Sie auf Schlüssel generieren , um das Serverschlüsselpaar zu erstellen. Die Der öffentliche Serverschlüssel wird nach der Generierung angezeigt – Clients benötigen ihn.
  2. Legen Sie den Listen Port (UDP, Standard 51820 ) fest Server-Tunnel-Adresse (das CIDR auf der wg0 -Schnittstelle, Standardwert 10.254.254.1/24 ) und der Client-IP-Bereich – Die Start- und Endadressen SAMM werden automatisch an neue Peers verteilt.
  3. Aktivieren Sie VPN aktivieren WireGuard und klicken Sie auf Speichern – SAMM ruft die Schnittstelle wg0 auf. Der Schalter ist gesperrt, bis der Server die Tasten betätigt existieren.

Clients-Registerkarte

Klicken Sie auf Client hinzufügen , geben Sie dem Peer einen Namen und SAMM weist ihm den zu nächste Adresse aus dem Kundenkreis. Für jeden Peer können Sie seine Konfigurationsdatei herunterladen. Scannen Sie einen QR-Code mit der mobilen App WireGuard oder kopieren Sie den fertigen Code MikroTik RouterOS Befehle, um einen Router in das VPN einzubinden. Gleichaltrige können sein ein-/ausschaltbar oder gelöscht; Statusfarben zeigen an, ob jeder verbunden, veraltet oder ist noch nie gesehen.

Schlüssel neu generieren ist destruktiv „Schlüssel neu generieren“ ändert das Schlüsselpaar des -Servers . Jeder bereits bereitgestellte Client In der Konfigurationsdatei ist der alte öffentliche Serverschlüssel integriert und die Verbindung wird erst dann unterbrochen, wenn Sie dies tun Verteilen Sie die aktualisierte Konfiguration erneut. Die Benutzeroberfläche verbirgt dies hinter einem Dialog zur Typbestätigung.

System

Cloudflare-Tunnel

Ein Cloudflare Zero Trust-Tunnel veröffentlicht SAMM im öffentlichen Internet , ohne die Firewall-Ports zu öffnen – nützlich, wenn der Host SAMM inaktiv ist hinter NAT. Die Verwaltung erfolgt über System → Cloudflare Tunnel .

Dienststatus

Die Seite wird mit einer Statuskarte geöffnet, die den Status des Connectors meldet:

ZustandBedeutung
LäuftDer Tunnel ist aktiv und leitet Datenverkehr weiter
GestopptKonfiguriert, aber derzeit nicht aktiv
Nicht konfiguriertDas Binary ist vorhanden — Token einfügen zum Einrichten
Nicht installiertFühren Sie install.sh erneut aus, um die Binärdatei cloudflared zu installieren

Es zeigt auch die cloudflared Version und ob die Connector ist auf automatischer Start beim Booten eingestellt.

Tunnel konfigurieren

  1. Im Cloudflare Zero Trust-Dashboard ( one.dash.cloudflare.com ), öffnen Sie Netzwerke → Tunnel und Erstellen Sie einen Tunnel .
  2. Wählen Sie den Connector Cloudflared , benennen Sie den Tunnel und speichern Sie ihn. Auf Kopieren Sie im Installationsschritt nur das Token – die lange Zeichenfolge danach --token .
  3. Fügen Sie es in SAMM ein und klicken Sie auf Tunnel konfigurieren . SAMM übergibt die Token an cloudflared und startet den Connector.
  4. Fügen Sie in Cloudflare einen öffentlichen Hostnamen hinzu: Ihre gewählte Adresse, Typ HTTP , URL localhost:80 (Proxy durch Nginx – empfohlen) oder localhost:8000 (direkt zur API).

Innerhalb weniger Sekunden wird das Statusabzeichen grün und SAMM ist auf der erreichbar öffentlicher Hostname. Nach der Konfiguration können Sie mit Ein-Klick-Aktionen Starten , Stoppen oder Neustarten des Connectors, Ersetzen Token , um ihn zu drehen, oder Tunnel entfernen (ein Typ- REMOVE - zur Bestätigung Aktion).

Keine offenen Ports, Token nie in der Datenbank Der Tunnel stellt eine ausgehende -Verbindung zum Edge von Cloudflare her – nein Firewall-Port jemals auf dem Server geöffnet ist. Der Token wird weitergeleitet an cloudflared und gespeichert unter /etc/cloudflared/ ; SAMM niemals speichert es in der Datenbank. TLS endet am Rand von Cloudflare , sodass SAMM selbst ausgeführt wird einfaches HTTP auf dem Loopback.

System

Einstellungen

System → Einstellungen enthält die Live-, Hot-Reloadable-Funktion abstimmbare Elemente. Die Daemons lesen sie beim nächsten Tick erneut – kein Neustart des Dienstes benötigt . Die Einstellungen sind in Registerkarten organisiert.

Allgemeine Einstellungen

EinstellungStandardSteuerung
samm-radius interval30 sWie oft zeitgesteuerte Ereignisse ausgewertet und CoAs gesendet werden
samm-worker interval5 sRouter-Ping + MikroTik-API-Synchronisationstakt
Buchungs-Zwischenintervall60 sDas an Router übertragene Buchhaltungsintervall
Tägliche Rücksetzzeit00:00Wann tägliche Nutzungszähler zurückgesetzt werden
Server-ZeitzoneUTCZeitzone für Geschwindigkeitsfenster und den täglichen Reset
CoA-Standardport3799Standard-UDP-Port für CoA-Pakete
Maximale CoA-Wiederholungen3Wiederholungen vor dem Disconnect-Request-Fallback

Verringern Sie das Samm-Radius-Intervall für eine strengere Durchsetzung. Heben Sie es an, um die Belastung zu verringern.

ISP-Identität, Logo, Währung & Abrechnung (ISP-Tab)

Alles, wonach Betreiber fragen „wo ändere ich das?“, steht unter System → Settings → ISP. Ein Feld bearbeiten und Speichern klicken — die Änderung ist sofort aktiv (ohne Neustart) und erscheint auf Rechnungen, Belegen, PDFs und im Kundenportal.

Was Sie ändernWo es erscheint
ISP-NameRechnungen, Belege, Hotspot-Karten, Portal-Kopf
Support-Telefon & E-MailRechnungen und gedruckte Hotspot-Karten
Steuer-/RegisternummerAuf Rechnungen gedruckt
ISP-Logo (hochladen PNG/JPEG)Automatisch skaliert; erscheint auf Rechnungs-/Beleg-PDFs und gedruckten Hotspot-Karten. Zum Entfernen das ✕ in der Vorschau nutzen.
Währungscode (z. B. USD)Die ISO-Währung auf Rechnungen und im Hauptbuch
Währungssymbol (z. B. $)Jeder Betrag im Admin-UI, Kundenportal und in PDFs
Steuer ein/aus, Bezeichnung & SatzFügt Rechnungen eine VAT/GST-Zeile hinzu (z. B. Bezeichnung VAT, Satz 11 = 11%)
Das Währungssymbol ändern Um die überall angezeigte Währung zu ändern (z. B. von $ zu £ oder einem lokalen Symbol), stellen Sie Währungssymbol im ISP-Tab ein und speichern — es aktualisiert Admin-Panel, Kundenportal und alle PDFs auf einmal. Stellen Sie daneben den Währungscode (USD, EUR, …) für den auf Rechnungen gedruckten ISO-Code ein.

Datenschutz – anonyme Installationsstatistiken

Wenn SAMM nach Updates sucht, kann es SecuryTik eine zufällige Installations-ID, die SAMM -Version, Ihre Planstufe und ein grobes Land (von Ihrer IP über Cloudflare ) senden – keine Abonnenten- oder Kundendaten . Es hilft uns lediglich, aktive Installationen zu zählen und Support und Sprachen zu priorisieren. Sie können es jederzeit unter System → deaktivieren. Einstellungen → Datenschutz ; Weitere Informationen finden Sie in der Datenschutzerklärung .

E-Mail-Registerkarte

Konfigurieren Sie den SMTP-Server, der für Passwort-Wiederherstellungscodes verwendet wird, an die gesendet wird Administratoren und Kunden (Host, Port, SSL/STARTTLS, Benutzername, Absenderadresse, Passwort). Klicken Sie auf Verbindung testen , um die Anmeldeinformationen zu überprüfen, ohne E-Mails zu senden.

Zwei E-Mail-Konten Die Registerkarte „E-Mail“ dient hier nur der OTP-/Passwortwiederherstellung. Das Konto, für das verwendet wird\n Kunden- -Benachrichtigungen werden separat im konfiguriert Benachrichtigungscenter .

System

Administratoren & Rollen

System → Administratoren verwaltet, wer sich beim Administrator anmelden kann Portal und was jede Person tun kann. Es gibt zwei Registerkarten: Administratoren und Rollen .

Admin-Konten

Legen Sie einen Admin mit Benutzername, Passwort, optionaler E-Mail und Rolle an. Über das ⋮-Menü können Sie Rolle oder Passwort ändern, das Konto deaktivieren oder löschen. Nur ein Superadmin kann andere Admins verwalten — und drei Bereiche (Admins, Tools und API) sind Superadmin-exklusiv: sie können nie an eine eigene Rolle vergeben werden und erscheinen in der Matrix gesperrt.

Rollen & Berechtigungen

Eine -Rolle gewährt Zugriff pro Bereich. Der integrierte Superadministrator Die Rolle hat immer vollen Zugriff und kann nicht geändert werden. Erstellen Sie benutzerdefinierte Rollen für eine begrenzte Anzahl Zugriff – Eine neue Rolle beginnt ohne Zugriff, bis Sie ihre Berechtigungen festlegen.

Eine zweite integrierte Rolle, Agent, ist gesperrt und kann weder bearbeitet noch gelöscht werden: Sie macht den Administrator zu einem Großhandels-Reseller mit Prepaid-Guthaben, einem Provisionsanteil und einem Kundenbuch, das nur auf seine eigenen Abonnenten beschränkt ist. Das vollständige Modell finden Sie unter Buchhaltung & Abrechnung → Agenten.

Für jeden Bereich von SAMM (Teilnehmer, Tarife, NAS, Buchhaltung, Einstellungen usw.) wird eine Rolle auf eine von drei Stufen gesetzt:

EbeneBedeutung
Nicht erlaubtDer Bereich ist vollständig aus der Seitenleiste ausgeblendet
AnsehenNur-Lese-Zugriff
BearbeitenVollzugriff — erstellen, ändern, löschen

Neben den Bereichsebenen liegen zwei Rechte, da es sich bei jedem um eine Geldentscheidung und nicht um einen Bildschirm handelt:

RechtsWas es erlaubt
„Keine Rechnung“ zulassen Ändern Sie den Dienst eines Abonnenten – erneuern, ändern Sie den Plan, verlängern Sie ihn – und berechnen Sie dafür keine Gebühren. Bei jeder neuen Rolle standardmäßig deaktiviert.
Genehmigung durch Agenten zulassen Überprüfen Sie die vom Agenten eingereichten Anträge und entscheiden Sie, ob eine Belastung rückgängig gemacht werden soll. Das Erstellen und Verwalten von Agenten bleibt nur Superadministratoren vorbehalten. Siehe Rückgängig machen & Genehmigungen .
Das Armaturenbrett wird nie weggenommen Was auch immer einer Rolle sonst verweigert wird, jeder Administrator behält sein eigenes Dashboard und Profil – Ein Login, bei dem ein Berechtigungsfehler auftritt, ist ein fehlerhaftes Login und kein sicheres.

Datensichtbarkeitsbereich

Jede Rolle hat auch einen Geltungsbereich. Alle Kunden & anzeigen Karten bedeutet die Die Rolle sieht jeden Datensatz. Wenn es nicht aktiviert ist, ist die Rolle By-NAS-Gültigkeitsbereich : a Superadmin weist jedem Admin bestimmte Router zu („NAS-Zugriff“ im ⋮-Menü des Admins), und dieser Administrator sieht nur die Abonnenten und Kartengruppen, die diesen Routern zugeordnet sind – Ideal für Filialen, Franchises oder Wiederverkäufer. Abonnenten, die ein By-NAS-Administrator erstellt, sind automatisch an ihre Router gepinnt.

Die Lizenz ist immer erreichbar Die Seite System → License ist ein normaler Berechtigungsblock — aber sobald das Gerät in einem Sperrzustand ist (Grace, Soft oder Hard), erzwingt SAMM ihre Erreichbarkeit für jeden angemeldeten Admin unabhängig von der Rolle, damit der Wiederherstellungsweg nie versperrt ist.

System

Tools

Der Bereich Tools bündelt Massen- und Wartungswerkzeuge. Er wirkt auf den gesamten Datenbestand und steht daher nur Superadmins zur Verfügung.

Sicherung & Wiederherstellung

Erstellen Sie vor jeder größeren Änderung einen vollständigen Datenbank-Snapshot. Ein Backup ist ein komprimiertes Backup pg_dump -Archiv, das auf dem Server gespeichert ist, jedes mit einem SAMM -Header.

  • Backup erstellen – optional eine Notiz hinzufügen; Kreuzen Sie Nutzung & überspringen an. History für einen kleineren, schnelleren Dump, der umfangreiche Protokolltabellen weglässt.
  • Laden Sie ein Backup auf Ihren PC herunter oder laden Sie ein hoch vorherige SAMM Sicherung zurück auf den Server.
  • Wiederherstellung überschreibt die aktuelle Datenbank – geschützt durch a Geben Sie „ RESTORE “ ein, um den Dialog zu bestätigen.

Hohe Verfügbarkeit

Für eine Bereitstellung ohne Single Point of Failure führen Sie SAMM über zwei Knoten aus: PostgreSQL-Streaming-Replikation (eine Primärreplikation mit einem Sekundenrückstand im Hot Standby) plus einen Standby-AAA-Knoten und Hochstufen + Repointing bei Fehler. Der Vollbetreiber Runbook – Replikationseinrichtung, geplantes und ungeplantes Failover, Failback, optional Synchroner Replikationsmodus und eine Checkliste für die Post-Failover-Überprüfung – im Lieferumfang enthalten docs/HA.md mit der Quelle. Beachten Sie, dass es sich bei der Replikation nicht um eine Sicherung (ein fehlerhaftes Löschen) handelt wird sofort repliziert), also lassen Sie auch die oben genannten geplanten Backups laufen.

Verlaufsbereiniger

Löschen Sie alte Protokoll- und Verlaufszeilen dauerhaft, um Speicherplatz in der Datenbank freizugeben. Wählen Sie ein Retention-Voreinstellung auswählen und bestätigen. Der Reiniger schneidet geschlossene RADIUS-Sitzungen nach der Authentifizierung ab Aufzeichnungen, tägliche Nutzungs-Rollups, Router-/Schnittstellenverlauf, Einschränkungsprotokolle, angewandte Prüfung Einträge und fertige CoA-Zeilen. Es berührt niemals Live-Sitzungen in der Warteschlange Befehle, ausstehende CoAs oder die nicht rücksetzbaren Nutzungsgesamtwerte auf Lebenszeit.

Zuerst eine Sicherung erstellen History Cleaner löscht dauerhaft. Führen Sie bei Bedarf vor der Reinigung ein Backup durch die Daten später.

Export / Import

Massenexport und -import für Benutzer, Pläne und NAS als .csv oder .xlsx . Laden Sie eine Vorlage herunter (die richtigen Spalten plus a Beispielzeile) oder eine Momentaufnahme der aktuellen Daten, füllen Sie diese aus und laden Sie sie wieder hoch. Jede Zeile ist validiert und auf einem Vorschaubildschirm angezeigt – Duplikate und ungültige Zeilen werden angezeigt, und Sie entscheiden, ob Duplikate übersprungen oder an Ort und Stelle aktualisiert werden sollen – und zwar vorher alles ist geschrieben.

Massenänderungen

Nehmen Sie eine Änderung vor – Eigentümer, Ablaufdatum, Status, automatische Verlängerung oder den gesamten Plan Perioden – an jeden Abonnenten, der einem Filter entspricht, in einem einzigen Lauf. Wählen Sie die Änderung aus, erstellen Sie die Filtern Sie (Status/Plan/Eigentümer/Suche), überprüfen Sie die Übereinstimmungsliste und bestätigen Sie.

Ganze Planzeiträume hinzufügen ist die Option zur Massenverlängerung: jeweils Der Abonnent erhält so viele Zeiträume von seinem eigenen -Plan, dass ein 7-Tage-Plan also 7 Tage pro Tag gewinnt Zeitraum und ein Monatsplan gewinnen einen Kalendermonat – im selben Lauf, ohne ihn aufzuteilen Zuerst nach Plan auflisten. Abonnenten, deren Plan keine Ablauffrist hat, werden übersprungen vermutet. Tage hinzufügen bleibt verfügbar, wenn Sie eine feste Anzahl von Tagen wünschen und kein Zähler-Reset.

Geschwindigkeitsschub

Erhöhen oder verringern Sie die Geschwindigkeit von ganzen Plänen gleichzeitig um einen Prozentsatz – ein Feiertagswochenende mit doppelter Geschwindigkeit oder eine Notdrosselung, während ein Backhaul beeinträchtigt ist. Es tritt sofort in Kraft, sowohl für neue Anmeldungen als auch für Sitzungen, die bereits online sind.

KontrolleWas es macht
ProzentsatzPositive Multiplikationen, negative Divisionen: +100 % → doppelte Geschwindigkeit, –100 % → halbe Geschwindigkeit, –500 % → ein Sechstel davon. Die Geschwindigkeit erreicht nie Null.
Pläne zur SteigerungKreuzen Sie eine beliebige Anzahl an Plänen an; Jede Zeile zeigt die aktuelle Planrate, den Kraftschub und die effektive Geschwindigkeit an.
Automatische Rückkehr nachStunden, bis der Boost von selbst verfällt. 0 behält es bei, bis Sie es manuell zurücksetzen.
Ein Boost übertrifft ein Geschwindigkeitsfenster Der Boost wird anhand der Planrate gemessen und ersetzt alle Geschwindigkeitsfenster , während es live ist – ein Plan in einem 20M-Nachtfenster nicht 40 Mio. wird, wird es zu dem, was auch immer die Erhöhung seiner Planrate bewirkt. Windows setzt den Moment fort der Boost verfällt.

Ein Abonnent, der ein Limit ausgeschöpft hat, wird nie wieder auf den vollen Wert erhöht Geschwindigkeit durch einen Boost. Aus dem gleichen Grund wird ein Plan als Drosselungsziel verwendet übersprungen von Alle auswählen und als solche gekennzeichnet – eine Erhöhung würde genau das beschleunigen Leute, die Sie drosseln. Sie können es immer noch per Hand ankreuzen, wenn Sie das beabsichtigen. Alles auf Normal zurücksetzen entfernt alle Boosts und aktiviert die Live-Sitzungen wieder ihre Plangeschwindigkeit.

Massenlöschung

Durch Filter ausgewählte Abonnenten oder Hotspot-Karten auf einmal dauerhaft löschen. Durch das Löschen eines Abonnenten werden auch dessen Nutzungsverlauf, Sitzungen, RADIUS-Accounting usw. entfernt Rechnungen und trennt alle Live-Sitzungen. Wird durch einen Typ- DELETE -Dialog zur Bestätigung gesteuert.

System

Sprachen & Themes

Sprachen

Die Admin- und Kundenportale sind vollständig übersetzbar. Im Lieferumfang sind acht Sprachen enthalten: Englisch, Arabisch (von rechts nach links), Russisch, Persisch (von rechts nach links), Türkisch, Französisch, Spanisch und Deutsch . Jeder Benutzer wählt seine aus Sprache aus der oberen Leiste oder ihrem Profil; Die Auswahl wird pro Konto gespeichert.

Der Übersetzungseditor

Ein Superadmin kann Übersetzungen live bearbeiten System → Übersetzungen – kein Neustart, keine Dateibearbeitung. Der Editor erstellt auch völlig neue Sprachen und importiert/exportiert Übersetzungen Arbeitsmappen als .xlsx , sodass Sie SAMM in jede von Ihnen bereitgestellte Sprache lokalisieren können.

Themes

SAMM liefert 16 visuelle Themen , hell und dunkel. Jeder Benutzer wählt eine aus Thema aus der oberen Leiste; Die Vorschau wird sofort aktualisiert und pro Konto gespeichert. IT Terminologie wird nie übersetzt, sodass technische Bildschirme in jeder Sprache präzise bleiben.

System

Audit-Protokoll

System → Audit-Protokoll ist die Aufzeichnung von Administratoraktionen – und die Befehlswarteschlange, die sie ausführt. Wenn Sie einen Zähler zurücksetzen, einen Plan ändern, oder einen Abonnenten erneuern möchten, schreibt SAMM die Aktion hier, anstatt einen Live-Router zu berühren direkt.

Jeder Eintrag zeigt die Aktion, ihr Ziel, den Administrator, der sie ausgelöst hat, und wann sie ausgeführt wird passiert ist und ob es bereits angewendet wurde. Die Der samm-radius -Dienst entleert ausstehende Einträge bei seinem nächsten Tick und wo Bei Bedarf wird ein CoA ausgegeben, um eine Live-Sitzung zu aktualisieren. Das Sidebar-Badge zählt weiterhin Einträge ausstehend; Das Pipeline-Gesundheitspanel des Dashboards verfolgt den Rückstand.

Warum eine Warteschlange Das Weiterleiten jeder Administratoraktion durch das Audit-Protokoll bedeutet, dass Änderungen genau übernommen werden ein Prozess in einer vorhersehbaren Reihenfolge – es gibt nie einen Wettlauf zwischen dem Webportal und ein Router.

Lizenzierung

Lizenzierung & Stufen

Jede SAMM -Installation wird pro Gerät lizenziert – der Plan bleibt bestehen diese Installation, sodass Sie mehrere SAMM Server ausführen können, jeder auf seiner eigenen Ebene. Die Stufensätze drei numerische Großbuchstaben.

StufeAAA-BenutzerHotspot-KartenNAS / Router
Nicht registriert252001
Free1005002
Plus5002,0003
Pro2,0005,0005
Pro Maxunbegrenztunbegrenztunbegrenzt

Bei einer Neuinstallation wird unregistriert mit der Mindestuntergrenze ausgeführt. Jedes Feature ist Verfügbar auf jeder Stufe – die Stufe legt nur die Obergrenzen fest. Erstellen eines Abonnenten, einer Karte oder NAS, die über die Obergrenze hinausgehen, sind blockiert, bis Sie ein Upgrade durchführen. Es gehen niemals Daten verloren .

Aktivieren & upgraden

  1. Öffnen Sie System → Lizenz .
  2. Aktivieren Sie es, indem Sie sich mit Ihrem SecuryTik -Konto anmelden – oder verwenden Sie es Verknüpfen Sie dieses Gerät mit , auf dem ein von Ihnen genehmigter Code angezeigt wird samm.securytik.com ohne Eingabe\n Ihr Passwort auf dem Server. Das Gerät wird am Frei aktiviert.
  3. Um höher zu kommen, fordern Sie Pro oder Pro Max bei an Dieselbe Seite – ein SecuryTik -Administrator überprüft und genehmigt sie.

Auf der Seite „Lizenz“ wird bei Bedarf auch die Lizenz erneut überprüft und Ihre aktuelle Lizenz angezeigt Verwendung gegen jede Kappe. Verknüpfung mit Gerät aufheben, die Installation wird auf das zurückgesetzt unregistrierte Ebene ohne Löschen von Daten.

Wenn eine bezahlte Lizenz abläuft

SAMM löscht niemals Daten. Eine abgelaufene Lizenz tritt ordnungsgemäß zurück:

PhaseWas passiert
WarnungEin Erinnerungsbanner; alles läuft weiter
KulanzEin kurzes Zeitfenster zur Reaktivierung; Abonnenten bleiben online
Weiche SperrungHintergrunddienste werden gestoppt; RADIUS führt die Authentifizierung etwa sieben Tage lang fort
Harte SperrungDie Dienste werden mit Ausnahme der Reaktivierungsseite gestoppt

Durch die Reaktivierung zu einem beliebigen Zeitpunkt wird jeder Dienst automatisch neu gestartet – alle Abonnentendaten und der Verlauf bleiben erhalten.

Automatische Updates

Die automatische Aktualisierung erfolgt unabhängig von der Lizenzierung – Aktualisierungen jeder Stufe und einer abgelaufenen Lizenz blockiert es nie. SAMM sucht täglich nach einer neuen signierten Version. Von System → Lizenz , zwischen der Sie wechseln können benachrichtigen (Standardeinstellung: ein Banner mit der Schaltfläche Jetzt bewerben ) und automatisch (unbeaufsichtigt anwenden). Jedes Update wird überprüft, gesichert und angewendet Ort. Sie können das Installationsprogramm auch jederzeit erneut ausführen – es führt ein idempotentes Upgrade durch.

Für Ihre Abonnenten

Kundenportal & Bot

SAMM bietet jedem Abonnenten zwei Self-Service-Oberflächen – ein Webportal und ein Telegram bot – damit sie die Nutzung überprüfen und bezahlen können, ohne Sie zu kontaktieren.

Das Kundenportal

Abonnenten melden sich mit ihrem SAMM -Benutzernamen im SAMM -Site-Stammverzeichnis ( / ) an und Passwort. Das Portal verfügt über:

SeiteWas der Abonnent sieht
ÜbersichtKontostatus, Plan, Ablauf, heutige und monatliche Nutzung, etwaige ausstehende Rechnungen
Nutzung & SitzungenGesamte Downloads/Uploads, Betriebszeitbudget und vollständiger Sitzungsverlauf
Meine TarifeDer aktuelle Plan sowie der Katalog der verfügbaren Pläne
Meine RechnungenRechnungsverlauf mit PDF-Download mit einem Klick
Support-TicketsÖffnen und verfolgen Sie Support-Tickets
ProfilKontaktdaten bearbeiten, Passwort ändern, Sprache einstellen & Thema, Benachrichtigungen verwalten

Über Profil verbindet ein Abonnent sein Telegram -Konto und bestellt\n ihre bevorzugten Benachrichtigungskanäle oder lehnt Benachrichtigungen vollständig ab. Wenn sie\n Wenn Sie ihr Passwort vergessen, wird ihnen ein OTP-Code per E-Mail zugesandt (dafür ist die erforderlich). E-Mail-Registerkarte konfiguriert).

Der Telegram-Bot

Der Dienst samm-telegram führt einen interaktiven Self-Service-Bot aus. A Der Abonnent sendet /start , verifiziert sich einmal mit seinem SAMM -Benutzernamen und Passwort (der Bot löscht die Passwortnachricht sofort) und kann sie dann vollständig löschen aus dem Chat:

  • Überprüfen Sie den Plan, das Kontingent, die Nutzung und das Ablaufdatum
  • Rechnungen als PDF ansehen und herunterladen
  • Aktualisieren Sie ihr Profil und ändern Sie ihr Passwort
  • Öffnen und verfolgen Sie Support-Tickets

Der Bot liefert auch die automatischen Benachrichtigungen – Verlängerungserinnerungen, Ablauf Benachrichtigungen, Kontingentwarnungen und Quittungen – für Abonnenten, die Telegram verbunden haben.

Die Landingpage für abgelaufene Teilnehmer

Läuft ein Teilnehmer ab, leitet der Router (per "Expired-Pool & Internetsperre" des Assistenten) seinen Browser auf eine freundliche "Abo abgelaufen"-Seite um, die SAMM auf Port 81 ausliefert — mit Ihrem ISP-Logo und einem Login-Button ins Portal — statt auf eine stumm tote Verbindung.

System

REST API

System → API verwaltet die öffentliche /api/v1-Schnittstelle. Die API bleibt inaktiv, bis der erste Token erstellt wird — eine Installation, die sie nie nutzt, exponiert nichts. Alles Folgende gibt es auch als interaktive OpenAPI-Dokumentation — mit Try-it-Konsole und vollständigen Schemata — auf Ihrer eigenen Installation unter /api/v1/docs.

Interaktive Dokumentation (Swagger UI)

Jede Installation stellt unter /api/v1/docs eine Live-API-Konsole bereit — direkt aus dem API-Bereich im Admin-Portal erreichbar. Klicken Sie auf Authorize, fügen Sie ein Token ein, und jeder Endpunkt lässt sich mit Try it out gegen Ihre eigenen Daten ausführen; jeder Aufruf zeigt die echte Antwort plus einen kopierfertigen curl-Befehl.

Jeder Endpunkt deklariert ein vollständiges, typisiertes Schema — für Request-Bodies wie für Responses — sodass Feldnamen, Typen und Beispiele sichtbar sind, ohne etwas aufzurufen. Dasselbe Schema wird als maschinenlesbares OpenAPI unter /api/v1/openapi.json ausgeliefert und erzeugt einen vollständig typisierten Client in der Sprache Ihrer Wahl:

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

Schnellstart

  1. Öffnen Sie System → API (nur Superadmin), wählen Sie Name, Ablauf und die benötigten Scopes, dann klicken Sie Token erstellen.
  2. Kopieren Sie das Secret sofort — es wird genau einmal angezeigt und der Server speichert nur seinen Hash.
  3. Prüfen Sie, dass er funktioniert, und sehen Sie, was der Token kann:
curl -H "Authorization: Bearer samm_YOUR_TOKEN" https://YOUR-SAMM/api/v1/me

Aktive Teilnehmer auflisten, dann einen anlegen:

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

Authentifizierung, Tokens & Scopes

Jede Anfrage sendet Authorization: Bearer <token>. Ein Token trägt Name, Ratenlimit pro Minute, Ablauf (30–360 Tage oder nie) und einen Satz Scopes — Lese-/Schreibrechte pro Ressource; ein write-Scope enthält automatisch den passenden read-Scope. Das Secret wird genau einmal angezeigt; der Server speichert nur einen Hash. Ein Token kann widerrufen (Aufrufe schlagen sofort fehl, umkehrbar) oder endgültig gelöscht werden.

Antworten folgen einem Satz von Konventionen: Listen-Endpunkte nehmen limit/offset und liefern {"total", "items"}; Fehler nutzen Standard-Statuscodes — 401 fehlender/ungültiger/abgelaufener Token, 403 fehlender Scope, 404 nicht gefunden, 409 Duplikat, 422 Validierungsfehler und 429 beim Ratenlimit (mit Retry-After und X-RateLimit-*).

Endpunkt-Referenz

BereichEndpunkteScope
Introspektion GET /me · GET /commands jeder Token
Dashboard-Statistiken GET /stats/overview stats:read
Abonnenten GET/POST /customers · GET/PATCH/DELETE /customers/{id} · POST …/suspend · …/activate · …/renew · …/reset-limit · …/assign-plan · GET …/usage customers:read/write
Trennung POST /customers/{id}/disconnect · POST /sessions/disconnect · /sessions/reconnect coa:write
Tarife GET/POST /plans · GET/PATCH /plans/{id} plans:read/write
Rechnungen GET/POST /invoices · GET /invoices/{id} · GET /invoices/{id}/pdf · POST …/pay · …/unpay billing:read/write
Buchhaltungsbücher GET /accounting/export · GET /accounting/export/{kind} accounting:read
Live-Sitzungen GET /sessions · GET /coa-outbox sessions:read
Router GET /routers routers:read
Hotspot-Karten 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

Befehle in der Warteschlange

Änderungen am laufenden Abrechnungszustand — Limit-Resets, Karten-/Gruppen-Aktivierung, Gültigkeitsverlängerungen — werden nicht in der Anfrage angewendet. Sie landen in der auditierten Befehlswarteschlange und werden von samm-radius innerhalb eines Ticks (wenige Sekunden) angewendet — exakt wie dieselben Klicks im Admin-Portal. Solche Endpunkte antworten mit {"queued": true}; fragen Sie GET /commands ab, um Ihre Befehle auf applied wechseln zu sehen.

Webhooks

Registrieren Sie eine Endpunkt-URL und wählen Sie Ereignisse (Teilnehmer angelegt/geändert/verlängert/abgelaufen, Limit erschöpft, Rechnung erstellt/bezahlt, optionale Sitzungsereignisse). Das Signatur-Secret wird einmal bei der Erstellung zurückgegeben. Zustellungen werden mit Backoff wiederholt; ein dauerhaft fehlschlagender Endpunkt wird automatisch deaktiviert — reaktivieren mit POST /webhooks/{id}/enable oder ein Beispielereignis senden mit POST /webhooks/{id}/test.

Jede Zustellung trägt X-SAMM-Event und X-SAMM-Signature: sha256=HMAC(body). Vor dem Vertrauen prüfen:

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)
Gleiche Regeln wie im Portal API-Änderungen laufen durch dieselbe auditierte Befehlswarteschlange und Service-Schicht wie das Admin-Portal — ein Reset oder Tarifwechsel per API verhält sich exakt wie ein Klick in der Oberfläche, inklusive CoA.

Referenz

SAMM betreiben

Fast alles wird über das Admin-Portal erledigt. Diese Seite ist die Shell-Referenz für den seltenen Fall, dass Sie sie benötigen.

Dienstverwaltung

# 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

Admin-CLI

Für schnelle Abonnentenvorgänge über die Shell. Jeder Befehl wird in die Warteschlange für die Prüfung gestellt log und beim nächsten samm-radius Tick angewendet – genau wie die UI-Aktionen.

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

Konfigurationsdateien

DateiEnthält
/etc/samm/samm.yamlDer Datenbank-DSN, die Verbindungspoolgrößen und die Protokollebene
/etc/samm/api.envGeheimnisse der Portalsitzung und die SMTP-Einstellungen für die Kennwortwiederherstellung
/etc/samm/secret.keyDer Verschlüsselungsschlüssel für gespeicherte Router-API-Passwörter

Diese Dateien bleiben über Upgrades hinweg erhalten und werden nie überschrieben\n eine erneute Ausführung des Installationsprogramms. Laufzeit-Tuables (Schleifenkadenzen, tägliche Rücksetzzeit, CoA).\n Ports) leben stattdessen in Einstellungen und\n ohne Neustart anwenden.

SAMM aktualisieren

Entweder lassen Sie SAMM sich von System → Lizenz aktualisieren,\n oder führen Sie das Installationsprogramm erneut aus – siehe Installation → wird aktualisiert. Bei beiden Pfaden werden Migrationen erneut angewendet und Dienste neu gestartet. Ihre Konfiguration und\n Daten bleiben unberührt.

Sicherung & Wiederherstellung

Verwenden Sie Extras → Backup & Stellen Sie vollständig wieder her\n Datenbank-Snapshot vor jeder größeren Änderung. Um auf einem neuen Host neu zu erstellen, installieren Sie SAMM und\n Stellen Sie dann das Backup wieder her.

Wartungstools (extern)

Einige Wartungsarbeiten sind so destruktiv, dass sie nicht in den Administrator gehören Panel, wo ein verirrter Klick ein Live-Geschäft zerstören könnte. SAMM behält sie als eigenständige Elemente bei, Nur-Root-Skripte, die Sie absichtlich über die Shell herunterladen und ausführen – niemals als Schaltfläche. Sie befinden sich im öffentlichen Distributions-Repository unten tools/ .

Passwort eines ausgesperrten Admins zurücksetzen

Aus dem Admin-Panel ausgesperrt? Setzen Sie direkt in der Datenbank ein neues Passwort für ein Superadmin-Konto — ganz ohne funktionierenden Login. Deaktivierte Konten werden dabei reaktiviert; sonst wird nichts angefasst.

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)

Als root auf dem SAMM-Server ausführen. Gibt es mehrere Superadmins, wählen Sie mit --user <name> einen aus.

Setzen Sie die Bücher zurück (Finanzdaten löschen)

Löscht jede Finanztransaktion, sodass ein ISP seine Buchhaltung bei Null beginnen kann. Dabei bleiben alle Abonnenten- und AAA-Daten vollständig erhalten. Nützlich bei der Übernahme eines installieren, oder nach einer Probe-/Testphase, wenn die Bücher voller Daten sind, kann der Betreiber dies tun Die Wünsche sind weg, aber der Kundenstamm muss genau so bleiben, wie er ist.

Gefahr – irreversibler Datenverlust Dadurch werden alle Rechnungen, Zahlungen, Quittungen und Wallet-Guthaben dauerhaft vernichtet und Buchhistorie. Es gibt kein Rückgängigmachen. Der einzige Weg zurück ist ein Datenbank-Backup. Niemals Führen Sie es auf einer Produktionsinstallation aus, die Sie nicht zuvor gesichert und überprüft haben.

ENTFERNT: Rechnungen und deren Einzelposten, das doppische Hauptbuch (Zahlungen, Quittungen, Anpassungen, Aufladungen und Abhebungen), Online-Zahlung Transaktionen, Ausgaben, Anlagevermögen und das Buchhaltungsaktivitätsprotokoll. Rechnungsnummerierung wird zurückgesetzt, sodass die nächste Rechnung bei Nr. 1 beginnt.

Behalten: Jeder Abonnent, Plan, Geschwindigkeitsfenster, Limit, Nutzungszähler, Planverlauf, Hotspot-Karte, Router, Sitzung und RADIUS-Kontodatensatz – plus Ihre Buchhaltungskonfiguration (Kontenplan, Geldkonten, Steuergruppen, Zahlung). Gateways). Bargeld-, Brieftaschen- und Forderungssalden werden aus dem Hauptbuch abgeleitet Lesen Sie danach einfach Null ab.

Laden Sie es herunter, lesen Sie es und führen Sie es dann aus. Machen Sie immer zuerst einen Trockenlauf:

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
Leiten Sie es nicht direkt in eine Schale Führen Sie dies niemals als curl … | sudo bash aus. Für ein Skript, das Ihre Daten zerstört Ich möchte es zuerst lesen, und ein abgeschnittener Download darf nicht in der Lage sein, die Hälfte auszuführen wischen. Herunterladen, prüfen und dann ausführen.

Das Skript weigert sich, als Nicht-Root-Benutzer ausgeführt zu werden, und gibt genau das aus, was es ausgeben soll Löschen und fordert Sie dann auf, YES einzugeben, um zu bestätigen, dass Sie über ein verifiziertes Backup verfügen und WIPE , um fortzufahren. Es bietet an, zuerst einen eigenen Datenbank-Dump zu erstellen (in /var/backups/samm/ ) und bricht ab, wenn dieser Dump fehlschlägt. Der Wischvorgang läuft als einzelne Alles-oder-Nichts-Transaktion, und RADIUS wird absichtlich durchgehend ausgeführt, also Abonnenten bleiben online, während die Bücher gelöscht werden.

Referenz

FAQ & Fehlerbehebung

Welche Betriebssysteme unterstützt SAMM ?

Ubuntu 22.04 / 24.04 / 26.04 LTS und Debian 12 / 13. Nur Serverqualität Linux – Desktop-Varianten werden nicht unterstützt. Das Installationsprogramm erwartet systemd, ein neues PostgreSQL-Installation (eine davon ist für Sie eingerichtet) und Root-Zugriff.

Benötige ich eine Internetverbindung, um SAMM auszuführen?

Nein. SAMM läuft vollständig auf Ihrem eigenen Server und authentifiziert Abonnenten lokal über RADIUS. Der einzige ausgehende Datenverkehr ist ein periodischer Lizenz-Heartbeat an den SecuryTik -Lizenzserver, damit Ihr Plan validiert bleibt.

Kann ich SAMM in der Cloud ausführen oder muss es vor Ort sein?

Beides funktioniert. Die meisten Betreiber betreiben On-Prem neben ihren Kernroutern; einige rennen auf einer kleinen Cloud-VM mit einem Cloudflare Zero Trust-Tunnel zurück. Die einzige Voraussetzung besteht darin, dass die MikroTik -Router den SAMM -Server über die RADIUS-Ports erreichen können (1812/1813 UDP) und dass SAMM die Router über die MikroTik API erreichen kann.

Muss ich FreeRADIUS neu starten, wenn ich einen Router hinzufüge oder entferne?

Nein. SAMM löst NAS-Clients dynamisch aus der Datenbank auf und fügt daher Folgendes hinzu: Bearbeiten oder Entfernen eines Routers in MikroTik → NAS tritt ohne Neustart in Kraft.

Wie schnell wird eine Planänderung oder ein Zähler-Reset wirksam?

Administratoraktionen werden in die Warteschlange gestellt und vom Dienst samm-radius angewendet sein nächster Tick – standardmäßig innerhalb von 30 Sekunden. Wenn der Abonnent online ist, SAMM sendet außerdem ein Live-CoA, um die Sitzung zu aktualisieren. Verringern Sie das Samm-Radius-Intervall in System → Einstellungen für engeres Timing.

Was passiert mit meinen Daten, wenn eine kostenpflichtige Lizenz abläuft?

Es wird nie etwas gelöscht. Eine erloschene Lizenz tritt durch Verwarnung, Gnade usw. zurück Soft Lockdown (RADIUS authentifiziert sich etwa eine Woche lang weiter) und schließlich ein Hard Sperrung. Bei einer Reaktivierung zu einem beliebigen Zeitpunkt wird jeder Dienst mit intakten Daten neu gestartet.

Ist SAMM kostenlos? Was fügt Pro hinzu?

Die Free-Stufe ist für immer kostenlos und beinhaltet alle Funktionen. Plus, Pro und Pro Max schalten keine Funktionen frei — sie erhöhen die Obergrenzen für AAA-Benutzer, Hotspot-Karten und Router. Siehe Lizenzierung & Stufen.

Ein Abonnent kann sich nicht authentifizieren – wo fange ich an?

Überprüfen Sie, ob das gemeinsame RADIUS-Geheimnis des Routers genau mit dem NAS-Eintrag übereinstimmt. dass der Router für PPP / Hotspot RADIUS aktiviert ist und dass der Teilnehmer Das Konto ist aktiv und nicht abgelaufen. Beobachten Sie journalctl -u samm-api -f und das FreeRADIUS -Protokoll und bestätigen Sie, dass der Router den SAMM -Host über UDP erreichen kann 1812/1813.

Mehr Hilfe benötigt?

Senden Sie eine E-Mail an [email protected] , um einen Fehler zu melden oder\n eine Funktion anfordern.