Documentation

SAMM documentation

Le manuel complet de l'opérateur — de la première installation aux opérations quotidiennes.

25 sujets 8 sections Installation en une commande
Installation rapide

En ligne en quelques minutes, avec une commande.

Exécutez une seule ligne sur un serveur Ubuntu ou Debian neuf — le bootstrapper récupère la dernière version et installe toute la pile SAMM pour vous.

Lire le guide d'installation complet
install.sh — bash
curl -fsSL https://samm.securytik.com/install.sh | sudo bash

Premiers pas

Aperçu & architecture

SAMM — SecuryTik Active Mikrotik Manager — est une plateforme complète de gestion FAI pour les réseaux MikroTik PPPoE & Hotspot. Un seul installateur transforme un serveur Linux nu en un système complet AAA, de facturation et de gestion d'abonnés.

À qui s'adresse SAMM

SAMM est conçu pour les FAI sans fil, les opérateurs fibre et les fournisseurs de hotspot utilisant MikroTik RouterOS. Si vous authentifiez des abonnés via PPPoE ou Hotspot et devez appliquer des paliers de vitesse, des plafonds de données, des dates d'expiration et la facturation — SAMM fait tout cela depuis un seul écran.

Comment ça fonctionne

SAMM garde le chemin critique proche de la base de données. FreeRADIUS traite chaque paquet d'authentification et de comptabilité ; à chaque Interim-Update de comptabilité, il appelle directement les fonctions PostgreSQL pour accumuler l'utilisation et évaluer les limites — il n'y a aucun aller-retour Python tant que les abonnés sont en ligne.

Quatre surfaces d'exécution coopèrent via la base de données unique :

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

Les cinq services

ServiceRôle
samm-apiPortail admin + portail libre-service client + REST API
samm-radiusVide la boîte d'envoi CoA ; effectue les balayages d'expiration/réinitialisation quotidienne/fenêtre de vitesse
samm-workerPings les routeurs ; synchronise les métadonnées des appareils MikroTik via l'API
samm-notificationLivre des notifications par e-mail & Telegram via une file d'attente limitée
samm-telegramExécute le bot Telegram interactif en libre-service

Ce que fait SAMM

Cœur AAA

Authentification PPPoE & Hotspot, application de la vitesse par utilisateur, CoA hybride.

Forfaits & limites

Niveaux de vitesse plus quatre limites indépendantes et fenêtres de vitesse planifiées.

Abonnés

Utilisateurs PPPoE/Hotspot plus cartes de bons hotspot prépayés avec PDFs imprimables.

Facturation

Tarification par forfait, factures automatiques, grand livre à double entrée pour reçus/paiements/dépenses.

Libre-service

Un portail web client et un bot Telegram pour l'utilisation, les factures et les tickets.

Opérations

Inventaire MikroTik en direct, administrateurs basés sur les rôles, sauvegarde & restauration, outils en masse.

Système

VPN WireGuard intégré, Tunnel Cloudflare, six langues, interface thémifiable.

Notifications

Alertes de renouvellement, d'expiration, de quota et de reçu par e-mail et Telegram.

Le reste de ce manuel est un guide pratique pour chacun de ces domaines. Utilisez le menu de gauche, ou commencez par Installation.

Premiers pas

Installation

SAMM installe tout ce dont il a besoin — FreeRADIUS, PostgreSQL, nginx, WireGuard, cloudflared et les cinq services SAMM — en une seule étape. L'installateur est idempotent : le réexécuter met à niveau une installation existante sur place et n'écrase jamais votre configuration ni ne régénère votre mot de passe de base de données.

SAMM s'exécute n'importe où : choisissez le chemin d'installation qui correspond à votre réseau :

  • Option A / B – serveur Linux nu (recommandé pour la production) : installation en une seule commande ou manuelle sur Ubuntu /Debian.
  • Option C – Docker Compose : identique SAMM aux conteneurs ; multi-arch (amd64 + arm64) pour qu'il fonctionne sur Ubuntu , Windows Docker Desktop, Apple Mac -silicon, n'importe où.
  • Option D – MikroTik RouterOS 7 conteneur : collez le composant YAML directement dans votre routeur. Aucun boîtier externe Linux n'est nécessaire.

Prérequis

  • Un serveur neuf : Ubuntu 22.04 LTS, Ubuntu 24.04 LTS ou Debian 12. Linux serveur uniquement — les variantes bureau ne sont pas prises en charge.
  • Accès root / sudo et une connexion internet.
  • systemd, et un hôte où PostgreSQL peut être installé localement (un est configuré pour vous).

Option A — installer avec une commande

Sur le serveur, exécutez :

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

Ce script bootstrap télécharge le dernier bundle de version SAMM depuis GitHub, l'extrait et exécute automatiquement l'installateur complet. Terminé en quelques minutes.

Option B — installer manuellement depuis un bundle de version

Téléchargez le dernier samm-<version>.tar.gz depuis la page GitHub Releases, puis sur le serveur :

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

Vous pouvez aussi déployer depuis un zip produit sur une autre machine — l'installateur rsync lui-même les sources vers /opt/samm :

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

Ou clonez le dépôt vers /opt/samm et exécutez sudo bash /opt/samm/install.sh.

Dans les deux cas, une fois l'installation terminée, ouvrez le portail d'administration et connectez-vous avec ces identifiants :

URL de connexionhttp://<your-server>/admin · Nom d'utilisateuradmin · Mot de passeadmin

Changez le mot de passe administrateur immédiatement après votre première connexion.

Option C : installer avec Docker Compose

Si vous préférez exécuter SAMM en tant que conteneurs (même produit, emballé différemment) utilisez la distribution Docker Compose sur github.com/mhdhaidarah/samm-docker . Sur n'importe quel hôte avec Docker disponible :

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

Cela installe Docker s'il est manquant, supprime un docker-compose.yml + .env dans /opt/samm-docker/ et démarre la pile. L'image mhdhaidarah/samm est construit à partir du même bundle compilé que l'installation sans système d'exploitation : source fermée par construction.

Multi-arch depuis la version 2.2.6 : la même balise est fournie pour linux/amd64 et linux/arm64 . docker pull sélectionne la bonne variante de manière transparente, de sorte que le chemin d'installation est identique sur un serveur Intel/AMD 64 bits, un Mac Apple -silicon exécutant Docker Desktop ou un appareil ARM MikroTik (RB5009, hAP ​​ax², CCR2004/2116/2216) utilisant la fonctionnalité de conteneur RouterOS 7.

Sur les hôtes où le transfert de curl vers bash n'est pas autorisé (boîtes verrouillées, politiques de sortie strictes), vous pouvez récupérer directement le fichier de composition prêt à l'emploi :

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

Quelques fonctionnalités ne sont pas encore dans la variante Docker (verrouillage de licence par étapes, rechargement dynamique FreeRADIUS ). Les pages d'administration intégrées WireGuard et Cloudflare Tunnel sont intentionnellement masquées dans la variante Docker : elles gèrent les services systemd au niveau de l'hôte qui ne sont pas accessibles depuis l'intérieur du conteneur. Choisissez l'option A ou B ci-dessus si vous avez besoin de celles intégrées, ou exécutez cloudflared / wg-quick sur l'hôte Docker directement à côté de SAMM . Voir le README de la variante Docker pour les mises en garde complètes de la v1 et le chemin d'installation manuelle.

Sous Windows ( Docker bureau) : évaluation uniquement

Non recommandé pour la production. Windows veille/hibernation/fermeture du couvercle arrête les conteneurs ; boot-restart ne se déclenche qu'au démarrage de WSL (pas au démarrage de Windows) ; le Le cron de mise à jour automatique quotidienne ne s'exécute que lorsque WSL est actif. Utilisez-le pour une évaluation/démo, puis déployer la production sur une VM Linux (Hyper-V, Proxmox, ESXi) ou un petit boîtier physique (par exemple un NUC exécutant le serveur Ubuntu ).

Installer Docker Desktop pour Windows (permet de configurer le backend WSL2 au premier lancement). Ensuite, à partir de PowerShell — aucun terminal WSL nécessaire — récupérez le bundle de composition et démarrez la pile :

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

Regardez le démarrage de la pile dans Docker Desktop → Conteneurs — le groupe samm se développe en 7 services. Une fois qu'ils sont tous verts, ouvrez le portail d'administration et connectez-vous avec ces identifiants :

URL de connexionhttp://localhost:8000/admin · Nom d'utilisateuradmin · Mot de passeadmin

Changez le mot de passe administrateur immédiatement après votre première connexion.

Si un vrai NAS MikroTik atteint cet hôte Windows pour RADIUS, autorisez UDP 1812 + 1813 via le pare-feu Windows :

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

Démonter : docker compose down -v à partir du répertoire d'installation (le -v efface le volume postgres et la clé Fernet — sauvegardez-les d'abord si vous avez ajouté des données).

Option D : installer sur un routeur MikroTik ( RouterOS 7)

Idem SAMM , aucune case Linux n'est nécessaire. Si votre appareil MikroTik prend en charge le package conteneur et est équipé d'une clé USB ou d'une carte microSD connectée, vous pouvez exécuter l'intégralité de la pile directement sur le routeur. L'image est livrée multi-arch ( linux/amd64 + linux/arm64 ), de sorte que des appareils comme RB5009, hAP ​​ax², CCR2004/2116/2216 extraient la bonne variante de manière transparente.

Pris en charge : arm64 MikroTik – RB5009, hAP ​​ax², CCR2004-1G-12S+2XS, CCR2116, CCR2216. SKU amd64 — CCR2004-1G-2XS-PCIe (amd64), x86 RouterOS , CHR sur les hyperviseurs amd64.
Non pris en charge : appareils armv7/mipsbe/smips/tile/ppc (hEX, RB750, anciens modèles RB) — pas de prise en charge des conteneurs ou trop peu de RAM/CPU pour la pile de SAMM .

1. Préparez le routeur

Installez le package conteneur (à partir de extra_packages.zip sur mikrotik.com/download – téléchargez le conteneur-*.npk correspondant via Fichiers, puis redémarrez). Activez ensuite le mode conteneur (une seule fois, nécessite un redémarrage) :

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

2. Formatez et montez le disque (ext4)

Insérez une clé USB ou une carte microSD (≥ 8 Go recommandés – Postgres + les calques d'image s'additionnent). Sur le routeur :

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

Après le formatage, vérifiez que le disque est monté et qu'il est accessible en écriture :

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

3. Collez le composer YAML dans l'application conteneur

Dans WebFig ou WinBox, ouvrez Conteneur Applications + Nouveau YAML . Collez le fichier de composition ci-dessous dans le champ YAML, définissez le disque que vous avez formaté à l'étape 2 comme emplacement de stockage et soumettez-le. RouterOS extraira chaque image et câblera les services pour vous.

docker-compose.yaml — copier et coller
name: samm

services:
  postgres:
    image: postgres:16-alpine
    restart: unless-stopped
    environment:
      POSTGRES_DB: samm
      POSTGRES_USER: samm
      POSTGRES_PASSWORD: change-me-strong-random-string
      TZ: UTC
    volumes:
      - pgdata:/var/lib/postgresql/data

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

  samm-radius:
    image: mhdhaidarah/samm:latest
    restart: unless-stopped
    command: ["radius"]
    environment:
      SAMM_ROLE: radius
      POSTGRES_HOST: postgres
      POSTGRES_PORT: 5432
      POSTGRES_DB: samm
      POSTGRES_USER: samm
      POSTGRES_PASSWORD: change-me-strong-random-string
      TZ: UTC
    volumes:
      - etcsamm:/etc/samm
      - sammvar:/opt/samm/var
      - sammlogs:/var/log/samm

  samm-worker:
    image: mhdhaidarah/samm:latest
    restart: unless-stopped
    command: ["worker"]
    environment:
      SAMM_ROLE: worker
      POSTGRES_HOST: postgres
      POSTGRES_PORT: 5432
      POSTGRES_DB: samm
      POSTGRES_USER: samm
      POSTGRES_PASSWORD: change-me-strong-random-string
      TZ: UTC
    volumes:
      - etcsamm:/etc/samm
      - sammvar:/opt/samm/var
      - sammlogs:/var/log/samm

  samm-notification:
    image: mhdhaidarah/samm:latest
    restart: unless-stopped
    command: ["notification"]
    environment:
      SAMM_ROLE: notification
      POSTGRES_HOST: postgres
      POSTGRES_PORT: 5432
      POSTGRES_DB: samm
      POSTGRES_USER: samm
      POSTGRES_PASSWORD: change-me-strong-random-string
      TZ: UTC
    volumes:
      - etcsamm:/etc/samm
      - sammvar:/opt/samm/var
      - sammlogs:/var/log/samm

  samm-telegram:
    image: mhdhaidarah/samm:latest
    restart: unless-stopped
    command: ["telegram"]
    environment:
      SAMM_ROLE: telegram
      POSTGRES_HOST: postgres
      POSTGRES_PORT: 5432
      POSTGRES_DB: samm
      POSTGRES_USER: samm
      POSTGRES_PASSWORD: change-me-strong-random-string
      TZ: UTC
    volumes:
      - etcsamm:/etc/samm
      - sammvar:/opt/samm/var
      - sammlogs:/var/log/samm

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

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

Avant de coller , remplacez chaque change-me-strong-random-string par le MÊME mot de passe aléatoire fort (≥ 24 caractères aléatoires) : il entre dans Postgres au premier démarrage et chaque service SAMM l'utilise pour se connecter. Générez-en un avec un gestionnaire de mots de passe ou exécutez pwgen 32 1 sur n'importe quelle boîte Linux .

4. Vérifiez et connectez MikroTik à SAMM

Une fois les 7 conteneurs en cours d'exécution, ouvrez le portail d'administration dans un navigateur et connectez-vous avec ces identifiants :

URL de connexionhttp://<router-ip>:8000/admin · Nom d'utilisateuradmin · Mot de passeadmin

Changez immédiatement le mot de passe administrateur. L'authentification RADIUS + la comptabilité sont exposées sur UDP 1812 + 1813 sur le routeur lui-même, de sorte que le client RADIUS MikroTik peut pointer vers 127.0.0.1 avec le secret partagé que vous avez défini dans Système → RADIUS.

Expérimental dans la version 1. La fonctionnalité de conteneur de RouterOS est plus simple que celle de Docker Compose : DNS du nom de service, ordre des dépendances ( depend_on ) et les redémarrages en direct se comportent différemment. Si la pile se comporte mal sur votre matériel, revenez à exécuter Docker sur un petit boîtier Linux (NUC, Pi 4, Linux VM) à côté du MikroTik . Le même fichier de composition y fonctionne avec la sémantique complète de Compose.

Options non interactives

Toutes les invites peuvent être pré-renseignées avec des variables d'environnement, afin que l'installateur puisse s'exécuter sans surveillance :

VariableEffet
DB_PASSUtiliser ce mot de passe de base de données au lieu d'un généré automatiquement (première installation uniquement)
CF_TOKENInstaller le connecteur Cloudflare Tunnel avec ce jeton Zero Trust
SAMM_HTTP_PORTForcer le port d'écoute nginx (ignore l'invite de détection du port 80)
SAMM_VERBOSE1 diffuse la sortie brute des commandes au lieu de la barre de progression
NO_COLOR1 désactive la sortie colorée
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

Ce que le programme d'installation configure

L'installateur s'exécute avec un affichage de progression en direct et coloré — une barre de pourcentage et une liste de contrôle par phase. La sortie brute de chaque phase est capturée dans /var/log/samm-install.log ; en cas d'échec, les 30 dernières lignes sont imprimées.

ComposantDétails
FreeRADIUS 3Configuré avec un backend PostgreSQL et des clients NAS dynamiques ; validé avec freeradius -CX
PostgreSQLBase de données, schéma et toutes les migrations SQL appliquées — chaque fichier de migration est idempotent
Python venvToutes les dépendances construites depuis requirements.txt ; catalogues de traduction compilés
nginxProxy inverse ajouté de manière additive — les sites existants ne sont jamais supprimés. Utilise le port 80 s'il est libre ; sinon, demande un port alternatif
5 servicessamm-api, samm-radius, samm-worker, samm-notification, samm-telegram — tous activés en tant qu'unités systemd
WireGuardPaquets installés ; configurés ultérieurement depuis Système → VPN
cloudflaredBinaire toujours installé ; le jeton du tunnel est optionnel à l'installation ou ajouté ultérieurement depuis Système → Tunnel Cloudflare

Tous les identifiants — le mot de passe de la base de données et les clés de signature de session — sont générés automatiquement à la première installation.

Invites interactives

Toutes les invites se produisent en amont, avant le début de l'installation :

  • Jeton Cloudflare — collez un jeton de connecteur Zero Trust pour publier SAMM en ligne sans port ouvert, ou appuyez sur Entrée pour passer et le configurer plus tard.
  • Port HTTP — si le port 80 est déjà utilisé, l'installateur laisse ces sites intacts et demande un port alternatif (par défaut 8080).

Résumé de l'installation

Lorsque l'installateur se termine, il imprime un résumé avec l'URL d'administration, l'identifiant par défaut, le port HTTP choisi, les identifiants de la base de données et les chemins des fichiers de configuration :

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

Mise à niveau

Pour mettre à niveau, récupérez la nouvelle source et réexécutez l'installateur :

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

La réexécution resynchronise la source, met à niveau le venv, réapplique toutes les migrations, recharge les configurations FreeRADIUS et nginx, et redémarre chaque service. Vos fichiers de configuration et le port HTTP choisi à la première installation sont préservés.

Conseil SAMM peut aussi se mettre à jour lui-même — voir Licence & mises à jour. Activez les mises à jour automatiques, ou appliquez-les à la demande, depuis Système → Licence.
Air-gap & BD distante SAMM ne livre que SAMM — FreeRADIUS, PostgreSQL, nginx et le reste sont récupérés au moment de l'installation depuis les dépôts apt en amont, donc les installations en air-gap doivent pré-installer ces paquets. Pour un PostgreSQL distant, définissez le DSN dans /etc/samm/samm.yaml après l'installation.

Premiers pas

Premières étapes

Cinq courtes tâches amènent une nouvelle installation au point où les abonnés peuvent se connecter et être facturés.

1 · Première connexion

  1. Ouvrez http://<votre-serveur>/admin/ (utilisez le port HTTP du résumé d'installation s'il n'est pas 80), ou votre URL de tunnel Cloudflare.
  2. Connectez-vous avec admin / admin.
  3. Changez immédiatement le mot de passe depuis Système → Administrateurs, ou depuis le menu de profil dans la barre supérieure.

2 · Ajouter votre premier routeur

  1. Allez dans MikroTik → NAS et cliquez sur Ajouter un routeur.
  2. Entrez l'IP du routeur, un nom court et un secret partagé RADIUS. Pour les appareils MikroTik, ajoutez éventuellement les identifiants API pour la synchronisation en direct de l'appareil.
  3. Sur le MikroTik, ajoutez un serveur RADIUS pointant vers l'hôte SAMM (ports 1812/1813) avec le même secret partagé, et activez RADIUS pour PPP / Hotspot.

Aucun redémarrage de FreeRADIUS n'est nécessaire — SAMM résout les clients NAS dynamiquement depuis la base de données. Voir Routeurs (NAS) pour la procédure complète, ou laissez l'assistant de configuration configurer le MikroTik pour vous.

3 · Créer un forfait

Un forfait définit la vitesse, les limites et le prix que vous vendez. Allez dans Utilisateurs → Forfaits → Nouveau forfait. Référence complète des champs : Forfaits & limites.

4 · Ajouter un abonné

Allez dans Utilisateurs → Nouveau client, remplissez les identifiants de connexion et choisissez un forfait. L'abonné peut se connecter immédiatement. Pour un accès hotspot prépayé, générez plutôt des cartes-bons.

5 · Activer votre licence

Une installation neuve s'exécute non enregistrée à un palier minimum. Ouvrez Système → Licence et activez pour lever les limites — voir Licence & paliers.

Rythme quotidien Ajoutez des routeurs → créez des forfaits → ajoutez des abonnés ou des cartes → surveillez le tableau de bord → enregistrez les paiements sous Comptabilité.

Abonnés & forfaits

Forfaits & limites

Un forfait est la définition de service attribuée aux abonnés — il définit la vitesse, les limites et le prix. Créez des forfaits avant d'ajouter des utilisateurs.

Créer un forfait

  1. Allez dans Utilisateurs → Forfaits.
  2. Cliquez sur Nouveau forfait.
  3. Remplissez le formulaire et cliquez sur Enregistrer le forfait.

Chaque limite est un interrupteur — n'activez que celles dont vous avez besoin. La même fenêtre modale modifie un forfait existant (ouvrez le menu ⋮ de la ligne → Modifier).

Champs du forfait

ChampSignification
NomNom unique de forfait, p. ex. Home-50M
PrixFacturé par période de facturation lorsque la facturation est utilisée
Vitesse de téléchargement / envoip. ex. 50M, 512K, 1G — appliqué comme limite de débit MikroTik
Limite : ExpirationL'abonnement se termine une période fixe après l'activation (jours/mois/heures/minutes)
Limite : QuotaUn plafond de données total (combiné, téléchargement seul, ou envoi seul) pour tout l'abonnement
Limite : DisponibilitéUn plafond sur le temps de connexion cumulé — la somme de toutes les durées de session
Limite : Utilisation quotidienneUn plafond de données qui se réinitialise chaque jour à l'heure de réinitialisation quotidienne configurée
Fenêtre illimitéeAjout rapide d'une fenêtre de vitesse — l'éditeur complet se trouve sur la page Fenêtres de vitesse du forfait
Pool d'adresses IPNom optionnel de Framed-Pool RADIUS pour l'attribution d'adresse
Renouvellement automatiqueDémarrer une nouvelle période à l'expiration au lieu de changer de forfait ou de déconnecter

Les quatre limites

Chaque limite est indépendante et optionnelle. Lorsque plusieurs sont définies, SAMM les vérifie dans un ordre fixe — expiration → quota → temps en ligne → quotidien — et la première épuisée décide de l'action.

LimiteSuitÀ l'épuisement
ExpirationTemps calendaire depuis l'activationPasser à un autre forfait ou déconnecter
QuotaTotal d'octets utilisésPasser à un autre forfait ou déconnecter
DisponibilitéSecondes de session cumuléesPasser à un autre forfait ou déconnecter
QuotidienOctets depuis la dernière réinitialisation quotidienneLimiter (passer à un forfait plus lent) jusqu'à la prochaine réinitialisation quotidienne

Pour chaque limite, vous choisissez ce qui se passe à l'épuisement : choisissez un forfait suivant sur lequel basculer l'abonné, ou laissez en — déconnecter —. Pour la limite quotidienne, le forfait suivant agit comme un bridage — l'abonné revient au forfait d'origine à la prochaine réinitialisation quotidienne automatiquement.

Fenêtres de vitesse

Une fenêtre de vitesse remplace la vitesse de base du forfait pendant des heures définies — par exemple une fenêtre à vitesse illimitée après minuit. Cliquez sur une ligne de forfait pour ouvrir son éditeur de Fenêtres de vitesse, qui ajoute le contrôle par jour de la semaine et prend en charge les fenêtres qui traversent minuit. Lorsque plusieurs fenêtres correspondent, celle à la plus haute vitesse l'emporte.

Remarque Les abonnés bridés ou ayant épuisé leur limite sont exclus des fenêtres de vitesse — SAMM ne lève jamais la vitesse tant qu'une limite est en vigueur.

Deux notions d'utilisation

SAMM conserve l'utilisation à deux endroits, et ne les confond jamais :

  • Compteurs réinitialisables — l'état par limite. Remis à zéro par une réinitialisation admin et par la réinitialisation quotidienne.
  • Compteurs de facturation — totaux à vie non réinitialisables. Jamais remis à zéro, afin que les rapports et les factures restent exacts.

Gestion des forfaits

La liste des forfaits affiche la vitesse de chaque forfait, le nombre d'abonnés, les limites actives et les fenêtres de vitesse. Depuis le menu ⋮ d'une ligne, vous pouvez modifier, ouvrir ses fenêtres de vitesse, l'activer/le désactiver, accéder à ses abonnés ou le supprimer (uniquement lorsqu'il n'a pas d'abonnés). La modification du renouvellement automatique propose de propager le changement à tous les abonnés actuels.

Abonnés & forfaits

Abonnés

Un abonné (client / utilisateur) est un compte PPPoE ou Hotspot qui s'authentifie auprès de SAMM. Chaque abonné se voit attribuer exactement un forfait.

Créer un abonné

  1. Allez dans Utilisateurs et cliquez sur Nouveau client.
  2. Remplissez le formulaire et sauvegardez — l'abonné peut se connecter immédiatement.
ChampSignification
Nom d'utilisateur *Le nom de connexion PPPoE / Hotspot — doit être unique
Mot de passe *Le mot de passe de connexion (stocké pour l'auth RADIUS PAP/CHAP)
Prénom / NomLe nom de l'abonné
Mobile / E-mail / AdresseCoordonnées — utilisées pour les notifications et les factures
Forfait *Le forfait de service à attribuer
Remplacement de l'expirationDate d'expiration manuelle optionnelle au lieu de celle calculée par le forfait
Renouvellement automatiqueRenouveler automatiquement la période du forfait à l'expiration

La liste des abonnés

La page Utilisateurs liste chaque abonné avec un point de statut visible d'un coup d'œil, le forfait attribué et ce qui reste de chaque limite — utilisation quotidienne avec une barre de progression, quota restant, temps en ligne restant et jours restants. Filtrez par statut (Tous / Actifs / Suspendus / Expirés / En ligne) ou recherchez par nom d'utilisateur, nom ou mobile.

Le badge d'échange de forfait Un seul badge correspond au forfait de l'abonné. Deux badges reliés par une flèche signifient que l'abonné a atteint sa limite quotidienne et est temporairement placé sur un forfait de bridage — il revient à l'original à la prochaine réinitialisation quotidienne.

Gestion d'un abonné

Cliquez-droit sur une ligne — ou utilisez le menu ⋮ — pour chaque action par abonné :

ActionCe qu'il fait
Voir / ModifierOuvrir la page de détail, ou modifier les coordonnées, le mot de passe et l'expiration
Activer / DésactiverSuspendre le compte — les abonnés en ligne sont déconnectés
Renouveler l'expirationAjoute la durée du forfait au temps restant ; génère une facture si le forfait a un prix
Réinitialiser la disponibilité / le quota / le quotidienMettre à zéro le compteur de limite choisi
UtilisationOuvrir les graphiques d'utilisation et l'historique des sessions
SupprimerSupprimer l'abonné et tout son historique — les sessions actives sont d'abord déconnectées
Comment les actions prennent effet Les réinitialisations, changements de forfait et renouvellements sont mis en file d'attente dans un journal d'audit et appliqués par le tick samm-radius — généralement en quelques secondes. Si l'abonné est en ligne, SAMM envoie également un rafraîchissement en direct. Voir CoA & changements en direct.

La vue d'utilisation

L'action Utilisation ouvre une page de trafic détaillée pour un abonné, avec un sélecteur de période 7j/14j/30j/90j. Il rapporte trois grands chiffres : Trafic d'aujourd'hui (avec la répartition téléchargement/téléchargement et les minutes en ligne), trafic de ce mois et temps de connexion cumulé pour le mois. En dessous se trouve un graphique du trafic quotidien des mises en ligne par rapport téléchargement et un tableau complet de l' historique de session : l'heure de début et de fin, durée, octets vers le bas et vers le haut, le NAS et la cause de fin de chaque session.

Opérations en masse

Pour changer le propriétaire, l'expiration, le statut ou le renouvellement automatique de plusieurs abonnés à la fois — ou pour en supprimer plusieurs — utilisez les outils Modifications en masse et Suppression en masse. Pour créer des abonnés en masse depuis une feuille de calcul, utilisez Export / Import.

Abonnés & forfaits

Cartes Hotspot

Pour un accès Hotspot prépayé, générez un lot de cartes-bons au lieu d'abonnés individuels. Chaque carte est une paire nom d'utilisateur/mot de passe avec sa propre vitesse et ses propres limites, générée par milliers et imprimée pour distribution.

Créer un groupe de cartes

  1. Allez dans Utilisateurs → Cartes Hotspot et cliquez sur Nouveau groupe.
  2. Remplissez le formulaire ci-dessous et cliquez sur Créer le groupe — SAMM génère automatiquement les identifiants de chaque carte.
SectionChamps
IdentitéNom unique de groupe, description, préfixe de nom d'utilisateur optionnel, nombre de cartes à générer (jusqu'à 10 000)
IdentifiantsFormat et longueur du nom d'utilisateur et du mot de passe (chiffres / lettres / alphanumérique)
Limite de vitesseVitesse de téléchargement et d'envoi — 256k, 6M, 1G ; 0 = illimité
Limite de transfertIllimité, plafond combiné, ou plafonds séparés de téléchargement/envoi (Mo / Go / To)
Limites de tempsPlafond de temps en ligne, expiration après la première connexion, et une date "valable jusqu'au" pour le groupe

L'expiration se compte à partir de la première connexion de chaque carte, tandis que valable jusqu'au est une date butoir ferme — les cartes ne peuvent pas être utilisées après, qu'elles aient été activées ou non.

Statuts des cartes

StatutSignification
Non utiliséGénéré mais jamais connecté
ActifEn cours d'utilisation, dans ses limites
ÉpuiséUne limite (quota, disponibilité ou expiration) a été atteinte
DésactivéDésactivé manuellement

Impression & suivi

Ouvrez un groupe pour voir ses cartes, imprimez-les en PDF pour distribution (la mise en page d'impression utilise votre logo FAI depuis les Paramètres), et examinez l'utilisation par carte. Le trafic des cartes apparaît également dans Rapports sous l'onglet Cartes, et chaque groupe a sa propre vue comptable.

Réseau & routeurs

Routeurs (NAS)

Un NAS (Network Access Server) est un routeur qui authentifie les abonnés auprès de SAMM via RADIUS. Chaque routeur qui transporte du trafic d'abonnés a besoin d'un enregistrement NAS.

Ajouter un routeur

  1. Allez dans MikroTik → NAS et cliquez sur Ajouter un routeur.
  2. Remplissez les champs ci-dessous et sauvegardez.
ChampSignification
IP NAS / nom d'hôteL'adresse du routeur, telle que vue par l'hôte SAMM
Nom courtUn label convivial affiché dans toute l'interface
Typemikrotik débloque la synchronisation en direct de l'appareil et le push de configuration ; les autres types sont RADIUS uniquement
SecretLe secret partagé RADIUS — doit correspondre exactement au routeur, sinon l'authentification échoue
Port CoAPort UDP auquel SAMM envoie les paquets Change-of-Authorization (3799 par défaut sur MikroTik)
Port API / utilisateur / mot de passeIdentifiants API MikroTik que SAMM utilise pour lire les informations de l'appareil et pousser la configuration
Aucun redémarrage nécessaire SAMM résout les clients NAS dynamiquement depuis la base de données — ajouter ou supprimer un routeur ne nécessite jamais de redémarrage de FreeRADIUS.

La liste NAS

Chaque routeur s'affiche dans un seul tableau — ID, IP NAS / nom d'hôte, nom court, type, un secret masqué (cliquez sur la cellule pour le révéler), les ports CoA et API, et un résultat ping en direct avec le temps d'aller-retour. La boîte de recherche filtre par IP, nom court ou description.

Le menu ⋮ de chaque ligne contient les actions par routeur — Voir l'appareil et Actualiser les infos (MikroTik uniquement), Modifier, Pousser la configuration RADIUS (MikroTik uniquement) et Supprimer. Ouvrir une ligne de type mikrotik vous emmène directement à sa page d'appareil.

Découvrir les voisins

Cliquez sur Découvrir les voisins pour scanner les appareils MikroTik sur le réseau et les ajouter comme enregistrements NAS sans saisir chaque adresse à la main.

Pousser la configuration RADIUS vers le routeur

Pour les enregistrements NAS MikroTik, le menu ⋮ de la ligne propose Pousser la configuration RADIUS — SAMM configure le routeur pour vous via l'API au lieu que vous le tapiez à la main. Vous confirmez l'IP du serveur SAMM (elle doit être accessible depuis le routeur) et les ports auth, accounting et CoA ; SAMM crée ou remplace alors une entrée RADIUS sur le routeur :

ParamètreValeur
CommentaireSAMM — l'étiquette que SAMM utilise pour trouver et mettre à jour cette entrée ultérieurement
Servicehotspot, ppp
Adresse / secretL'hôte SAMM, avec le secret partagé de cet enregistrement NAS
Délai d'attente3000 ms
CoA entrantAccepté, sur le port CoA que vous avez confirmé

Le dialogue affiche un journal de résultats lorsque le push se termine.

Configurer le côté MikroTik

Si vous configurez le routeur manuellement :

  • Ajoutez un serveur RADIUS pointant vers l'hôte SAMM, avec le même secret partagé, activé pour PPP / Hotspot.
  • Utilisez le port d'authentification 1812, le port de comptabilité 1813.
  • Acceptez les CoA entrants sur le port 3799.
  • Définissez l'intervalle Interim-Update de comptabilité à environ 60 secondes — c'est à cette fréquence que SAMM accumule l'utilisation et évalue les limites.

Appareils de surveillance uniquement

Un routeur ajouté en tant que moniteur apparaît dans l'inventaire MikroTik et est pingé et synchronisé, mais n'a aucun rôle RADIUS — il ne peut pas authentifier les abonnés. Utilisez-le pour surveiller les routeurs qui ne sont pas des NAS d'abonnés.

Réseau & routeurs

Gestionnaire MikroTik

Lorsqu'un routeur dispose d'informations d'identification API, SAMM le gère directement via le MikroTik API – pas de WinBox, pas de SSH. Le MikroTik La section est un inventaire en direct de chaque routeur, et chaque appareil ouvre une page de détail avec quinze onglets qui configurent presque toutes les parties de RouterOS depuis votre navigateur.

Moniteur MikroTik

MikroTik → Le moniteur affiche une carte par routeur, disposée comme une grille. Rapports de chaque carte — actualisés par samm-worker et interrogés en direct toutes les 30 secondes : le point d'accessibilité, la version RouterOS , la charge du processeur et le nombre de cœurs, utilisation de la mémoire, nombre de sessions actives, temps de disponibilité et heure du dernier échantillon.

Une carte est étiquetée soit NAS (un routeur qui authentifie également abonnés via RADIUS) ou moniteur (un appareil ajouté pour la surveillance seulement). Ajouter MikroTik enregistre un nouvel appareil ; Actualiser maintenant impose un scrutin immédiat. Les cartes réservées au moniteur comportent un menu contextuel : Ouvrir, Modifier, Actualiser les informations, Supprimer.

La page de l'appareil — seize onglets

Ouvrez n'importe quel appareil pour sa page de gestion complète. Les onglets se répartissent en quatre groupes.

Surveillance

OngletCe qu'il montre
AperçuInformations sur l'appareil, informations sur le système et graphiques d'historique des performances (CPU, mémoire, sessions au fil du temps)
InterfacesChaque interface avec son état actif, ainsi que l'historique du trafic par interface
Sites webSites Web et amp; apps seen on the router and a performance-history view of that traffic

Gestionnaire

L'onglet Gestionnaire → Général est la page de maintenance de l'appareil : Identité (le nom du routeur), Heure (horloge, fuseau horaire et NTP) et Outils (redémarrage, ping et autres actions du routeur en un clic).

Configuration réseau

OngletCe que vous configurez
BridgeCréez des ponts LAN et choisissez quelles interfaces physiques (ports) appartiennent à chacun
VLANAjouter et gérer des interfaces VLAN
IPTrois sous-onglets : Statique (adresses statiques et dynamiques), Client DHCP (extraire une adresse en amont), Serveur DHCP (distribuer des adresses, avec une table de location en direct)
DNSServeurs DNS et cache, ainsi qu'un sites Web et amp; Filtre d'application – Blocage de contenu basé sur DNS
WiFi / CAPsMANInterfaces Wi-Fi avec leurs configurations et profils de sécurité ; et le contrôleur CAPsMAN — configurations, règles de provisionnement et CAP distants
QoSPriorité de téléchargement par application — faites glisser les applications et les sites vus par le filtre Sites web et applications dans huit emplacements de priorité, plafonnez la vitesse de n'importe quelle application, et envoyez le tout au routeur sous forme d'arbre de files d'attente

Services & maintenance

OngletCe que vous configurez
PPPoEServeurs PPPoE, profils PPP, pools IP et intervalle de mise à jour intermédiaire de la comptabilité RADIUS
HotspotServeurs hotspot, profils de hotspot et profils utilisateur, pools DHCP/IP et page de connexion au portail captif
InternetLiaisons montantes WAN : WAN gérés par SAMM et routes par défaut, avec tous les WAN non SAMM existants affichés en lecture seule
Pare-feuRègles de filtrage, analyse de la sécurité du routeur, connectivité et amp; cibles, modules de sécurité et sauvegardes de pare-feu
Mise à jourRouterOS mises à jour : choisissez un canal de mise à jour, vérifiez et appliquez, puis examinez les packages installés
AssistantLa première configuration guidée, ci-dessous

L'intervalle de mise à jour intermédiaire PPPoE

Dans l'onglet PPPoE , Mise à jour intermédiaire définit la fréquence à laquelle Le routeur envoie des paquets de mise à jour intermédiaire de comptabilité RADIUS à SAMM . SAMM utilise ces paquets pour accumuler des compteurs d'octets et de disponibilité et évaluer les limites de quota, quotidiennes et de disponibilité - sans eux, limitez l'application et les compteurs de sessions en direct se bloquent . La valeur recommandée est 5m .

La page de connexion Hotspot

Depuis l'onglet Hotspot , vous gérez la page de connexion au portail captif : conserver les MikroTik pages par défaut, appliquer l'un des modèles intégrés , ou appliquez l'un de vos designs enregistrés . SAMM inclut une conception visuelle éditeur et une galerie de modèles - personnalisez une page de connexion et transférez-la directement vers le point d'accès du routeur.

QoS par application

L'onglet QoS transforme les applications et les sites que SAMM voit déjà sur le routeur en un plan de priorité de téléchargement. Faites glisser chaque application du pool vers l'un des huit emplacements de priorité — l'emplacement 1 est servi en premier en cas de saturation, l'emplacement 8 en dernier ; les applications laissées dans le pool ne sont pas régulées. Vous pouvez éventuellement plafonner la vitesse de téléchargement de n'importe quelle application (par exemple 10M) et définir un plafond de téléchargement total que les priorités se disputeront. Répartir automatiquement par catégorie organise le tout en un seul clic — messagerie et conférences en premier, téléchargements volumineux et tests de débit en dernier.

Lorsque vous l'envoyez, SAMM compile les emplacements en un arbre de files d'attente MikroTik (étiqueté SAMM:qos, parent=global) avec des règles de pare-feu de marquage de paquets correspondantes, la priorité la plus élevée en premier. Il repose sur le même catalogue Sites web et applications qui alimente la surveillance, de sorte que seules les applications réellement vues sur le routeur apparaissent — et la suppression de SAMM QoS retire du routeur tous les objets SAMM:qos, en laissant vos compteurs intacts.

L'assistant de configuration

L'onglet Assistant collecte tout en neuf étapes courtes et envoie la configuration complète du routeur en un seul lot à la fin. Rien n'est envoyé jusqu'à ce que vous confirmer à l’étape de révision finale.

  1. Bienvenue et détecter — SAMM sonde le routeur et montre ce qui se passe déjà configuré, vous pouvez donc ignorer ces éléments dans le push.
  2. Interface de pont : nommez le pont LAN.
  3. Ports de pont : choisissez les interfaces physiques qui rejoignent le pont.
  4. DNS : définissez des résolveurs en amont (préréglages en un clic pour Google , Cloudflare , Quad9 et plus), la taille du cache et éventuellement un filtre de contenu DNS.
  5. Internet : ajoutez une ou plusieurs liaisons montantes WAN (statique/DHCP/PPPoE).
  6. RADIUS vers SAMM : pointez le routeur vers votre hôte SAMM pendant authentification, comptabilité et CoA.
  7. Services : choisissez si l'assistant crée un serveur PPPoE, un Serveur Hotspot, ou les deux.
  8. Détails PPPoE/Hotspot et amp; Pare-feu – pools, profils, bail fois, plus le pare-feu & Règles NAT.
  9. Examiner et amp; push — voir la liste exacte des commandes qui seront envoyés, puis envoyez-les tous au routeur.
La vitesse par utilisateur vient de RADIUS L'assistant crée un seul profil PPPoE/hotspot — il ne pousse pas par niveau profils. La vitesse de chaque abonné est fournie par SAMM dans la réponse RADIUS lors de la connexion, les modifications de plan ne nécessitent donc jamais de modification du routeur.

Réseau & routeurs

CoA & changements en direct

CoA (Change-of-Authorization) est la façon dont SAMM modifie l'identité d'un abonné session pendant qu'ils sont en ligne - pour augmenter ou diminuer leur vitesse, ou pour les déconnecter - sans attendre qu'ils se reconnectent.

Comment un changement atteint un abonné actif

SAMM ne pousse jamais un changement de routeur directement à partir d'un clic sur un bouton. Chaque action d'administrateur suit un chemin sécurisé :

Action admin Journal d'audit Tick samm-radius Boîte d'envoi CoA Routeur
  1. L'action est enregistrée dans un journal d'audit en tant que commande mise en file d'attente.
  2. Le service samm-radius vide la file d'attente lors de son prochain tick, s'applique le changement et, si l'abonné est en ligne, met en file d'attente un CoA.
  3. La boîte d'envoi CoA est vidée et le paquet est envoyé au routeur.

Les événements temporels (expiration, bords de fenêtre rapide, réinitialisations quotidiennes) alimentent la même boîte d'envoi. La limite supérieure de la latence est d'un tick de samm-radius (30 s par défaut ; inférieure dans Paramètres pour une application plus stricte).

CoA hybride

SAMM envoie d'abord une CoA-Update pour modifier la session en place. Si le routeur le rejette après les tentatives configurées, SAMM revient automatiquement à un Demande de déconnexion : l'abonné se reconnecte et récupère le nouveau paramètres. Cette stratégie hybride fonctionne sur MikroTik versions de micrologiciel.

La page de la boîte d'envoi CoA

Utilisateurs → CoA Outbox est la vue en direct de cette file d'attente. samm-radius est le seul expéditeur – le panneau d'administration ne transmet jamais de CoA directement - et il vide la file d'attente à chaque tick. La page s'actualise automatiquement tous les 30 secondes.

Six compteurs sont en tête de la page : En attente, Envoyé, NACK (nouvelle tentative), Terminé, Échec et Total . Filtrer le tableau par statut, par action ( mise à jour ou déconnexion ), ou recherchez par nom d'utilisateur, IP NAS ou raison.

StatutSignification
en attenteEn file d'attente, en attente du prochain tick de samm-radius
envoyéEnvoyé au routeur, en attente de sa réponse
nackLe routeur a rejeté la mise à jour CoA – SAMM réessaye, puis revient à une déconnexion
terminéCandidature réussie
échouéA abandonné après la limite de tentatives – survolez le badge pour la dernière erreur

Chaque ligne affiche l'utilisateur, le routeur, l'action, le nombre de tentatives, la raison, ainsi que les éléments créés et heures d'envoi. Les actions par ligne vous permettent de réessayer un paquet ayant échoué ou échoué, Annulez un encore en vol ou ouvrez Attributs pour inspectez les attributs RADIUS exacts que le paquet transporte. Le badge de la barre latérale compte lignes en attente ; le tableau de bord suit les pannes sur 24 heures. Un système sain maintient cette file d'attente presque vide.

Opérations quotidiennes

Tableau de bord & sessions en direct

Les deux écrans sous Présentation sont votre point de départ. chaque quart de travail - le tableau de bord pour la santé de l'ensemble du système, les sessions en direct pour exactement qui est connecté en ce moment.

Tableau de bord

Présentation → Tableau de bord est l'écran d'accueil de l'opérateur. Un sélecteur de période en haut — Aujourd'hui, 7j, 14j, 30j, 90j — définit le fenêtre pour le graphique de tendance et les chiffres limités par date.

Les six tuiles KPI

Chaque vignette est un compteur en direct et un raccourci : cliquez dessus pour accéder directement à la liste filtrée derrière le numéro.

TuileAfficheOuvre
En ligne maintenantAbonnés avec une session RADIUS active en ce momentUtilisateurs filtrés vers En ligne
Abonnés actifsComptes actifs avec le nombre total d'abonnés en dessousUtilisateurs filtrés sur Actifs
ExpiréAbonnés dont l'abonnement a expiré sans forfait suivant définiUtilisateurs filtrés sur Expirés
File d'attente CoAPaquets CoA en attente, plus le nombre ayant échoué ces dernières 24 heuresLa boîte d'envoi CoA
RouteursTotal des enregistrements NAS, plus le nombre actuellement inaccessibleLe moniteur MikroTik
Factures impayéesFactures nécessitant encore un suivi de paiementFactures filtrées sur Impayées

Graphique des utilisateurs & sessions en direct

Un graphique linéaire instantané quotidien trace trois séries sur la période sélectionnée : utilisateurs actifs , sessions en ligne et utilisateurs expirés : la croissance et le taux de désabonnement sont donc visibles en un coup d'œil.

Santé du pipeline

Ce panneau est le cœur du moteur d’application. Sur un système sain, le les files d'attente sont égales ou proches de zéro - un nombre qui reste élevé indique un service bloqué ou un le routeur rejette les modifications.

MétriqueCe que ça signifie
samm-radius file d'attenteLes CoA en attente attendant le prochain tick – devraient être effacés en quelques secondes
CoA échoués (24h)Zéro sur un système sain ; un nombre différent de zéro signifie qu'un routeur rejette les CoA
Journal d'audit en attenteActions d'administration en file d'attente non encore appliquées par samm-radius
Sessions limitéesAbonnés actuellement limités à une vitesse réduite – attendu, pas une erreur
Instantané des sessionsLe nombre de sessions en direct – devrait suivre En ligne maintenant
Forfaits actifsLa taille de votre catalogue de plans
Le chemin d'application Les actions d'administration sont mises en file d'attente dans samm.audit_log ; le rayon samm tick les draine et émet des CoA dans samm.coa_outbox . Le chemin complet est dans CoA & changements en direct .

Tableaux d'activité récente

Quatre tableaux sous le graphique donnent une vue dynamique de ce qui vient de se passer, chacun avec un Afficher tous les liens vers sa page complète :

  • Boîte d'envoi CoA récente : action, utilisateur, état (terminé/en attente/nack/échec), nombre de tentatives, motif et heure.
  • Actions d'administration récentes : action, cible, acteur qui l'a déclenchée, si elle a déjà été appliquée et heure.
  • Abonnés récents : les comptes les plus récents avec leur statut et l'heure de la dernière authentification.
  • Routeurs : chaque NAS doté d'un point de santé accessible/inaccessible/sans données.

Sessions en direct

Présentation → Sessions en direct répertorie tous les abonnés les routeurs sont actuellement déclarés en ligne via la comptabilité RADIUS. La page s'actualise automatiquement toutes les 30 secondes ; un manuel Actualiser Le bouton se trouve dans l’en-tête.

Filtrer la liste

  • Recherche : correspond au nom d'utilisateur, à l'adresse IP encadrée ou à l'adresse IP du NAS, en soumettant au fur et à mesure que vous tapez.
  • Routeur : limitez la liste aux sessions sur un seul NAS.
  • Limité uniquement : affiche uniquement les abonnés auxquels une limite est maintenue à une vitesse réduite.
  • Par page : 20, 50, 100 ou 200 lignes.

Ce que chaque ligne montre

ColonneSignification
UtilisateurNom d'utilisateur : liens vers la page de détails de l'abonné
IP attribuéeL'adresse attribuée par le routeur à cette session
RouteurLe nom court du NAS et son adresse IP
ForfaitLe forfait actuel de l'abonné
Vitesse effectiveLa vitesse appliquée actuellement sur le routeur – la vitesse du plan ajustée par n'importe quelle fenêtre de vitesse active. Un badge limité signifie qu'une limite maintient l'abonné à une vitesse réduite.
Descendant / MontantCompteurs d'octets en direct pour la session
En ligneCombien de temps dure la session
DémarréQuand la session a commencé

Déconnecter une session

Le bouton Déconnecter sur une ligne met en file d'attente un CoA-Disconnect pour cette session exacte (raison admin_manual ) après une invite de confirmation. L'abonné abandonne immédiatement ; si leur compte est toujours actif, ils sont libres de reconnecter. Suivez le paquet dans la Boîte d'envoi CoA .

Opérations quotidiennes

Rapports & analyses

Présentation → Rapports est la vue analytique – abonné les tendances, le trafic au fil du temps et les utilisateurs et cartes les plus importants de votre réseau.

Choisir la plage

Chaque chiffre de la page est lié à une plage de dates. Choisissez un préréglage – 7d, 14d, 30d, 90d – ou tapez explicite start et terminez dates et cliquez sur Appliquer . Une superposition de chargement couvre la page pendant qu'une requête à longue portée telle que 90d s'exécute.

Tendances abonnés & sessions

Un graphique linéaire avec trois séries sur la plage choisie : Actif abonnés, sessions en ligne et expirées abonnés. Utilisez-le pour repérer la croissance, le taux de désabonnement et les heures chargées de votre réseau.

Trafic quotidien

Un graphique à barres empilées de téléchargements et téléchargements octets par jour. Le survol d'un jour affiche les chiffres de téléchargement et de téléchargement ainsi qu'un total au total dans le pied de page de l'info-bulle.

Listes Top 10

Quatre tableaux présentent vos comptes à trafic le plus important, chacun classé par volume en Go :

ListeClassements
Top 10 téléchargement aujourd'huiPlus grand téléchargement depuis la dernière réinitialisation quotidienne
Top 10 envoi aujourd'huiPlus grand envoi depuis la dernière réinitialisation quotidienne
Top 10 téléchargement mensuelPlus grand téléchargement ce mois calendaire
Top 10 envoi mensuelPlus grand envoi ce mois calendaire

Trafic par entité

Un tableau paginé et consultable du trafic par compte. Deux onglets changent ce qu'il répertorie :

  • Utilisateurs : chaque abonné avec son nom, son forfait, le jour du jour téléchargement/téléchargement en Mo, et téléchargement/téléchargement de ce mois-ci en Go.
  • Cartes : chaque carte de point d'accès avec son groupe, son statut et les mêmes Répartition du trafic aujourd'hui/mois.

La zone de recherche filtre le tableau au fur et à mesure que vous tapez ; le Le sélecteur par page prend entre 20 et 200 lignes. Chaque ligne renvoie à la page de détails de cet abonné ou de cette carte.

Export Les rapports sont une vue analytique à l'écran. Pour que les lignes brutes soient analysées dans une feuille de calcul, utilisez Outils → Exporter/Importer pour télécharger utilisateurs, forfaits ou NAS au format CSV / XLSX.

Opérations quotidiennes

Comptabilité & facturation

SAMM dispose d'un système complet de comptabilité en partie double intégré : factures, dépenses, reçus, paiements, revendeurs, immobilisations et finances complètes déclarations. Il n'y a pas de produit de facturation distinct à intégrer, ni de comptable nécessaire de garder les livres clairs.

Vous ne touchez jamais aux débits et crédits Chaque action — enregistrer un paiement, ajouter une dépense, vendre un groupe de cartes — comptabilise automatiquement une écriture de journal équilibrée dans le grand livre. Vous travailler en termes clairs (factures, dépenses, reçus) ; SAMM conserve la double entrée livres dans les coulisses et prouve qu'ils s'équilibrent dans la balance de vérification.

La page Comptabilité est organisée en dix onglets.

Aperçu

Le portrait financier. Quatre grands chiffres figurent en tête :

ChiffreSignification
Trésorerie disponibleSolde total sur tous les comptes de caisse & bancaires
L'argent qui vous est dûCréances — factures clients et revendeurs impayées
Argent que vous devezDettes — dépenses impayées
Bénéfice ce moisRevenus moins dépenses pour le mois en cours

Ci-dessous : un tableau de chaque cash & compte bancaire avec son solde, et un Tableau des revenus par rapport aux dépenses au cours des 1, 2, 3, 6 ou 12 derniers mois.

Factures

Une facture est une note que vous émettez. Cliquez sur Nouvelle facture et remplissez :

ChampSignification
ClientRecherche par saisie anticipée du compte facturé
Catégorie de revenusSur quel compte de revenus la vente est enregistrée
Date d'émission / d'échéanceDate d'émission vierge = aujourd'hui ; date d'échéance vide = la date d'émission
Taux de taxe %La valeur par défaut est le tarif dans Paramètres → Facturation .
Lignes de commandeUne ou plusieurs lignes de description/quantité/prix unitaire — calcul du sous-total, des taxes et du total en direct

Les factures sont également générées automatiquement lorsque le forfait d'un abonné est renouvelé (à partir de l'action Renouveler l'expiration de l'utilisateur ou par renouvellement automatique), à condition que le plan a un prix. La liste filtre par statut : impayé, partiel, dû, payé — et recherche par numéro de facture ou client. Ouvrez n'importe quelle facture pour son page de détail et un PDF imprimable ; les abonnés peuvent télécharger leurs propres copies à partir du portail client et bot Telegram .

Dépenses

Une dépense est l’argent dépensé pour faire fonctionner le FAI. Nouvelle dépense enregistre un catégorie (le compte de dépenses), le fournisseur payé, le montant, la date engagée et un date d'échéance facultative. Chaque dépense a le même impayé / partiel / dû / payé cycle de vie sous forme de facture, de page de détails et de bon PDF imprimable.

Reçus & Paiements

Ces deux onglets enregistrent les liquidités réellement en mouvement, distinctes de la facture ou de la dépense. c'est qui l'a causé .

  • Reçus : argent dans : espèces reçues d'un client, d'un revendeur, ou d'autres revenus, atterrissant sur l'un de vos comptes de trésorerie. Une facture est le facture; le reçu est l'argent qui arrive contre lui.
  • Paiements – argent sorti : espèces payées pour une dépense ou à un revendeur.

L'enregistrement d'un reçu ou d'un paiement déplace la facture ou la dépense correspondante vers a payé et publie l'écriture comptable correspondante.

Clients & Ventes de cartes

L'onglet Clients répertorie le solde courant de chaque client : ce qu'il je vous dois. Les ventes de cartes couvrent les revenus des points d'accès prépayés : elles suivent les ventes groupes de cartes et revendeurs . Un revendeur achète la carte entière groupe votre demande sur une facture, puis revend les cartes individuelles aux utilisateurs finaux ; leur solde dû est ce qu'ils doivent encore vous payer.

Actifs & Comptes de caisse

  • Actifs : enregistrez immobilisations (routeurs, véhicules, équipements). SAMM suit leur valeur et leur dépréciation au fil du temps.
  • Cash : gérez votre cash et votre compte. comptes bancaires , et vos comptes de capital : capitaux propres, où un apport est l'argent que le propriétaire met dans l'entreprise et un retrait est de l'argent retiré. Capitale n'est pas un revenu et n'apparaît jamais dans Profit & Perte.

Rapports — les états financiers

L'onglet Rapports est la vue du comptable. Cinq déclarations, chacune plage de dates et exportable au format PDF :

RapportRépond à
Profits & PertesRevenus par rapport aux dépenses et bénéfice net sur une plage de dates. Base d'exercice : les revenus comptent lorsqu'ils sont facturés, les dépenses lorsqu'elles sont engagées, et non lorsque les liquidités sont transférées.
BilanÀ compter d'une date : ce que vous possédez (actifs) par rapport à ce que vous devez (passif) plus les capitaux propres. Un badge équilibré confirme la correspondance des deux côtés.
Flux de trésoreriePar compte de trésorerie : solde d'ouverture, entrée d'argent, sortie d'argent, solde de clôture sur une plage.
VieillissementLes créances et dettes impayées sont triées par tranches d'âge, afin que vous puissiez rechercher les factures en retard et garder une longueur d'avance sur les factures.
AvancéLes livres bruts : le grand livre général (chaque ligne d'un compte avec un solde courant), la balance de vérification (le contrôle des livres équilibrés), le journal et un journal d'activité.
La vérification d'équilibre Dans la Balance de vérification , les colonnes de débit et de crédit de chaque compte doivent l'égalité totale — c'est la preuve que les livres sont solides. Si jamais il est déséquilibré, cela indique une erreur de publication qui mérite d'être étudiée.

Opérations quotidiennes

Tickets de support

SAMM dispose d'un service d'assistance intégré. Les abonnés génèrent des tickets depuis le portail client ou le bot Telegram , un administrateur peut en ouvrir un au nom d'un abonné et votre équipe travaille tous depuis Utilisateurs → Tickets d'assistance .

La file d'attente des tickets

La file d'attente répertorie chaque ticket : numéro, client, sujet, priorité, statut, le les dates d'ouverture et de dernière mise à jour, ainsi que le nombre de messages. Filtrez-le avec :

  • Jetons de statut : un par statut de ticket, chacun portant un live compte, de sorte que la charge de travail est visible en un coup d'œil.
  • Priorité : normale, modérée ou critique.
  • Actif/Retiré : un client peut retirer un billet qu'il n'a pas besoin plus long ; les tickets retirés sont grisés et masqués par défaut.
  • Recherchez : par numéro de ticket, sujet ou client.

Le badge de la barre latérale compte les tickets ouverts afin que rien ne soit oublié.

Ouvrir un ticket

Nouveau ticket permet à un administrateur de créer un ticket pour un client choisi : choisissez le client, puis définissez un sujet, une priorité et une description. Les abonnés ouvrent également le leur depuis le portail client ou le bot Telegram .

Travailler sur un ticket

Ouvrez un ticket pour lire le fil de conversation complet. À partir de là, vous pouvez :

  • Répondre au client : un message public que l'abonné voit sur leur portail et via le bot Telegram .
  • Ajoutez une note interne : un message réservé au personnel, masqué du client, pour les notes de transfert entre votre équipe.
  • Modifiez le statut et la priorité du ticket.

Cliquez avec le bouton droit sur n'importe quelle ligne - ou utilisez son bouton ⋮ - pour le même statut, priorité, réponse et des actions de notes internes sans quitter la file d'attente.

Opérations quotidiennes

Centre de notifications

SAMM tient les abonnés informés automatiquement – par e-mail et Telegram – et vous permet de diffuser des messages. Le Le service samm-notification fournit tout via une file d'attente limitée. La page Système → Centre de notifications comporte six onglets.

Aperçu

L'onglet d'arrivée – comptes en direct (en file d'attente, envoi, envoyé aujourd'hui, échec, ignoré, désinscrit), l'état de chaque canal de diffusion et un flux des informations les plus récentes notifications.

Canaux

Configure how messages leave SAMM . Email uses its own notification compte, séparé du SMTP de récupération de mot de passe dans Paramètres . Telegram utilise un jeton de bot. Chaque abonné, depuis le portail client, choisit les chaînes qu'il souhaite want and can opt out entirely.

Messages

Les modèles de messages , un ensemble par événement. Modifier le libellé de tout notification - rappels de renouvellement, reçus et le reste - afin que chaque message soit envoyé avec votre propre voix et votre propre langage.

Règles & Minuteries

Cet onglet détermine quand et comment les notifications automatiques se déclenchent. Pour chaque événement que vous contrôlez :

  • Si la règle est sur .
  • Ignorer la désinscription : une fois défini, le message parvient à tous les abonnés même s'ils se sont retirés. Réservez-le pour les messages transactionnels importants.
  • Délai : par exemple, combien de jours avant l'expiration d'un renouvellement un rappel est envoyé.
  • Livraison et livraison limitation — le travailleur vide la file d'attente lot par tick ; la taille du lot et l'intervalle de coche rythment ensemble la vitesse des messages sortez, afin qu'une diffusion massive n'inonde jamais votre serveur de messagerie.

Les événements que SAMM peut émettre seul incluent le rappel de renouvellement . (avant l'expiration d'un abonnement), le avis d'expiration (à son expiration), l'avertissement de quota (lorsque le plafond de données est faible), le paiement reçu (lorsqu'un paiement est enregistré) et forfait renouvelé .

Diffusion

Envoyez un message ponctuel (une fenêtre de maintenance, un changement de prix) à un ensemble choisi de abonnés. La diffusion circule dans la même file d'attente limitée que la diffusion automatique. notifications.

Boîte d'envoi

Chaque message SAMM a été mis en file d'attente ou envoyé, avec son état de livraison par message. Vous pouvez donc peut confirmer qu'une notification est parvenue à l'abonné ou voir pourquoi ce n'est pas le cas.

Système

VPN WireGuard

SAMM peut exécuter un WireGuard serveur VPN sur l'hôte SAMM – généralement pour un accès administrateur à distance dans la case SAMM et un accès de gestion aux MikroTiks derrière. Il est entièrement géré depuis Système → VPN ; non coque nécessaire.

Onglet Serveur

  1. Cliquez sur Générer des clés pour créer la paire de clés du serveur. Le La clé publique du serveur apparaît une fois générée : les clients en ont besoin.
  2. Définissez le port d'écoute (UDP, par défaut 51820 ), le Adresse du tunnel du serveur (le CIDR sur l'interface wg0 , par défaut 10.254.254.1/24 ), et la plage d'adresses IP client : les adresses de début et de fin SAMM sont automatiquement distribuées aux nouveaux pairs.
  3. Activez Activer WireGuard VPN et cliquez sur Enregistrer : SAMM fait apparaître l'interface wg0 . La bascule est verrouillée jusqu'à ce que les clés du serveur exister.

Onglet Clients

Cliquez sur Ajouter un client , donnez un nom au homologue et SAMM lui attribue le prochaine adresse de la plage client. Pour chaque homologue vous pouvez télécharger son fichier de configuration, scannez un code QR avec l'application mobile WireGuard ou copiez-le prêt à l'emploi MikroTik RouterOS commandes pour amener un routeur sur le VPN. Les pairs peuvent être activé/désactivé ou supprimé ; les couleurs d'état indiquent si chacun est connecté, obsolète ou jamais vu.

La régénération des clés est destructive Régénérer les clés modifie la paire de clés du serveur . Chaque client déjà déployé config contient l'ancienne clé publique du serveur et cessera de se connecter jusqu'à ce que vous redistribuez la configuration mise à jour. L'interface utilisateur gère cela derrière une boîte de dialogue de type à confirmer.

Système

Tunnel Cloudflare

Un tunnel Cloudflare Zero Trust publie SAMM sur l'Internet public sans ouvrir de ports de pare-feu – utile lorsque l'hôte SAMM est assis derrière NAT. Il est géré depuis Système → Cloudflare Tunnel .

Statut du service

La page s'ouvre sur une carte d'état qui rapporte l'état du connecteur :

ÉtatSignification
En coursLe tunnel est actif et achemine le trafic
ArrêtéConfiguré mais pas actuellement en cours d'exécution
Non configuréLe binaire est présent — collez un jeton pour le configurer
Non installéRéexécutez install.sh pour installer le binaire cloudflared

Il montre également la version de cloudflared et si le le connecteur est défini sur démarrage automatique au démarrage .

Configurer le tunnel

  1. Dans le tableau de bord Cloudflare Zero Trust ( one.dash.cloudflare.com ), ouvrez Réseaux → Tunnels et Créer un tunnel .
  2. Choisissez le connecteur Cloudflared , nommez le tunnel et enregistrez. Sur l'étape d'installation, copiez uniquement le jeton — la longue chaîne après --jeton .
  3. Collez-le dans SAMM et cliquez sur Configurer le tunnel ​​. SAMM tend le jeton à cloudflared et démarre le connecteur.
  4. De retour dans Cloudflare , ajoutez un Nom d'hôte public : l'adresse que vous avez choisie, tapez HTTP , URL localhost:80 (proxy par nginx — recommandé) ou localhost:8000 (directement vers l'API).

En quelques secondes, le badge d'état devient vert et SAMM est accessible sur le nom d'hôte public. Une fois configuré, des actions en un clic vous permettent de Démarrer , Arrêtez ou Redémarrez le connecteur, Remplacez Jeton pour le faire pivoter, ou Supprimer le tunnel (un type - REMOVE -pour confirmer actions).

Aucun port ouvert, jeton jamais dans la base de données Le tunnel établit une connexion sortante vers le bord de Cloudflare – non le port du pare-feu est toujours ouvert sur le serveur. Le jeton est transmis à cloudflared et stocké sous /etc/cloudflared/ ; SAMM jamais le conserve dans la base de données. TLS se termine au bord de Cloudflare , donc SAMM lui-même s'exécute HTTP simple sur le bouclage.

Système

Paramètres

Système → Paramètres contient les informations en direct et rechargeables à chaud. accordables. Les démons les relisent lors de leur prochain tick — aucun redémarrage du service n'est nécessaire . Les paramètres sont organisés en onglets.

Paramètres généraux

ParamètrePar défautContrôles
samm-radius interval30 sFréquence d'évaluation des événements temporels et d'envoi des CoA
samm-worker interval60 sCadence de ping routeur + synchronisation API MikroTik
Intervalle comptable intermédiaire60 sL'intervalle de comptabilité poussé vers les routeurs
Heure de réinitialisation quotidienne00:00Quand les compteurs d’utilisation quotidienne s’inversent
Fuseau horaire du serveurUTCFuseau horaire pour les fenêtres de vitesse et la réinitialisation quotidienne
Port CoA par défaut3799Port UDP par défaut pour les paquets CoA
Nombre max de tentatives CoA3Nouvelles tentatives avant le repli de la demande de déconnexion

Réduisez l’intervalle du rayon samm pour une application plus stricte ; soulevez-le pour réduire la charge.

Onglet FAI

Définissez l'identité de votre FAI et importez un logo FAI . Le logo est redimensionné automatiquement et apparaît sur les cartes hotspot imprimées et les factures PDF.

Onglet E-mail

Configurez le serveur SMTP utilisé pour les codes de récupération de mot de passe envoyés à administrateurs et clients (hôte, port, SSL/STARTTLS, nom d'utilisateur, adresse d'expéditeur, mot de passe). Cliquez sur Tester la connexion pour vérifier les informations d'identification sans envoyer d'e-mail.

Deux comptes e-mail L'onglet E-mail ici est uniquement destiné à la récupération d'OTP/mot de passe. The account used for les notifications client sont configurées séparément dans le Centre de notifications .

Système

Administrateurs & rôles

Système → Administrateurs gère qui peut se connecter à l'administrateur portail et ce que chacun peut faire. Il comporte deux onglets : Administrateurs et Rôles .

Comptes admin

Créez un administrateur avec un nom d'utilisateur, un mot de passe, une adresse e-mail facultative et un rôle. D'une rangée ⋮ menu, vous pouvez modifier le rôle ou le mot de passe, désactiver le compte ou le supprimer. Seulement un superadministrateur peut gérer d'autres administrateurs.

Rôles & autorisations

Un rôle accorde un accès par zone. Le superadministrateur intégré le rôle a toujours un accès complet et ne peut pas être modifié. Créez des rôles personnalisés pour un nombre limité accès : un nouveau rôle démarre sans accès jusqu'à ce que vous définissiez ses autorisations.

Pour chaque domaine de SAMM (abonnés, forfaits, NAS, comptabilité, outils, paramètres, etc.), un rôle est défini sur l'un des trois niveaux :

NiveauSignification
Non autoriséLa zone est entièrement masquée dans la barre latérale
VoirAccès en lecture seule
ModifierAccès complet — créer, modifier, supprimer

Portée de visibilité des données

Chaque rôle a également une portée. Voir tous les clients et tous les clients. cartes signifie le le rôle voit chaque enregistrement ; si cette case est décochée, ses administrateurs ne voient que les abonnés et les cartes ils ont eux-mêmes créé — idéal pour les revendeurs ou le personnel des succursales.

La licence est toujours accessible La page Système → Licence est intentionnellement exemptée de la matrice d'autorisation - c'est le chemin de sortie d'un verrouillage et ne doit jamais être caché à tout administrateur.

Système

Outils

La section Outils regroupe les utilitaires de masse et de maintenance.

Sauvegarde & Restauration

Créez un instantané complet de la base de données avant tout changement majeur. Une sauvegarde est un fichier compressé Archive pg_dump stockée sur le serveur, chacune avec un en-tête SAMM .

  • Créer une sauvegarde : ajoutez éventuellement une note ; cochez Ignorer l'utilisation et l'utilisation. history pour un vidage plus petit et plus rapide qui omet les tables de journaux volumineuses.
  • Téléchargez une sauvegarde sur votre PC ou téléchargez un sauvegarde SAMM précédente sur le serveur.
  • La restauration écrase la base de données actuelle - contrôlée par un tapez RESTORE pour confirmer la boîte de dialogue.

Nettoyeur d'historique

Supprimez définitivement les anciennes lignes de journal et d'historique pour récupérer de l'espace dans la base de données. Choisissez un préréglage de rétention et confirmer. Le nettoyeur coupe les sessions RADIUS fermées, post-authentification enregistrements, cumuls d'utilisation quotidienne, historique du routeur/interface, journaux de limitations, audit appliqué entrées et lignes CoA terminées. Il ne touche jamais aux sessions en direct, en file d'attente commandes, CoA en attente ou totaux d'utilisation à vie non réinitialisables.

Effectuez d'abord une sauvegarde History Cleaner supprime définitivement. Exécutez une sauvegarde avant de nettoyer si vous le souhaitez les données plus tard.

Export / Import

Exportation et importation groupées pour utilisateurs, forfaits et NAS en tant que .csv ou .xlsx . Téléchargez un modèle (les colonnes de droite plus un exemple de ligne) ou un instantané des données actuelles, remplissez-le et téléchargez-le à nouveau. Chaque ligne est validé et affiché sur un écran d'aperçu – doublons et lignes non valides sont apparus et vous choisissez d'ignorer les doublons ou de les mettre à jour sur place - avant tout est écrit.

Modifications en masse

Appliquez une modification (propriétaire, date d'expiration, statut ou renouvellement automatique) à chaque abonné correspondant à un filtre, en une seule fois. Choisissez le changement, construisez le filtre (statut / forfait / propriétaire / recherche), examinez la liste correspondante et confirmez.

Suppression en masse

Supprimez définitivement plusieurs abonnés ou cartes de point d'accès à la fois, sélectionnés par filtre. La suppression d'un abonné supprime également son historique d'utilisation, ses sessions, sa comptabilité RADIUS et factures et déconnecte toute session en direct. Gated par une boîte de dialogue de type DELETE pour confirmer.

Système

Langues & thèmes

Langues

Les portails administrateur et client sont entièrement traduisibles. Six langues intégrées : Anglais, arabe (de droite à gauche), turc, français, espagnol et allemand . Chaque utilisateur choisit sa langue dans la barre supérieure ou son profil; le choix est mémorisé par compte.

L'éditeur de traduction

Un superadministrateur peut modifier les traductions en direct depuis Système → Traductions : pas de redémarrage, pas de modification de fichier. L'éditeur crée également des langues entièrement nouvelles et importe/exporte des traductions. classeurs au format .xlsx , afin que vous puissiez localiser SAMM dans n'importe quelle langue que vous servez.

Thèmes

SAMM propose 11 thèmes visuels , clairs et sombres. Chaque utilisateur choisit un thème de la barre supérieure ; l'aperçu se met à jour instantanément et est enregistré par compte. informatique la terminologie n'est jamais traduite, les écrans techniques restent donc précis dans chaque langue.

Système

Journal d'audit

Système → Journal d'audit est l'enregistrement des actions de l'administrateur : et la file d'attente de commandes qui les exécute. Lorsque vous réinitialisez un compteur, changez de forfait, ou renouveler un abonné, SAMM écrit l'action ici plutôt que de toucher un routeur en direct directement.

Chaque entrée montre l'action, sa cible, l'administrateur qui l'a déclenchée, quand elle s'est produit et s'il a déjà été appliqué . Le Le service samm-radius draine les entrées en attente lors de son prochain tick et, où nécessaire, émet un CoA pour actualiser une session en direct. Le badge de la barre latérale compte toujours les entrées en attente ; Le panneau d'état du pipeline du tableau de bord suit l'arriéré.

Pourquoi une file d'attente Le routage de chaque action d'administration via le journal d'audit signifie que les modifications sont appliquées exactement par un processus dans un ordre prévisible — il n'y a jamais de course entre le portail Web et un routeur.

Licences

Licences & niveaux

Chaque SAMM installation est soumise à une licence par appareil : le plan perdure cette installation, vous pouvez donc exécuter plusieurs serveurs SAMM , chacun sur son propre niveau. Les ensembles de niveaux trois majuscules numériques.

NiveauUtilisateurs AAACartes HotspotNAS / routeurs
Non enregistré252001
Gratuit1005002
Pro2,0005,0005
Pro Maxillimitéillimitéillimité

Une nouvelle installation s'exécute non enregistrée au niveau minimum. Chaque fonctionnalité est disponible à chaque niveau – le niveau ne fixe que les plafonds. Création d'un abonné, d'une carte ou Le NAS au-delà du plafond est bloqué jusqu'à la mise à niveau ; aucune donnée n'est jamais perdue .

Activer & mettre à niveau

  1. Ouvrez Système → Licence .
  2. Activez-le en vous connectant avec votre compte SecuryTik – ou utilisez Associez cet appareil , qui affiche un code sur lequel vous approuvez samm.securytik.com sans taper votre mot de passe sur le serveur. L'appareil s'active sur Gratuit .
  3. Pour aller plus haut, demandez Pro ou Pro Max auprès du même page : un administrateur SecuryTik l'examine et l'approuve.

La page Licence revérifie également la licence sur demande et affiche votre utilisation contre chaque capuchon. Dissocier l'appareil ramène l'installation sur le niveau non enregistré sans supprimer aucune donnée.

Si une licence payante expire

SAMM ne supprime jamais les données. Une licence expirée se retire gracieusement :

ÉtapeCe qui se passe
AvertissementUne bannière de rappel ; tout continue de fonctionner
GrâceUne courte fenêtre pour réactiver ; les abonnés restent en ligne
Verrouillage partielLes services d'arrière-plan s'arrêtent ; RADIUS continue de s'authentifier pendant environ 7 jours
Verrouillage completLes services s'arrêtent sauf la page de réactivation

La réactivation à tout moment redémarre automatiquement chaque service : toutes les données et l'historique des abonnés sont intacts.

Mises à jour automatiques

La mise à jour automatique est indépendante de la licence : chaque mise à jour de niveau et une licence expirée ne le bloque jamais. SAMM recherche quotidiennement une nouvelle version signée. De Système → Licence , vous pouvez basculer entre notifier (par défaut : une bannière avec un bouton Appliquer maintenant ) et auto (appliquer sans surveillance). Chaque mise à jour est vérifiée, sauvegardée et appliquée dans lieu. Vous pouvez également réexécuter le programme d’installation à tout moment : il se met à niveau de manière idempotente.

Pour vos abonnés

Portail client & bot

SAMM offre à chaque abonné deux surfaces en libre-service : un portail Web et un Telegram bot – afin qu'ils puissent vérifier l'utilisation et payer sans vous contacter.

Le portail client

Les abonnés se connectent à la racine du site SAMM ( / ) avec leur nom d'utilisateur SAMM et mot de passe. Le portail dispose de :

PageCe que voit l'abonné
AperçuStatut du compte, forfait, expiration, utilisation d'aujourd'hui et de ce mois-ci, toute facture impayée
Utilisation et amp; séancesTotal téléchargé/téléchargé, budget de disponibilité et historique complet des sessions
Mes forfaitsLe forfait actuel plus le catalogue des forfaits disponibles
Mes facturesHistorique de facturation avec téléchargement PDF en un clic
Tickets de supportOuvrir et suivre les tickets d'assistance
ProfilModifiez les coordonnées, changez le mot de passe, définissez la langue et la langue. thème, gérer les notifications

Depuis le profil , un abonné connecte son compte Telegram , commande leurs canaux de notification préférés, ou se désengage complètement des notifications. S'ils oubliez leur mot de passe, un code OTP leur est envoyé par e-mail (cela nécessite le Onglet E-mail configuré).

Le bot Telegram

Le service samm-telegram exécute un robot en libre-service interactif. Un l'abonné envoie /start , vérifie une fois avec son nom d'utilisateur SAMM et mot de passe (le bot supprime immédiatement le message de mot de passe), et peut alors, entièrement depuis le chat :

  • Vérifiez leur forfait, leur quota, leur utilisation et leur date d'expiration
  • Afficher et télécharger les factures au format PDF
  • Mettre à jour son profil et changer son mot de passe
  • Ouvrir et suivre les tickets d'assistance

Le bot délivre également les notifications automatiques : rappels de renouvellement, expiration notifications, avertissements de quota et reçus — aux abonnés qui se sont connectés à Telegram .

Référence

Exploitation de SAMM

Presque tout se fait depuis le portail d'administration. Cette page est la référence shell pour les rares fois où vous en avez besoin.

Gestion des services

# 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

CLI Admin

Pour des opérations rapides d’abonné à partir du shell. Chaque commande est mise en file d'attente pour l'audit log et appliqué au prochain tick samm-radius - exactement comme les actions de l'interface utilisateur.

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

Fichiers de configuration

FichierContient
/etc/samm/samm.yamlLe DSN de la base de données, la taille du pool de connexions, le niveau de journalisation
/etc/samm/api.envSecrets de session du portail et paramètres SMTP de récupération de mot de passe
/etc/samm/secret.keyLa clé de cryptage pour les mots de passe API du routeur stockés

Ces fichiers sont conservés lors des mises à niveau et ne sont jamais écrasés par une réexécution du programme d'installation. Paramètres d'exécution (cadences de boucle, temps de réinitialisation quotidienne, CoA ports) se trouvent plutôt dans Paramètres , et appliquer sans redémarrage.

Mise à jour de SAMM

Soit laissez SAMM se mettre à jour depuis Système → Licence , ou réexécutez le programme d'installation — voir Installation → Mise à niveau de . Les deux chemins réappliquent les migrations et redémarrent les services ; votre configuration et les données sont intactes.

Sauvegarde & récupération

Utilisez Outils → Sauvegarde et amp; Restaurez pour un instantané de la base de données avant tout changement majeur. Pour reconstruire sur un nouvel hôte, installez SAMM et puis restaurez la sauvegarde.

Référence

FAQ & dépannage

Quels systèmes d'exploitation SAMM est-il pris en charge ?

Ubuntu 22.04 LTS, Ubuntu 24.04 LTS et Debian 12. Version serveur Linux uniquement : les variantes de bureau ne sont pas prises en charge. L'installateur attend systemd, un nouveau Installation de PostgreSQL (une est configurée pour vous) et accès root.

Ai-je besoin d'une connexion Internet pour exécuter SAMM ?

Non. SAMM fonctionne entièrement sur votre propre serveur et authentifie les abonnés localement sur RAYON. Le seul trafic sortant est un battement de cœur de licence périodique vers le SecuryTik serveur de licences pour que votre plan reste validé.

Puis-je exécuter SAMM dans le cloud, ou doit-il être sur site ?

L’un ou l’autre fonctionne. La plupart des opérateurs fonctionnent sur site à côté de leurs routeurs principaux ; certains courent sur une petite VM cloud avec un tunnel Cloudflare Zero Trust en arrière. La seule exigence est que les routeurs MikroTik peuvent atteindre le serveur SAMM sur les ports RADIUS (1812/1813 UDP) et que SAMM peut atteindre les routeurs via l'API MikroTik .

Dois-je redémarrer FreeRADIUS lorsque j'ajoute ou supprime un routeur ?

Non. SAMM résout les clients NAS de manière dynamique à partir de la base de données, ajoutant ainsi : modifier ou supprimer un routeur dans MikroTik → NAS prend effet sans redémarrage.

À quelle vitesse un changement de plan ou une réinitialisation de compteur prend-il effet ?

Les actions d'administration sont mises en file d'attente et appliquées par le service samm-radius sur son prochain tick – dans les 30 secondes par défaut. Si l'abonné est en ligne, SAMM envoie également un CoA en direct pour actualiser la session. Réduisez l'intervalle du rayon samm dans Système → Paramètres pour un timing plus serré.

Qu'arrive-t-il à mes données si une licence payante expire ?

Rien n'est jamais supprimé. Une licence expirée est annulée par un avertissement, une grâce, un verrouillage doux (RADIUS continue de s'authentifier pendant environ une semaine) et enfin un verrouillage dur confinement. La réactivation à tout moment redémarre chaque service avec toutes les données intactes.

Est-ce que SAMM est gratuit ? Qu'est-ce que Pro ajoute ?

Le niveau gratuit est gratuit pour toujours et comprend toutes les fonctionnalités. Pro et Pro Max ne déverrouillent pas les fonctionnalités - ils augmentent le plafond des utilisateurs AAA, des cartes hotspot et routeurs. Voir Licences et amp; niveaux .

Un abonné ne peut pas s'authentifier : par où commencer ?

Vérifiez que le secret partagé RADIUS du routeur correspond exactement à l'enregistrement NAS, que le routeur est activé pour PPP / Hotspot RADIUS et que l'abonné le compte est actif et n’a pas expiré. Regarder journalctl -u samm-api -f et le journal FreeRADIUS , et confirmez que le routeur peut atteindre l'hôte SAMM sur UDP 1812/1813.

Besoin d'aide supplémentaire ?

Envoyez un e-mail à [email protected] pour signaler un bug ou demander une fonctionnalité.