Documentación

SAMM documentación

El manual completo del operador — desde la primera instalación hasta las operaciones diarias.

25 temas 8 secciones Instalación con un comando
Instalación rápida

En línea en minutos, con un comando.

Ejecute una sola línea en un servidor Ubuntu o Debian recién instalado —o en PowerShell en Windows— y el instalador descarga la última versión y configura toda la pila de SAMM por usted.

Leer la guía completa de instalación
Ubuntu / Debian — ejecutar como root
curl -fsSL https://samm.securytik.com/install.sh | sudo bash
Windows — ejecutar en PowerShell como administrador
irm https://samm.securytik.com/install-windows.ps1 | iex
Lista de reproducción Curso en vídeo Mira SAMM desde la instalación hasta la operación diaria: un curso en vídeo completo Una lista de reproducción gratuita de YouTube, paso a paso, que te guía por la instalación de SAMM y su uso diario: el mismo contenido de este manual, en vídeo. Ver en YouTube

Comenzar

Descripción general & arquitectura

SAMM — S ecuryTik A ctivo M ikrotik M anager: es una plataforma completa de gestión de ISP para MikroTik PPPoE & Redes de puntos de acceso. Un instalador convierte un servidor Linux básico en un AAA completo, facturación y sistema de gestión de suscriptores.

Para quién es SAMM

SAMM está diseñado para ISP inalámbricos, operadores de fibra y proveedores de puntos de acceso que ejecutan MikroTik RouterOS . Si autentica suscriptores a través de PPPoE, Hotspot o IPoE/DHCP y necesita aplicar niveles de velocidad, límites de datos, fechas de vencimiento y facturación: SAMM lo hace todo desde una pantalla.

Los suscriptores IPoE/DHCP se identifican por su ID de circuito DHCP Opción 82 (el identificador físico puerto de acceso (a la manera del ISP profesional) o la MAC del dispositivo, y la contraseña de radio del servidor DHCP es simplemente el secreto compartido RADIUS del enrutador, por lo que no hay nada adicional que aprovisionar.

Stack dual de IPv6 es una opción de opción: cada suscriptor puede obtener IPv6 junto con IPv4. Habilítelo en el asistente del enrutador y elija la longitud de prefijo delegado (DHCPv6-PD) — un /56 por defecto, o desde /48 hasta /64 — y los bloques IPv6 para distribuir. En cada Access-Aceptar SAMM devuelve una piscina WAN de IPv6 más un prefijo enrutado delegado a la LAN del suscriptor, por lo que el enrutador propio del cliente (en modo de ruta) lo subdivide en /64 y ejecuta SLAAC para sus dispositivos — el modelo estándar de delegación de prefijo del ISP. Funciona con PPPoE, Hotspot e IPoE, y un prefijo IPv6 estático se puede fijar por suscriptor para clientes empresariales.

Cómo funciona

SAMM mantiene la ruta activa cerca de la base de datos. FreeRADIUS maneja cada paquete de autenticación y contabilidad; en cada actualización provisional contable que llama PostgreSQL funciona directamente para acumular uso y evaluar límites; no hay Viaje de ida y vuelta de Python mientras los suscriptores están en línea.

Cuatro superficies de ejecución cooperan a través de la base de datos única:

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

Los cinco servicios

ServicioRol
samm-apiPortal admin + portal de autoservicio al cliente + REST API
samm-radiusVacía la bandeja de salida CoA; ejecuta barridos de expiración/reinicio diario/ventana de velocidad
samm-workerHace ping a los routers; sincroniza metadatos de dispositivos MikroTik via API
samm-notificationEntrega notificaciones por correo & Telegram a través de una cola controlada
samm-telegramEjecuta el bot interactivo de autoservicio de Telegram

Qué hace SAMM

Núcleo AAA

Autenticación PPPoE & Hotspot, aplicación de velocidad por usuario, CoA híbrido.

Planes & límites

Niveles de velocidad más cuatro límites independientes y ventanas de velocidad programadas.

Suscriptores

Usuarios de PPPoE, Hotspot e IPoE/DHCP, además de tarjetas de vales Hotspot prepago con PDF imprimibles.

Facturación

Precios por plan, facturas automáticas, libro de contabilidad de doble entrada para recibos/pagos/gastos.

Autoservicio

Un portal web para clientes y un bot de Telegram para uso, facturas y tickets.

Operaciones

Inventario MikroTik en vivo, administradores por roles, copia de seguridad & restauración, herramientas masivas.

Sistema

WireGuard VPN integrada, Cloudflare túnel, ocho idiomas, interfaz de usuario temática.

Notificaciones

Alertas de renovación, expiración, cuota y recibo por correo y Telegram.

El resto de este manual es una guía paso a paso para cada una de estas áreas. Utilice el menú de la izquierda, o comience con Instalación.

Comenzar

Instalación

SAMM instala todo lo que necesita — FreeRADIUS, PostgreSQL, nginx, WireGuard, cloudflared y los cinco servicios de SAMM — en un solo paso. El instalador es idempotente: al ejecutarlo de nuevo, actualiza la instalación existente en su lugar y nunca sobrescribe su configuración o regenera su contraseña de base de datos.

SAMM se ejecuta en cualquier lugar: elija la ruta de instalación que se ajuste a su red:

Requisitos previos

  • Un servidor limpio: Ubuntu 22.04 / 24.04 / 26.04 LTS, o Debian 12 / 13. Solo Linux de servidor — las variantes de escritorio no están soportadas.
  • Acceso root / sudo y conexión a internet.
  • systemd y un host donde se puede instalar PostgreSQL localmente (hay uno configurado para usted).

Instalación

Opción A — instalar con un comando

En el servidor, ejecute:

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

Este script de arranque descarga el último paquete de versión SAMM de GitHub y extrae y ejecuta el instalador completo automáticamente. Hecho en unos minutos.

Si github.com está bloqueado en su país, utilice el espejo alojado por Cloudflare en su lugar — el instalador es el mismo, nada se descarga desde GitHub. (El comando estándar anterior también detecta un GitHub bloqueado y cambia al espejo automáticamente.)

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

En cualquier caso, cuando finalice la instalación, abre el portal de administración e inicia sesión con estas credenciales:

URL de accesohttp://<your-server>/admin · Nombre de usuarioadmin · Contraseñaadmin

Cambia la contraseña de administrador inmediatamente después de tu primer inicio de sesión.

Instalación

Opción B — instalar en Windows (Hyper-V)

SAMM se ejecuta en Windows dentro de su propia máquina virtual Ubuntu 24.04 pequeña en Hyper-V, creada y gestionada por un único instalador. La VM se une a su red con su propia dirección IP, de modo que sus routers MikroTik llegan a SAMM directamente: RADIUS ve la dirección real de cada router, y las desconexiones CoA funcionan, exactamente igual que con un servidor Linux.

Abra PowerShell como administrador —no el símbolo del sistema (cmd)—: haga clic derecho en el botón Inicio, elija Terminal (Admin) o Windows PowerShell (Admin) y responda Sí. Luego ejecute:

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

Si no se puede acceder a samm.securytik.com desde este PC, use en su lugar el espejo alojado en Cloudflare: es el mismo instalador. (El instalador también cambia al espejo por sí mismo cuando falla una descarga.)

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

En cualquier caso, cuando finalice la instalación, abre el portal de administración e inicia sesión con estas credenciales:

URL de accesohttp://<SAMM IP>/admin · Nombre de usuarioadmin · Contraseñaadmin
Acceso al sistema (SSH)samm / samm · root (consola)root / samm

Los mismos valores predeterminados que la SAMM Server ISO. Cámbielos todos tras el primer inicio de sesión. El acceso directo SAMM Info del escritorio los vuelve a mostrar, junto con la dirección IP de SAMM y cómo entrar en la VM por SSH.

Qué preguntará

  1. A qué red debe unirse SAMM, cuando el PC tiene más de un adaptador conectado. Pulse Intro para la opción recomendada (cable antes que Wi-Fi).
  2. La dirección IP de SAMM en esa red. Sugiere una libre; pulse Intro para aceptarla, escriba otra, o escriba dhcp.

Si Hyper-V está desactivado, el instalador lo activa y pide reiniciar Windows una vez; tras volver a iniciar sesión, continúa por sí solo. El resto —Multipass, el puente de red, la VM y SAMM propiamente— tarda de 10 a 20 minutos, con una barra de progreso.

Requisitos

  • Windows 10 / 11 Pro, Enterprise o Education, o Windows Server 2019 y posteriores (64 bits). Windows Home no tiene Hyper-V.
  • Virtualización por hardware activada en la BIOS/UEFI (Intel VT-x o AMD-V). El instalador la comprueba y se detiene con un mensaje claro si está desactivada — vea Activar la virtualización.
  • Al menos 8 GB de memoria, con 4 GB libres para la VM de SAMM (3 GB es el mínimo; otras máquinas virtuales —VMware, VirtualBox— cuentan en contra), y 40 GB de disco libre.
  • Se recomienda encarecidamente un cable de red. Muchos controladores Wi-Fi no pueden conectar una máquina virtual a la red mediante puente, y entonces solo el propio PC puede llegar a SAMM.

Después de instalar

  • Abra el panel de administración en http://<SAMM IP>/admin/login (hay un acceso directo SAMM Admin en el escritorio), inicie sesión con admin / admin y cambie la contraseña de inmediato.
  • Configure su RADIUS de MikroTik para apuntar a la IP de SAMM (UDP 1812/1813) — el Asistente de Router del panel lo hace por usted.
  • SAMM se inicia con Windows, antes de que alguien inicie sesión, y el PC se configura para no suspenderse nunca. En un portátil, mantenga el cargador conectado y configure el cierre de la tapa como «No hacer nada».
  • Para eliminarlo: ejecute la misma línea con -Uninstall, o & ([scriptblock]::Create((irm https://samm.securytik.com/install-windows.ps1))) -Uninstall.

Instalación

Activar la virtualización en la BIOS/UEFI

SAMM en Windows se ejecuta en una máquina virtual Hyper-V, que necesita la función de virtualización del procesador: Intel Virtualization Technology (VT-x) en Intel, o AMD-V —normalmente llamada SVM Mode— en AMD. La mayoría de los PC la traen activada de fábrica; algunos la tienen desactivada. Cada marca la esconde en un menú distinto, así que aquí están los pasos generales y dónde suele estar.

Primero, compruebe si ya está activada

Abra el Administrador de tareas (Ctrl+Mayús+Esc) → Rendimiento → CPU. Si bajo el gráfico aparece Virtualización: Habilitada, ha terminado. (Si Hyper-V ya está activo, Windows puede mostrar en su lugar una línea indicando que se detectó un hipervisor — eso también significa que está activada.)

Pasos generales

  1. Guarde su trabajo y reinicie el PC.
  2. Abra la configuración de la BIOS/UEFI: pulse repetidamente la tecla de configuración en cuanto se encienda la pantalla (vea la tabla). En Windows 10/11 también puede ir a Configuración → Sistema → Recuperación → Inicio avanzado → Reiniciar ahora, y luego Solucionar problemas → Opciones avanzadas → Configuración de firmware UEFI → Reiniciar.
  3. Busque en el menú Advanced, Advanced CPU, Processor, Chipset, Security o Virtualization las opciones Intel Virtualization Technology, Intel VT-x, SVM Mode o AMD-V, y póngalas en Enabled. (Intel VT-d / AMD IOMMU no es necesario.)
  4. Guardar y salir (normalmente F10), deje que Windows arranque y luego ejecute de nuevo el instalador de SAMM.

Dónde suele estar

MarcaTecla de configuraciónLugar habitual
DellF2Soporte de Virtualización → Virtualización / Habilitar Tecnología de Virtualización Intel
HPF10 (o Esc, luego F10)Advanced (o Security / System Configuration) → Virtualization Technology (VTx)
LenovoF1 / F2 (o el botón Novo)Security (ThinkPad) o Configuration → Intel Virtualization Technology / AMD SVM Technology
ASUSF2 / DelAdvanced Mode (F7) → Advanced → CPU Configuration → Intel Virtualization Technology o SVM Mode
AcerF2Advanced (o Main) → Intel Virtualization Technology
MSIDelOC → CPU Features → Intel Virtualization Tech o SVM Mode
GigabyteDelTweaker (o Advanced) → Advanced CPU Settings → Intel Virtualization Technology o SVM Mode
Servidores (Dell iDRAC, HPE, Supermicro)F2 / F9 / DelProcessor Settings → Virtualization Technology — a menudo ya activada
Una máquina virtual dentro de otra máquina virtual (Windows mismo ejecutándose en VMware, Proxmox o Hyper-V) necesita en su lugar la virtualización anidada activada en el hipervisor exterior — por ejemplo, «Virtualize Intel VT-x/EPT» en la configuración de CPU de VMware, con la VM apagada.

Instalación

Opción C: instalar manualmente desde un paquete de versión

Descargue la última versión de samm-<version>.tar.gz desde la página de Lanzamientos de GitHub, luego en el servidor:

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

También puede implementar desde un archivo zip generado en otra máquina — el instalador rsync extrae la fuente en /opt/samm mismo.

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

Clona el repositorio en /opt/samm y ejecuta sudo bash /opt/samm/install.sh.

En cualquier caso, cuando finalice la instalación, abre el portal de administración e inicia sesión con estas credenciales:

URL de accesohttp://<your-server>/admin · Nombre de usuarioadmin · Contraseñaadmin

Cambia la contraseña de administrador inmediatamente después de tu primer inicio de sesión.

Instalación

Opción D: instalar con Docker Compose

Si prefiere ejecutar SAMM como contenedores (mismo producto, empaquetado de manera diferente)\n utilice la distribución Docker Compose en github.com/mhdhaidarah/samm-docker .\n En cualquier host con Docker disponible:

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

Eso instala Docker si falta, deja un docker-compose.yml en /opt/samm-docker/ con una contraseña de base de datos aleatoria y fuerte ya rellenada, y arranca la pila. La imagen mhdhaidarah/samm se construye del mismo paquete compilado que la instalación bare-OS — de código cerrado por construcción.

Multiarch — la misma etiqueta se publica para linux/amd64 y linux/arm64, y la variante correcta se selecciona automáticamente desde la etiqueta: docker pull en cualquier host Docker (Intel/AMD, servidor ARM, Mac con Apple Silicon) y MikroTik RouterOS 7.23+ en el propio router. Un archivo, todas las plataformas.

En hosts donde no se permite redirigir curl a bash (cajas con restricciones, políticas de salida estrictas), puede obtener el archivo de composición listo para ejecutar directamente:

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

Algunas características aún no están disponibles en la variante Docker (bloqueo de licencia por etapas, recarga dinámica de FreeRADIUS). Las páginas de administración integradas de WireGuard y Cloudflare Tunnel están ocultas intencionalmente en la variante Docker —gestionan servicios de systemd a nivel de host que no son accesibles desde dentro del contenedor. Elija la Opción A o C anteriormente si necesita esas integraciones, o ejecute cloudflared / wg-quick directamente en el host Docker junto con SAMM. Consulte la página README de la variante Docker para las precauciones completas de v1 y la ruta de instalación manual.

En Windows ( Docker Desktop ): solo evaluación

No recomendado para producción. El sueño de Windows / hibernación / cierre de tapa interrumpe los contenedores; el reinicio de arranque solo se activa cuando WSL comienza (no al arranque de Windows); el cron de actualización automática diaria solo se ejecuta mientras WSL esté activo. Úselo para evaluación / demostración, luego implemente la producción en una máquina virtual Linux (Hyper-V, Proxmox, ESXi) o una pequeña caja física (por ejemplo, un NUC con Ubuntu Server).

Instalar Docker Desktop para Windows (permite configurar el backend WSL2 al primer lanzamiento). Luego, desde PowerShell — sin necesidad de terminal WSL — obtener el paquete compose y arrancar la pila:

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

Observe el arranque del stack en Docker Desktop → Contenedores — el grupo samm se expande en 8 servicios. Una vez que todos estén verdes, abra el portal de administración e inicie sesión con estas credenciales:

URL de accesohttp://localhost:8000/admin · Nombre de usuarioadmin · Contraseñaadmin

Cambia la contraseña de administrador inmediatamente después de tu primer inicio de sesión.

Si un NAS MikroTik real llega a este host de Windows para RADIUS, permita UDP 1812 + 1813 a través del Firewall de Windows:

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

Derribar: docker compose down -v del directorio de instalación (el -v borra el volumen de Postgres y la clave Fernet; primero haga una copia de seguridad si ha agregado datos).

Instalación

Opción E — instalar en un router MikroTik (RouterOS 7.23+)

El mismo SAMM, sin equipo Linux. Si su dispositivo MikroTik admite el paquete container y tiene una unidad USB o microSD, puede ejecutar toda la pila directamente en el router — con el mismo docker-compose.yml que en todas partes. RouterOS 7.23+ descarga la arquitectura correcta de las etiquetas multiarch automáticamente, así que no hay nada específico del router que descargar.

Compatibilidad: todos los routers MikroTik con capacidad de contenedor — RB5009, hAP ax², CCR2004-1G-12S+2XS, CCR2116, CCR2216, L009 y similares (arm64), además de x86 RouterOS y CHR (amd64). No compatible: dispositivos armv7 / mipsbe / smips / tile / ppc (hEX, RB750, modelos RB más antiguos) — sin soporte para contenedores o RAM/CPU insuficiente para la pila de SAMM. Se requiere RouterOS 7.23 o superior (las versiones anteriores no pueden seleccionar la arquitectura desde una etiqueta multi-arquitectura).

1. Prepare el enrutador

Instala el paquete container (de extra_packages.zip en mikrotik.com/download — sube el container-*.npk correspondiente vía Files y reinicia). Después activa el modo contenedor (una sola vez — solo se activa tras un corte de corriente físico, no con un reinicio normal):

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

2. Formatee y monte el disco (ext4)

Inserte una unidad USB o microSD (se recomiendan ≥ 8 GB: se suman Postgres + capas de imagen). En el enrutador:

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

Después de formatear, verifique que el disco se monte y se pueda escribir:

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

3. Copie el archivo compose

Un archivo para cada plataforma. Reemplace change-me-strong-random-string (la contraseña de Postgres — el mismo valor fuerte en todas partes) y change-me-random-token. Luego en WebFig/WinBox: Container → Apps → + New → YAML, pegue, establezca el disco ext4 del paso 2 como almacenamiento y envíe. RouterOS 7.23+ descarga la arquitectura correcta de las etiquetas de imagen automáticamente.

¿Atascado en "waiting for reverse proxy"? En RouterOS 7.23+, desmarque Use HTTPS en el diálogo de Apps y vuelva a desplegar — esa opción controla el proxy de la interfaz web de la app, no cómo se descargan las imágenes.
docker-compose.yml
name: samm

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

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

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

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

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

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

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

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

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

4. Verifique y conecte MikroTik a SAMM

Una vez que los contenedores SAMM se estén ejecutando, abra el portal de administración en un navegador e inicie sesión con estas credenciales:

URL de accesohttp://<router-ip>:8000/admin · Nombre de usuarioadmin · Contraseñaadmin

Cambia la contraseña de administrador inmediatamente. La autenticación RADIUS + accounting se exponen en UDP 1812 + 1813 en el propio router, por lo que el cliente RADIUS de MikroTik puede apuntar a 127.0.0.1 con el secreto compartido que configures en Sistema → RADIUS.

Ruta de implementación experimental. La característica de contenedores de RouterOS es más ligera que Docker Compose — el nombre del servicio DNS, el orden de dependencias (depends_on) y los reinicios en vivo funcionan de manera diferente. Si la pila tiene un comportamiento inapropiado en su hardware, vuelva a ejecutar Docker en una pequeña caja de Linux (NUC, Pi 4, VM de Linux) junto al MikroTik. El mismo archivo de composición funciona allí con todas las semánticas de Compose.

5. Actualización: haga una copia de seguridad y restaure manualmente

Actualizar una aplicación de contenedor MikroTik borra su base de datos. RouterOS no puede cambiar la versión de una aplicación instalada en su lugar — la única forma es eliminar la aplicación y agregarla de nuevo, y al eliminarla se borra todo lo que la aplicación almacenó, incluyendo la base de datos de SAMM. Haga una copia de seguridad y descárguela a su computadora ANTES de eliminar la aplicación. Una copia de seguridad dejada en el enrutador se eliminará junto con todo lo demás.

Para mover una instalación de contenedor MikroTik a una nueva versión:

  1. En SAMM, vaya a Herramientas → Copia de seguridad, cree una copia de seguridad y descargue el archivo a su computadora.
  2. En el enrutador, elimine la aplicación y agréguela nuevamente con la nueva versión.
  3. Abra la nueva SAMM, vaya a Herramientas → Copia de seguridad y restaure el archivo descargado.

Esto se aplica únicamente al contenedor MikroTik . El Docker ( Linux , Windows o una Linux VM) una actualización es docker compose pull entonces docker compose up -d y sus datos no se modifican: los volúmenes se encuentran fuera del contenedores y sobrevivir.

Instalación

Opción F — SAMM Server ISO (instalación appliance)

La SAMM Server ISO convierte cualquier máquina o VM vacía en un servidor SAMM listo: arráncala, elige DHCP o IP estática en la única pantalla que muestra, confirma y despreocúpate. Instala Ubuntu Server 24.04 LTS (minimizado), nombra el host samm-server y descarga e instala automáticamente la última versión de SAMM en el primer arranque — la ISO nunca queda obsoleta. La consola muestra un splash de SAMM y un banner de acceso con la IP del servidor, la dirección del panel de administración y las credenciales por defecto, y el comando samm-tools da acceso directo a las herramientas de mantenimiento (chequeo de salud, copia y restauración de la base de datos, restablecimiento de la contraseña de admin).

La ISO borra el primer disco de la máquina. Arráncala solo en hardware o una VM dedicados a SAMM. Si la máquina está sin conexión durante la instalación, la configuración se completa sola en cuanto haya internet.

Grábala en un USB (Rufus, balenaEtcher o dd) o conéctala a una VM, arranca y responde la pregunta de red. Credenciales por defecto tras la instalación — panel: admin / admin, SO: samm / samm o root / samm — cámbialas todas.

Descargar la ISO de SAMM Server 2.2 GB

SHA-2568b6d57e286a4c0524d96b5b4970b57079113e000fc8229f94360410c12f5102e

Instalación

Referencia del instalador

Opciones no interactivas

Todas las indicaciones se pueden responder previamente con variables de entorno, para que el instalador pueda ejecutarse desatendido:

VariableEfecto
DB_PASSUtilice esta contraseña de base de datos en lugar de una generada automáticamente (solo la primera instalación)
CF_TOKENInstale el conector de túnel Cloudflare con este token de confianza cero
SAMM_HTTP_PORTForzar el puerto de escucha de nginx (omite el mensaje de detección del puerto 80)
SAMM_VERBOSE1 muestra la salida del comando crudo en lugar de la barra de progreso
NO_COLOR1 Deshabilita la salida coloreada
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

Lo que configura el instalador

El instalador se ejecuta como una pantalla de progreso en vivo, con una barra de porcentaje y una lista de verificación por fases. La salida bruta de cada fase se captura en /var/log/samm-install.log; en caso de fallo, se imprimen las últimas 30 líneas.

ComponenteDetalles
FreeRADIUS 3Configurado con un backend PostgreSQL y clientes NAS dinámicos; validado con freeradius -CX
PostgreSQLBase de datos, esquema y todas las migraciones de SQL aplicadas: cada archivo de migración es idempotente
Python venvTodas las dependencias se instalan desde requirements.txt; los catálogos de traducción se compilan. Si el Python de la distribución no coincide con el paquete compilado, el instalador descarga automáticamente un intérprete independiente compatible en /opt/samm/runtime
nginxSe agregó proxy inverso aditivamente — los sitios existentes nunca se eliminan. Utiliza el puerto 80 cuando está disponible; de lo contrario, solicita un puerto alternativo
5 servicessamm-api, samm-radius, samm-worker, samm-notification, samm-telegram — todas habilitadas como unidades systemd
WireGuardPaquetes instalados; configurados más tarde desde Sistema → VPN
cloudflaredLa binaria se instala siempre; el token del túnel es opcional al instalar o se añade más tarde desde Sistema → Túnel de Cloudflare

Todas las credenciales (la contraseña de la base de datos y las claves de firma de sesión) son se genera automáticamente en la primera instalación.

Indicaciones interactivas

Cualquier solicitud de configuración ocurre inicialmente, antes de que comience la instalación.

  • Token de Cloudflare — pegue un token de conector Zero Trust para publicar SAMM en línea sin puertos abiertos, o presione Enter para omitir y configurarlo más tarde.
  • Puerto HTTP — si el puerto 80 ya está en uso, el instalador deja esos sitios sin tocar y solicita un puerto alternativo (predeterminado 8080).

Resumen de instalación

Cuando el instalador finaliza, imprime un resumen con la URL del administrador, la predeterminada inicio de sesión, el puerto HTTP elegido, las credenciales de la base de datos y las rutas del archivo de configuración:

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

Actualizando

Para actualizar, busque la nueva fuente y vuelva a ejecutar el instalador:

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

La ejecución de nuevo sincroniza la fuente, actualiza el entorno virtual, vuelve a aplicar todas las migraciones, recarga las configuraciones de FreeRADIUS y nginx, y reinicia todos los servicios. Sus archivos de configuración y el puerto HTTP elegido durante la instalación inicial están preservados.

Consejo SAMM también puede actualizarse solo; consulte Licencias y actualizaciones. actualizaciones .\n Habilite las actualizaciones automáticas o aplíquelas según demanda desde Sistema → Licencia .
Con espacio de aire y base de datos remota SAMM solo envía SAMM — FreeRADIUS, PostgreSQL, nginx y el resto se obtienen durante la instalación desde los repositorios apt de origen, por lo que las instalaciones sin conexión deben pre-instalar esos paquetes. Para un PostgreSQL remoto, configure el DSN en /etc/samm/samm.yaml después de la instalación.

Comenzar

Primeros pasos

Cinco tareas cortas llevan una nueva instalación al punto donde los suscriptores pueden conectarse y ser facturados.

1 · Primer inicio de sesión

  1. Abra http://<your-server>/admin/ (utilice el puerto HTTP del resumen de instalación si no es 80), o la URL de túnel de Cloudflare.
  2. Inicie sesión con administrador / administrador.
  3. Cambie inmediatamente la contraseña desde Sistema → Administradores, o desde el menú de perfil en la barra superior.

2 · Añadir tu primer router

  1. Vaya a MikroTik → NAS y haga clic en Agregar Router.
  2. Ingrese la IP del enrutador, un nombre corto y un secreto compartido RADIUS. Para MikroTik dispositivos, opcionalmente agregue credenciales API para la sincronización de dispositivos en vivo.
  3. En el MikroTik, agregue un servidor RADIUS que apunte al host SAMM (puerto 1812/1813) con la misma contraseña compartida, y habilite RADIUS para PPP / Hotspot.

No es necesario reiniciar FreeRADIUS — SAMM resuelve dinámicamente los clientes NAS desde la base de datos. Consulte la sección Routers (NAS) para el procedimiento completo, o permita que el asistente de configuración configure MikroTik para usted.

3 · Crear un plan

Un plan define la velocidad, los límites y el precio de venta. Ir a Usuarios → Planes → Nuevo plan . Referencia de campo completo: Planes y planes límites .

4 · Añadir un suscriptor

Vaya a Usuarios → Nuevo cliente , complete el inicio de sesión\n credenciales y elegir un plan. El suscriptor puede conectarse inmediatamente. Para prepago\n acceso al punto de acceso, genere tarjetas de vale en su lugar.

5 · Activar tu licencia

Una instalación nueva ejecuta sin registrar en un nivel mínimo. Abierto Sistema → Licencia y actívelo para eliminar los límites; consulte Licencias y niveles .

Ritmo diario Agregar routers → crear planes → añadir suscriptores o tarjetas → ver el Panel → registrar pagos bajo Contabilidad.

Comenzar

Migrar desde otro sistema

¿Ya usas otro sistema de facturación RADIUS? SAMM lee sus datos y recrea tus planes y suscriptores, así no tienes que volver a escribir nada. Los suscriptores conservan su contraseña de servicio y su fecha de vencimiento, por lo que siguen iniciando sesión exactamente igual que antes.

Ve a Herramientas → Exportar / Importar y elige tu sistema anterior en Migrar desde otro sistema. Como el resto de Herramientas, solo está disponible para superadministradores.

Qué subir

Sistema anteriorArchivoDe dónde procede
SAS4 / Radius Manager .sql o .sql.gz Una copia de seguridad de MySQL de la base de datos antigua
Super Speed Radius .sql o .sql.gz Una copia de seguridad de MySQL de la base de datos antigua
Pro Radius .xlsx o .csv Su lista de suscriptores exportada — ese sistema no ofrece copia de seguridad

Las copias de seguridad de bases de datos suelen ocupar varios gigabytes; no pasa nada, sube el archivo tal cual. Las copias comprimidas no necesitan descomprimirse antes.

Cómo funciona

  1. Sube el archivo. Todavía no se escribe nada.
  2. Revisa la vista previa. Enumera los planes y suscriptores que se crearían, avisa de todo lo que ha tenido que omitir o corregir, y comprueba el total frente a tu licencia antes de que confirmes.
  3. Elige qué ocurre con los nombres de usuario que ya existen en SAMM — omitirlos y conservar el registro de SAMM, o actualizar su nombre y contacto desde el sistema anterior.
  4. Importa. Cada fila se escribe de forma independiente, así que una sola fila defectuosa nunca revierte el resto.

Qué se traslada

  • Planes — nombre, velocidades, precio, duración y cuota de tráfico cuando el sistema anterior los registra.
  • Suscriptores — usuario, contraseña de servicio, nombre, datos de contacto, fecha de vencimiento, plan, IP estática y MAC.
  • Los suscriptores desactivados en el sistema anterior siguen desactivados.

La facturación, las facturas, las tarjetas prepago, los tickets, la contabilidad y los registros de administración no se importan deliberadamente: pertenecen al modelo de datos del sistema anterior y rara vez se corresponden con limpieza.

Valores que no coinciden con su columna

Las bases de datos reales son desordenadas: una dirección escrita en la casilla de correo, una nota en el campo de móvil, un número de teléfono escrito con teclado árabe. SAMM comprueba cada valor frente a lo que su columna debería contener. Todo lo que no encaja se deja fuera de ese campo y se guarda en las notas internas del suscriptor, etiquetado con su procedencia — así no se pierde nada y ningún campo queda contaminado. La vista previa te dice a cuántos valores ha afectado.

Pro Radius en detalle

Pro Radius exporta suscriptores pero no planes, así que SAMM deduce los planes a partir del nivel de servicio de cada suscriptor, tomando la velocidad de su nombre (un servicio llamado «4MBPS» se convierte en un plan de 4 Mbps). Tres cosas sencillamente no están en ese archivo y se fijan con valores por defecto razonables que deberías revisar después:

  • Duración — fijada en 1 mes. La fecha de vencimiento real de cada suscriptor se importa sin cambios, así que esto solo afecta a las renovaciones futuras.
  • Velocidad de subida — igualada a la de bajada.
  • Precio — fijado en 0.
Revisa los planes antes de facturar Tras una importación de Pro Radius, abre Planes y define el precio y el periodo reales de cada uno. Hasta que lo hagas, esos planes facturarán cero.

Conviene saber

  • Puedes ejecutarlo más de una vez con seguridad. Reimportar el mismo archivo omite a todos los que ya están presentes en lugar de duplicarlos.
  • Tu licencia sigue aplicándose. Si el archivo contiene más suscriptores de los que permite tu nivel, la vista previa te lo dice de antemano e indica cuántos cabrían — puedes mejorar tu licencia o importar un conjunto parcial.
  • Haz primero una copia de seguridad si vas a importar en una instalación que ya tiene datos reales.

Suscriptores & planes

Planes & límites

Un plan es la definición de servicio asignada a los suscriptores: establece la velocidad, los límites y el precio. Cree planes antes de agregar usuarios.

Una instalación nueva ya trae 9 planes listos para usar — ocho niveles de velocidad mensuales más un plan de estrangulamiento "Expired" — puede vender de inmediato o crear los suyos. La siembra solo corre en la primera instalación y nunca sobrescribe planes añadidos.

Crear un plan

  1. Vaya a Usuarios → Planes.
  2. Haz clic en Nuevo plan.
  3. Rellena el formulario y haz clic en Guardar plan.

Cada límite es un interruptor: habilite solo los que necesite. El mismo modal edita un plan existente (abra el menú ⋮ → Editar de la fila).

Campos del plan

CampoSignificado
NombreNombre de plan único, p.e. Home-50M
PrecioCobrado por período de facturación cuando se usa la facturación
Velocidad de descarga / subidapor ejemplo, 50M, 512K, 1G — impuesto como el límite de velocidad de MikroTik
Sesiones simultáneasCuántos dispositivos pueden estar conectados a la vez en este plan. 1 por defecto: se rechaza un segundo inicio de sesión mientras el primero siga conectado. Ponga 0 para ilimitado. Una sesión que dejó de reportar se ignora, de modo que una caída de conexión nunca bloquea al abonado
Límite: ExpiraciónLa suscripción finaliza un período fijo después de la activación (días/meses/horas/minutos)
Límite: CuotaUn límite total de datos (combinado, solo descarga o solo carga) para toda la suscripción
Límite: Tiempo activoUn límite en el tiempo de conexión acumulado: la suma de todas las duraciones de las sesiones
Límite: Uso diarioUn límite de datos que se reinicia todos los días a la hora de reinicio diario configurada
Ventana ilimitadaAgregación rápida de una ventana de velocidad: el editor completo se encuentra en la página de Ventanas de velocidad del plan
Pool de IPNombre de grupo enmarcado RADIUS opcional para asignación de dirección
Renovación automáticaIniciar un nuevo período al vencer en lugar de cambiar el plan o desconectar

Los cuatro límites

Cada límite es independiente y opcional. Cuando se establecen varios, SAMM los verifica en un orden fijo: expiración → cuota → tiempo de actividad → diario — y la primera condición agotada determina la acción.

LímiteRastreaAl agotarse
ExpiraciónTiempo de calendario desde la activaciónCambiar a otro plan o desconectar
CuotaTotal de bytes usadosCambiar a otro plan o desconectar
Tiempo activoSegundos de sesión acumuladosCambiar a otro plan o desconectar
DiarioBytes desde el último reinicio diarioEstrangular — a velocidades que usted define, o mediante un plan más lento — hasta el próximo reinicio diario

Para cada límite usted elige qué pasa al agotarse: elija un plan siguiente al que cambiar al suscriptor, o déjelo en — desconectar —. El límite diario estrangula en vez de desconectar: por defecto introduce las velocidades directamente (campos de descarga/subida) o elige un plan "siguiente" más lento — en ambos casos el suscriptor vuelve automáticamente a su plan original en el próximo reinicio diario.

Ventanas de velocidad

Una ventana de velocidad anula la velocidad base del plan durante horas determinadas, por Por ejemplo, una ventana de velocidad ilimitada después de la medianoche. Haga clic en una fila del plan para abrir su Editor Speed Windows , que agrega control del día de la semana y admite ventanas que cruzan la medianoche. Cuando varias ventanas coinciden, la el de mayor velocidad gana.

Nota Los suscriptores con cuota de tráfico excedida o agotada son excluidos de los ventanas de velocidad — SAMM nunca aumenta la velocidad mientras esté activa una cuota.

Dos nociones de uso

SAMM mantiene el uso en dos lugares y nunca los combina:

  • Contadores reutilizables — el estado por límite. Reiniciados a cero por un administrador y por el reinicio diario.
  • Contadores de facturación — totales de por vida no reseteables. Nunca se zeran, por lo que los informes y facturas se mantienen precisos.

Gestión de planes

La lista de planes muestra la velocidad, el número de suscriptores, los límites activos y las ventanas de velocidad de cada plan. Desde el menú ⋮ de una fila, puede editarla, abrir sus ventanas de velocidad, habilitar/deshabilitarla, acceder a sus suscriptores o eliminarla (solo cuando no tenga suscriptores). Al editar, las ofertas de renovación automática propagarán el cambio a todos los suscriptores actuales.

Duplicar copia un plan exactamente — velocidades, límites, ventanas de velocidad y precio — bajo un nuevo nombre, lo cual es mucho más rápido que reconstruir una tarifa a mano para cambiar un número. Si el nombre que das ya está en uso, se utiliza el siguiente número disponible.

Suscriptores & planes

Suscriptores

Un suscriptor (cliente / usuario) es una cuenta PPPoE o Hotspot que autentica contra SAMM. Cada suscriptor está asignado exactamente a un plan.

Crear un suscriptor

  1. Vaya a Usuarios y haga clic en Nuevo cliente.
  2. Completa el formulario y guarda — el suscriptor puede conectarse inmediatamente.
CampoSignificado
Nombre de usuario *El nombre de inicio de sesión PPPoE / Hotspot — debe ser único
Contraseña *La contraseña de inicio de sesión (almacenada para autenticación RADIUS PAP/CHAP)
Nombre / ApellidoEl nombre del suscriptor
Móvil / Correo / DirecciónDatos de contacto — usados para notificaciones y facturas
Plan *El plan de servicio a asignar
Anulación de expiraciónFecha de vencimiento manual opcional en lugar de la calculada del plan.
Renovación automáticaRenovar el período del plan automáticamente al vencer

Crea muchos suscriptores a la vez

Nuevos usuarios por lotes crea una serie numerada de cuentas en un solo paso — la forma habitual de entregar un bloque de inicios de sesión a un despliegue en una aldea, un hotel o un distribuidor. Elige cuántos, con qué número empezar y cuántos dígitos añadir (3 da 001, 002, …); todo lo demás —plan, vencimiento, renovación automática— se rellena una vez y se aplica a todos ellos. Comparten una contraseña.

La opción de facturación se aplica a cada usuario del lote de forma individual, por lo que una ejecución de cincuenta genera cincuenta facturas o ninguna, y el total se muestra antes de confirmar.

La lista de suscriptores

La página Usuarios enumera a cada suscriptor con un punto de estado de un vistazo, el asignado plan y cuánto queda de cada límite: uso diario con una barra de progreso, cuota restante, tiempo de actividad restante y días restantes. Filtrar por estado (Todos / Activo / Suspendido / Caducado / En línea) o buscar por nombre de usuario, nombre o móvil.

La insignia de cambio de plan Una sola insignia representa el plan del suscriptor. Dos insignias unidas por una flecha indican que el suscriptor ha alcanzado su límite diario y está temporalmente en un plan de limitación — volverán al original en el siguiente reinicio diario.

Gestionando un suscriptor

Haga clic derecho en una fila, o use el menú ⋮, para cada acción por suscriptor:

AcciónQué hace
Ver / EditarAbrir la página de detalles, o editar datos de contacto, contraseña y expiración
Activar / DesactivarSuspender la cuenta — los suscriptores en línea son desconectados
Renovar ExpiraciónAgregue la duración del plan además del tiempo restante; genera una factura si el plan tiene un precio
Restablecer Tiempo activo / Cuota / DiarioPoner a cero el contador de límite elegido
UsoAbrir gráficos de uso e historial de sesiones
EliminarEliminar el suscriptor y todo su historial — las sesiones activas se desconectan primero
Cómo surten efecto las acciones Los reinicios, cambios de planes y renovaciones se ponen en cola en un registro de auditoría y son aplicados por el samm-radius tick: normalmente en unos pocos segundos. Si el suscriptor es\n en línea, SAMM también envía una actualización en vivo. Ver CoA y cambios en vivo .

La página de detalle también puede revelar la contraseña de acceso del suscriptor tras un botón de ojo (con copia en un clic) — útil cuando un cliente pide sus credenciales.

La vista de uso

La acción de Uso abre una página detallada de tráfico para un suscriptor, con un selector de período de 7d / 14d / 30d / 90d. Informa de tres cifras principales — el tráfico de hoy (con el desglose de carga/descarga y los minutos en línea), el tráfico de este mes, y el tiempo de conexión acumulado del mes. Debajo de ellas, un gráfico diario de tráfico de carga contra descarga, y una tabla completa de historial de sesiones: la hora de inicio y finalización, la duración, los bytes descargados y subidos, el NAS, y la causa de terminación de cada sesión.

Operaciones masivas

Para cambiar el propietario, la fecha de vencimiento, el estado o la renovación automática de muchos suscriptores a la vez —o para eliminar muchos— utilice las herramientas Cambios Masivos y Eliminación Masiva. Para crear suscriptores en masa desde una hoja de cálculo, utilice Exportar/Importar.

Restringir un suscriptor a enrutadores específicos

Un suscriptor (o un grupo completo de tarjetas) puede estar asociado a routers NAS específicos desde su formulario de edición. Sin routers seleccionados, la cuenta funciona en cualquier NAS; con uno o más seleccionados, la autenticación se acepta solo desde esos routers — se aplica un fallo cerrado dentro de RADIUS mismo. Cambiar el conjunto desconecta cualquier sesión activa en un router ahora prohibido de inmediato. Combinado con el alcance de admin por NAS, este es el modo en que los configuraciones multi-sucursal y de franquicia mantienen a los suscriptores de cada sucursal en los routers de esa sucursal.

Suscriptores & planes

Tarjetas Hotspot

Para el acceso prepago a Hotspot, genere un lote de tarjetas de cupón en lugar de suscriptores individuales. Cada tarjeta es una pareja de nombre de usuario/contraseña con su propia velocidad y límites, generada por miles y impresa para su distribución.

Crear un grupo de tarjetas

  1. Vaya a Usuarios → Tarjetas de Punto de Acceso y haga clic en Nuevo grupo.
  2. Rellene el formulario de abajo y haga clic en Crear grupo — SAMM genera automáticamente las credenciales de cada tarjeta.
SecciónCampos
IdentidadNombre de grupo único, descripción, prefijo de nombre de usuario opcional, cuántas tarjetas generar (hasta 10,000)
CredencialesFormato de nombre de usuario y contraseña (números/letras/alfanuméricos) y longitud
Límite de velocidadVelocidad de descarga y carga — 256k, 6M, 1G; 0 = ilimitado
Límite de transferenciaLímite ilimitado, combinado o límites de descarga/carga separados (MB/GB/TB)
Límites de tiempoLímite de tiempo de actividad, vencimiento después del primer inicio de sesión y fecha de vencimiento del grupo "válido hasta"

El vencimiento se cuenta desde la primera conexión de cada tarjeta, y válido hasta es una fecha fija — las tarjetas no pueden utilizarse después de ella, ya estén o no activadas.

Gestionar un grupo

Abra el menú ⋮ de un grupo para activar o desactivar todas las tarjetas a la vez, extender la fecha "válido hasta", añadir más tarjetas al lote o editar sus datos. Las tarjetas individuales pueden restablecerse (cuota, tiempo o vencimiento) o desactivarse desde su página de detalle.

Un grupo duplicado copia todos los ajustes exactamente y genera el mismo número de tarjetas con códigos frescos. Un código de tarjeta solo puede pertenecer a una tarjeta, por lo que una copia es una nueva tirada, no una clonación de la antigua. Es la forma rápida de volver a ordenar un lote de cupones agotados.

Estados de tarjetas

EstadoSignificado
No usadoGenerado pero nunca conectado
ActivoEn uso, dentro de sus límites
AgotadoSe ha alcanzado un límite (cuota, tiempo activo o expiración)
DesactivadoDesactivado manualmente

Impresión y seguimiento

Abra un grupo para ver sus tarjetas, imprímalas en un PDF para distribuirlas\n (el diseño de impresión utiliza el logotipo de su ISP en Configuración) y revise el uso por tarjeta. Tarjeta\n El tráfico también aparece en Informes bajo el\n Pestaña Tarjetas, y cada grupo tiene su propia vista contable.

Suscriptores & planes

Autoservicio: los huéspedes inician sesión ellos mismos

El opuesto de un cupón: nadie imprime nada y nadie se coloca en un escritorio. Un visitante se conecta a su punto de acceso, toca Registrarse en la página de inicio de sesión, escribe su nombre y número de teléfono móvil, y SAMM envía un código de acceso por SMS, WhatsApp o correo electrónico. Lo introducen en la misma página y están en línea — y usted mantiene un registro exportable con nombre de todos los que utilizaron la red invitada.

Lugares típicos: restaurantes y cafeterías, hoteles y pensiones, exposiciones y ferias comerciales, conferencias, centros comerciales, clínicas y salas de espera, gimnasios, espacios de coworking, salones de belleza, salas VIP de aeropuertos, estadios, campus, bibliotecas, salas de exposición de automóviles, lugares para celebrar bodas, complejos turísticos y campings.

Encendiéndolo

  1. Configurar primero un canal de entrega. Centro de Notificaciones → habilitar SMS o WhatsApp y enviar un mensaje de prueba a usted mismo. Nada más funcionará hasta que se configure un canal.
  2. Servicio Autenticación → Ajustes: marcar Permitir que los invitados se registren solos, elegir los canales a ofrecer y configurar la duración de la validez del código de acceso y el tiempo de espera que un invitado debe cumplir antes de solicitar otro.
  3. Deje los códigos de acceso predefinidos en el grupo de Tarjeta de Servicio Auténtico a menos que tenga una razón para cambiarlo; ese grupo decide la velocidad y cuántos dispositivos pueden compartir un código de acceso.
  4. Habilite la pestaña Registro para cada diseño de inicio de sesión que utilice — consulte a continuación. Ésta es el paso que la gente suele olvidar.

La página de inicio de sesión: el paso que la gente omite

La pestaña "Registro" está diseñada por sesión de inicio de sesión y está desactivada por defecto. Abra MikroTik Manager → el router → Página de Inicio de Sesión, edite el diseño que utiliza y marque Permitir Servicio Auténtico. Puede retextar cada oración que ve un invitado en la misma pantalla — la etiqueta de la pestaña de Registro, la línea de introducción, las dos etiquetas de campo, el botón y las cinco respuestas ("su código de acceso está en camino", "ya tiene uno", "por favor, inténtelo de nuevo más tarde", "no pudimos enviarlo", "el registro no está disponible").

Luego presione Push y presiónelo nuevamente después de cada actualización de SAMM . Las páginas de inicio de sesión del punto de acceso se encuentran en el almacenamiento flash del enrutador , no en SAMM . La actualización de SAMM no los vuelve a enviar, por lo que el enrutador sigue prestando servicio a su antiguo página, sin pestaña Registrar, hasta que vuelva a presionar. SAMM te avisa al iniciar sesión Pestaña Página cuando un enrutador ofrece páginas anteriores a la versión instalada y la La página de autoservicio nombra todos los enrutadores que no pueden mostrar la pestaña y ofrece repararlos todos a la vez.

Las reglas que detienen el abuso

  • Un código de acceso vivo por número. Pedir nuevamente mientras un código aún es válido le indica al invitado que verifique sus mensajes en lugar de enviar otro.
  • Luego un período de espera que usted establece, antes de que ese número pueda solicitar uno nuevo.
  • La validez comienza desde el momento en que se envía el código de acceso, no desde el primer inicio de sesión — así que un código que permaneció sin usar por una semana no sigue funcionando.
  • Un límite diario establecido por su licencia (ver abajo). Una vez consumido, se solicita a los invitados que intenten más tarde y los códigos de acceso ya emitidos sigan funcionando.
  • Cada intento se registra contra la dirección MAC del dispositivo como el router lo informó — lo cual un invitado no puede falsificar desde su navegador.

la licencia

Self Service se licencia por separado de su plan, según cuántos códigos de acceso puede emitir la instalación al día, y se renueva en su propia fecha: puede estar en Free con un complemento de pago, o en Unlimited sin él. Cada instalación recibe 10 al día sin costo; Light lo sube a 50, Heavy a 200 y Max elimina el límite. Consulte los precios.

La página de Autocobro muestra usado/permitido para el día actual y indica claramente cuando se agota el límite. Compra o renueva desde tu panel en securytik.com, o solicítalo desde Sistema → Licencia y un administrador de SecuryTik lo aprueba. Un código de acceso que no pudo entregarse no consume tu límite.

Red & routers

Routers (NAS)

Un NAS (Servidor de Acceso a Red) es un router que autentica a los suscriptores a través de SAMM sobre RADIUS. Todo router que transporta tráfico de suscriptores requiere un registro NAS.

Añadir un router

  1. Vaya a MikroTik → NAS y haga clic en Agregar Router.
  2. Rellena los campos de abajo y guarda.
CampoSignificado
IP NAS / nombre de hostLa dirección del enrutador, tal como la ve el host SAMM
Nombre cortoUna etiqueta amigable mostrada en toda la interfaz
Tipomikrotik desbloquea la sincronización en vivo de dispositivos y el empuje de configuración; otros tipos son solo RADIUS
SecretoEl secreto compartido de RADIUS: debe coincidir exactamente con el enrutador o la autenticación falla
Puerto CoAEl puerto UDP SAMM envía paquetes de cambio de autorización a ( MikroTik valor predeterminado 3799)
Puerto API / usuario / contraseñaMikroTik Credenciales de API SAMM se utilizan para leer la información del dispositivo y enviar la configuración
No se necesita reinicio SAMM resuelve clientes NAS dinámicamente desde la base de datos: agregando o eliminando un El enrutador nunca requiere un reinicio FreeRADIUS .

La lista NAS

Cada router muestra en una tabla — ID, IP NAS / nombre de host, nombre corto, tipo, un secreto mascarado (haga clic en la celda para revelarlo), los puertos CoA y API, y un resultado de ping en vivo con tiempo de ida y vuelta. La casilla de búsqueda filtra por IP, nombre corto o descripción.

Cada fila con el menú ⋮ muestra las acciones específicas para cada enrutador: Ver Dispositivo y Actualizar Información (solo MikroTik), Editar, Empujar Configuración RADIUS (solo MikroTik) y Eliminar. Al abrir una fila de tipo mikrotik, se accede directamente a la página del dispositivo.

Descubrir vecinos

Haga clic en Discover neighbors para escanear la red en busca de dispositivos MikroTik (mediante el protocolo de descubrimiento de vecinos de MikroTik) y añadirlos como registros NAS sin escribir cada dirección. Un router descubierto puede añadirse por IP o auto-añadirse — un arranque de un clic que crea un usuario de gestión SAMM en el router, envía una IP de gestión y elimina el puente de fábrica.

La adición automática es para routers nuevos El arranque de un clic está pensado para equipos recién salidos de fábrica (o reseteados) — en un router que ya tiene configuración puede sobrescribirla o romperla.

Enviar configuración RADIUS al router

Para los registros de NAS de MikroTik, el menú ⋮ de la fila ofrece Enviar configuración RADIUS — SAMM configura el enrutador para usted a través de la API en lugar de tener que escribirlo manualmente. Confirme la IP del servidor SAMM (debe ser accesible desde el enrutador) y los puertos de autenticación, contabilidad y CoA; SAMM creará o reemplazará una entrada RADIUS en el enrutador:

AjusteValor
Comentario SAMM : la etiqueta que SAMM utiliza para buscar y actualizar esta entrada más adelante
Serviciohotspot, ppp
Dirección / secretoEl host SAMM , con el secreto compartido de este registro NAS
Tiempo de espera3000 ms
CoA entranteAceptado, en el puerto CoA que confirmaste

El diálogo muestra un registro de resultados cuando finaliza el envío.

Configurar el lado MikroTik

Si configuras el router manualmente:

  • Agregue un servidor RADIUS que apunte al host SAMM, con la misma clave compartida, habilitado para PPP / Hotspot.
  • Utilice el puerto de autenticación 1812, el puerto de contabilidad 1813.
  • Aceptar CoA entrante en el puerto 3799.
  • Configure el intervalo Interim-Update de accounting en unos 5 minutos (el predeterminado del asistente de SAMM) — con esa frecuencia SAMM acumula el uso y evalúa límites; intervalos más cortos reducen la latencia de los límites a costa de más tráfico de accounting.

Dispositivos solo de monitoreo

Un router añadido como monitor aparece en el inventario de MikroTik y se pingea y sincroniza, pero no tiene un rol RADIUS — no puede autenticar a los suscriptores. Utilícelo para vigilar routers que no son NAS de suscriptores.

Red & routers

Gestor MikroTik

Cuando un router tiene credenciales de API, SAMM lo gestiona directamente a través de la API de MikroTik — sin WinBox, sin SSH. La sección MikroTik es un inventario en vivo de cada router, y cada dispositivo abre una página de detalles con quince pestañas que configuran casi todas las partes de RouterOS desde su navegador.

Monitor MikroTik

MikroTik → El monitor muestra una tarjeta por enrutador, dispuesta como una grilla. Informes de cada tarjeta: actualizados por samm-worker y encuestados en vivo cada 30 segundos: el punto de accesibilidad, la versión RouterOS , la carga de CPU y el recuento de núcleos, uso de memoria, recuento de sesiones activas, tiempo de actividad y hora de la última muestra.

Una tarjeta se etiqueta como NAS (un router que también autentica a los suscriptores a través de RADIUS) o monitor (un dispositivo añadido solo para monitoreo). Agregar MikroTik registra un nuevo dispositivo; Actualizar ahora obliga a una consulta inmediata. Las tarjetas solo para monitoreo tienen un menú al hacer clic derecho — Abrir, Editar, Actualizar Info, Eliminar.

La página del dispositivo — quince pestañas

Abra cualquier dispositivo para ver su página de administración completa. Las pestañas se dividen en cuatro grupos.

Monitoreo

PestañaQué muestra
Vista generalInformación del dispositivo, información del sistema y gráficos del historial de rendimiento (CPU, memoria, sesiones a lo largo del tiempo)
InterfacesCada interfaz con su estado activo, además del historial de tráfico por interfaz
Sitios y aplicacionesTres subvistas: Monitor (sitios y apps vistos en el router con histórico de tráfico), QoS (prioridad por aplicación, abajo) y App Filter (bloqueo de contenido por DNS desde el catálogo)

Gestor

La pestaña Gestor → General es la página de configuración del dispositivo: - Identidad (nombre del router), - Tiempo (reloj, zona horaria y NTP), y - Herramientas (reinicio, ping y otras acciones de un solo clic para el router).

Configuración de red

PestañaQué configuras
PuenteCree puentes LAN y elija qué interfaces físicas (puertos) pertenecen a cada uno
VLANAgregar y administrar interfaces VLAN
IPTres sub-tabas — Estática (direcciones estáticas y dinámicas), Cliente DHCP (obtener una dirección desde el proveedor superior), Servidor DHCP (asignar direcciones, con una tabla de arrendamiento activa)
DNSSitios y aplicaciones
WiFi / CAPsMANInterfaces Wi-Fi con sus configuraciones y perfiles de seguridad; y el controlador CAPsMAN: configuraciones, reglas de aprovisionamiento y CAP remotos

Servicios & mantenimiento

PestañaQué configuras
PPPoEServidores PPPoE, perfiles PPP, grupos de IP e intervalo de actualización intermedia de cuentas RADIUS
HotspotServidores de hotspot, perfiles de hotspot y perfiles de usuario, grupos de DHCP/IP y la página de inicio de sesión del portal cautivo
InternetEnlaces ascendentes de WAN: rutas predeterminadas y WAN administradas por SAMM , y las WAN existentes que no sean de SAMM se muestran como de solo lectura
CortafuegosReglas de filtrado, análisis de seguridad del router, conectividad y destinos, módulos de seguridad y copias del firewall — Auto-Security toma una instantánea antes de aplicar y puede armar una reversión temporizada: un conjunto de reglas que le deje fuera se restaura automáticamente
ActualizarRouterOS actualizaciones: elija un canal de actualización, verifique y aplique, y revise los paquetes instalados
AsistenteLa configuración guiada por primera vez, a continuación

El intervalo de actualización provisional de PPPoE

En la pestaña PPPoE, Actualización intermedia establece con qué frecuencia el router envía paquetes de actualización de contabilidad RADIUS a SAMM. SAMM utiliza esos paquetes para acumular contadores de bytes y tiempo de actividad y para evaluar los límites de cuota, diarios y de tiempo de actividad —sin ellos, la aplicación de límites y los contadores de sesión en vivo se detienen. El valor recomendado es 5m.

La página de inicio de sesión Hotspot

Desde la pestaña Hotspot, gestiona la página de inicio de sesión del portal cautivo: conserva las páginas predeterminadas de MikroTik, aplica uno de los plantillas integradas, o aplica uno de tus diseños guardados. SAMM incluye un editor de diseño visual y una galería de plantillas — personaliza una página de inicio de sesión y envíala directamente al hotspot del router.

QoS según la aplicación

La vista QoS (una subpestaña de Sitios web y aplicaciones) convierte las aplicaciones y los sitios SAMM ya ve en el enrutador un plan de prioridad de descarga. Arrastre cada aplicación desde el grupo a uno de los ocho espacios de prioridad : el espacio 1 se sirve primero en competencia, el espacio 8 último; Las aplicaciones que quedan en el grupo no tienen forma. Opcionalmente, limite la velocidad de descarga de cualquier aplicación (por ejemplo 10M ) y establece un límite de descarga total como prioridad para competir. Distribución automática por categoría organiza todo con un solo clic: primero los mensajes, luego los servicios de inteligencia artificial y luego tiendas, con todo lo demás a continuación.

Cuando envías, SAMM compila las franjas en un queue tree de MikroTik (etiquetado SAMM:qos, parent=global) con reglas de firewall de marcado de paquetes que coinciden, la prioridad más alta primero. Se construye sobre el mismo catálogo del Websites & App filter que impulsa la monitorización, así que solo aparecen las aplicaciones realmente detectadas en el router — y al eliminar el QoS de SAMM se retiran del router todos los objetos SAMM:qos, dejando tus contadores intactos.

El asistente de configuración

La pestaña Asistente lo recopila todo en diez pasos cortos y envía la configuración completa al router en un lote al final. No se envía nada hasta que confirme en el paso final de revisión.

  1. Bienvenido y detectar : SAMM sondea el enrutador y muestra lo que está ya configurado, por lo que puede omitir esos elementos en el momento del envío.
  2. Interfaz de puente — nombre del puente LAN.
  3. Puertos de puente — seleccione qué interfaces físicas se unen al puente.
  4. DNS — configurar resolvers de nivel superior (presets de un solo clic para Google, Cloudflare, Quad9 y más), tamaño de caché y, opcionalmente, un filtro de contenido DNS.
  5. NTP — configure la fuente de hora del router (cliente NTP y, opcionalmente, servir hora a la LAN).
  6. Internet — agregar una o más conexiones WAN (estática / DHCP / PPPoE).
  7. RADIUS a SAMM — apunte su router al host SAMM para autenticación, contabilidad y asignación de direcciones.
  8. Servicios — elija si el asistente crea un servidor PPPoE, un servidor Hotspot o un servicio IPoE/DHCP, y opcionalmente active la dupla pila IPv6 (opcional, desactivada por defecto): seleccione la longitud de prefijo delegado (DHCPv6-PD) y los bloques IPv6 y el asistente configura las piscinas y las adjunta al perfil PPP.
  9. Detalles PPPoE / Hotspot y Firewall — pools, perfiles, tiempos de concesión, reglas de firewall y NAT, más un pool de expirados y bloqueo de internet opcional que redirige a los suscriptores vencidos a la página "suscripción expirada" de SAMM en lugar de a una conexión muerta.
  10. Revisar y actualizar push : consulta la lista exacta de comandos que se ejecutarán enviados, luego envíelos todos al enrutador.
La velocidad por usuario proviene de RADIUS El asistente crea un único perfil PPPoE/punto de acceso: no realiza envíos por nivel perfiles. La velocidad de cada suscriptor se entrega mediante SAMM en la respuesta RADIUS al iniciar sesión, por lo que los cambios de plan nunca necesitan una edición del enrutador.

Red & routers

Mapa de red, estado y Data Log

Mapa de red

Devices → Network Map se dibuja a partir de lo que cada router informa sobre sus vecinos; no hay diagrama que mantener. Cambie entre capas de puertos, direcciones IP, subredes y CPU, o muestre la ruta de cada dispositivo hacia internet. Arrastre los nodos y guarde la disposición; Discover now vuelve a leer los vecinos.

Estado de la red

Devices → Network Health lista todos los routers, el peor primero: sano, con avisos, responde pero con fallos, o inaccesible. Cada hallazgo dice qué falla con palabras claras: CoA desactivado, secreto RADIUS no coincide, reloj desincronizado, Telnet o FTP abiertos. Las comprobaciones solo leen el router. Desde la vista Diagnose de un router, los hallazgos habituales tienen una corrección de un clic que muestra primero una vista previa y puede revertirse. Los hallazgos abiertos generan alertas en el Alert Center.

Ambas páginas dependen de un interruptor en Ajustes. Si está apagado, SAMM no contacta con los routers para ellas.

Data Log

Abra un usuario y elija Data Log para ver adónde va su tráfico: principales destinos por host y aplicación —YouTube, Facebook, WhatsApp— con subida, bajada y conexiones, o una línea de tiempo. SAMM lee la exportación de flujos del propio router (IPFIX), o su tabla de conexiones como alternativa, y nombra las aplicaciones con el mismo catálogo que usa el App Filter. SAMM nunca está en la ruta del tráfico.

Desactivado hasta que lo active Un superadministrador activa el Data Log en Ajustes y elige cuánto tiempo se conserva. Las cifras son orientativas; la facturación siempre usa la contabilidad de RADIUS.

Red & routers

CoA & cambios en vivo

CoA (Cambio de Autorización) es cómo SAMM modifica la sesión de un suscriptor mientras está en línea, para aumentar o reducir su velocidad, o desconectarlo, sin esperar a que se vuelva a conectar.

Cómo llega un cambio a un suscriptor activo

SAMM nunca realiza un cambio de enrutador directamente con un clic en un botón. Cada acción del administrador sigue un camino seguro:

Acción admin → Registro de auditoría → Tick samm-radius → Bandeja de salida CoA → Router
  1. La acción se registra en un registro de auditoría como un comando en cola.
  2. El servicio samm-radius vacía la cola en su siguiente tick, aplica el cambio y — si el suscriptor está en línea — encola un CoA.
  3. Se drena la bandeja de salida CoA y el paquete se envía al enrutador.

Los eventos controlados por el tiempo (vencimiento, límites de ventana de velocidad, reinicios diarios) alimentan la misma bandeja de salida.\n El límite superior de latencia es un samm-radius tick (30 s de forma predeterminada; inferior\n en Configuración para una aplicación más estricta).

CoA híbrido

SAMM envía primero una CoA-Update para cambiar la sesión en curso. Si el router la rechaza después de los reintentos configurados, SAMM retrocede automáticamente a una Solicitud de Desconexión — el suscriptor se reconecta y aplica los nuevos ajustes. Esta estrategia híbrida funciona en todas las versiones de firmware de MikroTik.

La página de la bandeja de salida CoA

Usuarios → Bandeja de salida de CoA es la vista en vivo de esa cola. samm-radius es el único remitente: el panel de administración nunca envía un CoA directamente, y drena la cola en cada tic. La página se actualiza automáticamente cada 30 segundos.

Seis contadores encabezan la página: Pendiente, Enviado, NACK (reintentando), Listo, Error y Total . Filtrar la tabla por estado, por acción ( update o disconnect ), o busque por nombre de usuario, IP de NAS o razón.

EstadoSignificado
pendienteEn cola, esperando el próximo samm-radius tick
enviadoDespachado (transitorio — el envío y su resultado se registran en el mismo tick, las filas rara vez permanecen en este estado)
nackEl enrutador rechazó la actualización CoA: SAMM está reintentando y luego vuelve a desconectarse
hechoAplicado exitosamente
fallidoSe rindió después del límite de reintentos: coloque el cursor sobre la insignia para ver el último error

Cada fila muestra al usuario, el router, la acción, el recuento de intentos, la razón y las horas de creación y envío. Las acciones por fila permiten Reintentar un paquete fallido o rechazado, Cancelar uno aún en vuelo, o abrir Atributos para inspeccionar los atributos RADIUS exactos que lleva el paquete. El distintivo de la barra lateral cuenta las filas pendientes; el Panel de control rastrea los fallos de 24 horas. Un sistema sano mantiene esta cola casi vacía.

Segador de sesión obsoleta

Si un enrutador falla o pierde conectividad, sus paquetes de parada de contabilidad se pueden perder. y en muchos sistemas esos suscriptores permanecen "en línea" para siempre. SAMM barridos para sesiones que han dejado de enviar actualizaciones provisionales y las cierra automáticamente (terminar causa Reaped-Stale ), por lo que la lista de sesiones en vivo, el recuento de uso simultáneo y Las cifras de uso siguen siendo veraces. El tiempo de espera es el stale_session_timeout_seconds configuración (predeterminada 900 s = 15 minutos; establezca 0 para desactivar) y surte efecto en vivo, no reiniciar es necesario.

Operaciones diarias

Panel & sesiones en vivo

Las dos pantallas bajo Vista general son donde usted comienza cada turno — el Panel para la salud de todo el sistema, Sesiones en Vivo para exactamente quién está conectado en este momento.

Panel

Vista general → Panel es la pantalla principal del operador. Un selector de período en la parte superior — Hoy, 7d, 14d, 30d, 90d — establece el intervalo para el gráfico de tendencias y las cifras limitadas por fecha.

Las seis fichas KPI

Cada mosaico es un contador en vivo y un acceso directo; haga clic en él para ir directamente a la lista filtrada detrás del número.

FichaMuestraAbre
En línea ahoraSuscriptores con una sesión RADIUS activa ahoraUsuarios filtrados a En línea
Suscriptores activosCuentas activas, con el recuento total de suscriptores debajoUsuarios filtrados a Activos
ExpiradoSuscriptores cuya suscripción venció sin un próximo plan establecidoUsuarios filtrados a Caducados
Tickets abiertosTickets de soporte sin resolver (excluye hechos y cerrados)Usuarios → Tickets de soporte
RoutersTotal de registros NAS, más los actualmente inaccesiblesEl monitor MikroTik
Facturas impagadasFacturas que aún necesitan seguimiento de pagoFacturas filtradas a Pendientes de pago

Gráfico de usuarios & sesiones en vivo

Un gráfico de línea con instantáneas diarias muestra tres series a lo largo del período seleccionado: — usuarios activos, — sesiones en línea, y — usuarios vencidos de modo que el crecimiento y la rotación son visibles a simple vista.

Salud del pipeline

Este panel es el corazón del motor de aplicación de la ley. En un sistema sano el las colas se sitúan en cero o cerca de él: un número que se mantiene alto indica un servicio atascado o un El enrutador rechaza los cambios.

MétricaQué significa
samm-radius colaCoA pendientes en espera del siguiente tic: deberían borrarse en cuestión de segundos
CoA fallidos (24h)Cero en un sistema sano; un recuento distinto de cero significa que un enrutador está rechazando CoA
Registro de auditoría pendienteAcciones de administrador en cola no aplicadas aún por samm-radius
Sesiones limitadasLos suscriptores actualmente tienen una velocidad reducida por un límite: esperado, no un error
Instantánea de sesionesEl recuento de sesiones en vivo —debe rastrear En línea ahora
Planes activosEl tamaño de tu catálogo de planes.
La ruta de aplicación Las acciones del administrador están en cola para samm.audit_log ; el samm-radius tick los drena y emite CoA en samm.coa_outbox . El camino completo es\n en CoA & cambios en vivo .

Tablas de actividad reciente

Cuatro tablas debajo del gráfico ofrecen una visión general de lo que acaba de ocurrir, cada una con un Ver todo vinculado a su página completa:

  • Caja de salida de CoA reciente — acción, usuario, estado (hecho / pendiente / nack / fallido), número de intentos, razón y fecha.
  • Acciones recientes del administrador — acción, objetivo, el actor que la desencadenó, si ya se aplica y la hora.
  • Suscriptores recientes — las cuentas más nuevas con su estado y la última hora de autenticación.
  • Routers — cada NAS con un punto de salud alcanzable/inalcanzable/sin datos.

Sesiones en vivo

Vista general → Sesiones en vivo enumera a cada suscriptor que los routers informan actualmente como en línea a través de la contabilidad RADIUS. La página se actualiza automáticamente cada 30 segundos; un botón Actualizar manualmente se encuentra en la cabecera.

Filtrando la lista

  • Búsqueda — coincide con el nombre de usuario, la IP enmarcada o la IP de NAS, enviando a medida que escribe.
  • Enrutador — restringir la lista a las sesiones en un solo NAS.
  • Solo limitado — mostrar solo a los suscriptores un límite que está a una velocidad reducida.
  • Por página — 20, 50, 100 o 200 filas.

Qué muestra cada fila

ColumnaSignificado
UsuarioNombre de usuario: enlaces a la página de detalles del suscriptor
IP asignadaLa dirección que el router asignó a esta sesión
RouterEl nombre corto del NAS y su dirección IP
PlanEl plan actual del suscriptor.
Velocidad efectivaLa velocidad impuesta en el router en este momento — la velocidad del plan ajustada por cualquier ventana de velocidad activa. Un limitado significa que hay un límite que está reteniendo al suscriptor a una velocidad reducida.
Descarga / SubidaContadores de bytes en vivo para la sesión
En línea¿Cuánto tiempo ha estado activa la sesión?
IniciadoCuándo comenzó la sesión

Desconectando una sesión

El botón Desconectar en una fila inicia una CoA-Desconexión para esa sesión exacta (razón admin_manual) tras un mensaje de confirmación. El suscriptor se desconecta inmediatamente; si su cuenta sigue activa, puede volver a conectarse. Realice un seguimiento del paquete en la Caja de salida CoA.

Operaciones diarias

Informes & análisis

Vista general → Informes es la vista de análisis — tendencias de suscriptores, tráfico a lo largo del tiempo y los usuarios y tarjetas más activos en su red.

Eligiendo el rango

Cada figura en la página está vinculada a un rango de fechas. Seleccione un valor predeterminado — 7d, 14d, 30d, 90d — o escriba fechas explícitas de inicio y fin y haga clic en Aplicar. Un sobre de carga cubre la página mientras se ejecuta una consulta de largo alcance como 90d.

Tendencias de suscriptores & sesiones

Un gráfico de líneas con tres series sobre el rango elegido: Suscriptores activos, Sesiones en línea y Suscriptores vencidos. Utilícelo para detectar el crecimiento, la rotación y las horas pico de su red.

Tráfico diario

Un gráfico de barras apiladas de bytes de carga y descarga por día. Al pasar el ratón sobre un día, se muestran las cifras de carga y descarga, además de un total combinado en el pie de la herramienta de sugerencia.

Listas Top 10

Cuatro tablas muestran sus cuentas con mayor tráfico, cada una clasificada por volumen en GB:

ListaClasificaciones
Top 10 descarga hoyMayor descarga desde el último reinicio diario
Top 10 subida hoyMayor subida desde el último reinicio diario
Top 10 descarga mensualMayor descarga este mes calendario
Top 10 subida mensualMayor subida este mes calendario

Tráfico por entidad

Una tabla paginada y con capacidad de búsqueda de tráfico por cuenta. Dos pestañas cambian lo que enumera:

  • Usuarios — cada suscriptor con su nombre, plan, carga/descarga de hoy en MB, y carga/descarga de este mes en GB.
  • Tarjetas — cada tarjeta de punto de acceso con su grupo, estado y la misma distribución de tráfico de hoy/mes.

El campo de búsqueda filtra la tabla a medida que escribe; el selector por página permite entre 20 y 200 filas. Cada fila enlaza a la página de detalles del suscriptor o tarjeta correspondiente.

Exportando Informes es una vista analítica en pantalla. Para que las filas sin procesar funcionen correctamente en una hoja de cálculo,\n use Herramientas → Exportar/Importar para descargar\n usuarios, planes o NAS como CSV/XLSX.

Operaciones diarias

Contabilidad & facturación

SAMM tiene un completo sistema de contabilidad por partida doble integrado: facturas, gastos, recibos, pagos, revendedores, activos fijos y finanzas completas declaraciones. No hay ningún producto de facturación separado para integrar ni ningún contador. necesario para mantener los libros en orden.

Nunca tocas débitos y créditos Cada acción — registrar un pago, añadir un gasto, vender un grupo de tarjetas — genera automáticamente una entrada contable equilibrada en el libro mayor. Usted trabaja con términos simples (facturas, gastos, recibos); SAMM mantiene los libros de doble entrada en segundo plano y demuestra su equilibrio en la Balanza de Pruebas.

La página Contabilidad está organizada en once pestañas.

Vista general

La instantánea financiera. Cuatro titulares se encuentran en la parte superior:

CifraSignificado
Efectivo disponibleSaldo total en todas las cuentas de efectivo & bancarias
Dinero que te debenCuentas por cobrar — facturas de clientes y distribuidores impagadas
Dinero que debesCuentas por pagar — gastos impagados
Beneficio este mesIngresos menos gastos para el mes actual

A continuación: una tabla de cada efectivo y dinero. cuenta bancaria con su saldo, y una gráfico de ingresos frente a gastos de los últimos 1, 2, 3, 6 o 12 meses.

Facturas

Una factura es un recibo que emite. Haga clic en Nueva factura y complete:

CampoSignificado
ClienteBúsqueda de escritura anticipada de la cuenta que se factura
Categoría de ingresosA qué cuenta de ingresos se registra la venta
Fecha de emisión / vencimientoFecha de emisión en blanco = hoy; fecha de vencimiento en blanco = la fecha de emisión
Tipo impositivo % / grupo impositivoPor defecto, se aplica la tarifa en Ajustes → Facturación; asignar un grupo impositivo para aplicar varias tarifas (IVA/IGV y más) al mismo tiempo, cada una registrándose en su propia cuenta impositiva
PartidasUna o más filas de descripción/cantidad/precio unitario: subtotal, impuestos y cálculo total en vivo

Cuánto cobrar: completo, segmentado o nada

En cualquier momento que SAMM esté a punto de facturar a un suscriptor — activando, renovando, cambiando de plan, extendiendo una fecha de vencimiento, o haciendo cualquiera de esas acciones en masa — aparece el mismo selector de facturación, y muestra el importe antes de confirmar:

Elecciónlo que cobra
factura completaSolo períodos completos del plan: un período parcial se redondea a uno completo.
Factura segmentadaEl tiempo exacto, prorrateando el último periodo parcial. El total se redondea al monto entero más cercano, y la diferencia se registra como un ajuste de redondeo para que los libros aún estén equilibrados.
Sin facturaCambie el servicio y no cobre nada: una extensión de buena voluntad, una migración, una corrección.

Establezca la duración con el multiplicador de períodos para todo el período del plan, o ingrese una fecha exacta y deje que SAMM calcule cuánto cuesta. De cualquier manera, el panel muestra los elementos de la línea, el impuesto y el total a medida que los modifica, y Pago registra un pago en efectivo por el monto total de inmediato.

"Sin factura" es un derecho, no una casilla de verificación No cobrar nada es una decisión financiera, por lo que está restringido por un permiso por rol en Ajustes → Administradores. Esto es más relevante con agentes: un agente cuyos suscriptores facturan a su propio saldo prepago podría renovar, cambiar planes y extender vencimientos todo el día sin pagar por ellos. Los nuevos roles tienen el derecho desactivado automáticamente.

Reclamación y billetera prepago

SAMM automatiza todo el ciclo de cobros más allá de las facturas únicas. Una programación de cobro establece un día de facturación, un día de vencimiento y un día de bloqueo automático —con cargos por retraso opcionales— para recordar a los suscriptores con pagos atrasados y luego bloquearlos, sin que usted tenga que vigilar una hoja de cálculo. Un monedero prepago permite a los suscriptores mantener un saldo que liquida automáticamente las facturas al renovarse; ellos lo recargan desde el portal del cliente mediante tarjeta o criptomonedas, y cada recarga y deducción se registra en el libro mayor.

Las facturas también se generan automáticamente cuando se renueva el plan de un suscriptor (desde la acción de Renovar Vencimiento del usuario o por renovación automática), siempre y cuando el plan tenga un precio. La lista filtra por estado — pendiente de pago, parcial, vencida, pagada — y busca por número de factura o cliente. Abra cualquier factura para acceder a su página de detalles y descargar un PDF imprimible; los suscriptores pueden descargar sus propias copias desde el portal del cliente y el bot de Telegram.

Gastos

Un gasto es el dinero gastado en el funcionamiento del ISP. Nuevo gasto registra un categoría (la cuenta de gastos), el proveedor que pagó, el monto, la fecha en que se incurrió y un fecha de vencimiento opcional. Cada gasto tiene el mismo impago/parcial/vencido/pagado ciclo de vida como una factura, una página de detalles y un vovo PDF imprimible.

Recibos & Pagos

Estas dos pestañas registran el movimiento real del efectivo —distinto del factura o gasto que lo causó.

  • Recibos — dinero en: efectivo recibido de un cliente, un distribuidor o cualquier otro ingreso, que ingresa a una de sus cuentas bancarias. Una factura es la nota; el recibo es el dinero que llega en su contra.
  • Pagos — dinero fuera: efectivo pagado por un gasto o a un distribuidor.

Registrar un recibo o pago mueve la factura o gasto correspondiente hacia el estado de pago y registra la entrada contable correspondiente.

Clientes & Ventas de tarjetas

La pestaña Clientes enumera el saldo corriente de cada cliente: lo que te lo debo. Las ventas con tarjeta cubren los ingresos del punto de acceso prepago: realiza un seguimiento de las ventas grupos de tarjetas y revendedores . Un revendedor compra la tarjeta completa agrupa sus tarjetas en una factura y luego revende las tarjetas individuales a los usuarios finales; su saldo adeudado es lo que aún deben pagarle.

Agentes — facturación mayorista

Un agente revende tu servicio a los clientes finales con un modelo de mayoreo prepago — piensa en una franquicia o un subdistribuidor que gestiona su propia cartera de abonados pero se apoya en tu red. Es totalmente opcional: si nunca creas un agente, la facturación funciona exactamente igual que siempre.

Dos deudas, claramente separadas El agente te debe a ti el precio mayorista (en tus libros es tu ingreso); el cliente le debe al agente el precio minorista (fuera de tus libros — es la cuenta por cobrar del propio agente). Tu comisión es la diferencia entre ambos, contabilizada como un descuento comercial, nunca como un gasto.

Crea un agente en Ajustes → Administradores asignando a un nuevo administrador el rol integrado Agente. Un agente es un acceso de administrador con alcance limitado que tiene:

AjusteSignificado
Comisión %La parte del agente sobre el precio minorista (p. ej. 40% — tú conservas el 60% como ingreso mayorista). Editable por agente, en cualquier momento.
Límite de créditoHasta dónde puede quedar en negativo el saldo prepago del agente antes de que se rechacen las renovaciones. Pon 0 para prepago estricto.
Saldo prepagoRecárgalo cuando el agente te pague; cada renovación descuenta de él el precio mayorista.

Cuando se renueva uno de los abonados del agente, SAMM descuenta el precio mayorista del saldo del agente, registra tu ingreso y emite una factura minorista real al cliente final, pagadera al agente y que queda fuera de tu libro mayor. La gestión de cobros del lado del agente — con su propio interruptor en Ajustes → Facturación, activada por defecto y con un período de gracia editable — suspende automáticamente a un cliente moroso (enviando una desconexión CoA); cuando el agente registra el pago del cliente, el abonado se reactiva al instante.

Un agente inicia sesión en una vista de alcance limitado: su propio panel, una página de monedero Mi saldo, una lista Mis clientes con las facturas y pagos de cada cliente, y un Mi estado de cuenta — todo limitado a su propia cartera. Los libros de toda tu empresa, los demás agentes y los clientes de otros administradores permanecen ocultos.

Activos & Cuentas de efectivo

  • Activos — registrar activos fijos (routers, vehículos, equipos). SAMM sigue su valor y depreciación a lo largo del tiempo.
  • Efectivo : administra tu efectivo y tus ahorros. cuentas bancarias , y sus cuentas de capital : capital del propietario, donde una contribución es dinero que el propietario pone en el negocio y un retiro es dinero que se retira. capital no son ingresos y nunca aparecen en Profit & Pérdida.

Informes — los estados financieros

La pestaña Informes es la visión del contador. Cinco estados financieros, cada uno con un rango de fechas y exportable a PDF:

InformeResponde
Ganancias & PérdidasIngresos frente a gastos y beneficio neto durante un rango de fechas. Base de acumulación: los ingresos cuentan cuando se facturan, los gastos cuando se incurren, no cuando se mueve el efectivo.
Balance generalA partir de una fecha: lo que usted posee (activos) frente a lo que usted debe (pasivos) más el capital social. Una insignia equilibrada confirma que ambos lados coinciden.
Flujo de cajaPor cuenta de efectivo: saldo inicial, entrada y salida de dinero, saldo final en un rango.
AntigüedadLas cuentas por cobrar y por pagar pendientes se clasifican en categorías de antigüedad, para que pueda controlar las facturas vencidas y adelantarse a las facturas.
AvanzadoLos libros sin procesar: Libro mayor (cada línea de una cuenta con un saldo corriente), Saldo de comprobación (el control de libros equilibrados), Diario y un registro de actividades.
La verificación de equilibrio En el Balance de Prueba, las columnas de débito y crédito de cada cuenta deben sumar igual; eso es la prueba de que los libros están en orden. Si alguna vez está desequilibrado, señala un error de registro que vale la pena investigar.

Exportar a software de contabilidad

En Contabilidad → Informes → Exportar, descargue los libros como CSV para QuickBooks, Xero o cualquier hoja de cálculo: Diario General, Plan de Cuentas, Facturas, Balance de Comprobación, Pérdidas y Ganancias y Balance General. El Diario General, las Facturas y P&G usan el rango de fechas; el resto es a fecha de hoy. Los mismos datos están disponibles por la API en GET /api/v1/accounting/export/{kind} (format=json|csv, permiso accounting:read) para pipelines de BI y Zapier. Las exportaciones excluyen los asientos anulados, por lo que una descarga siempre concuerda con los informes en pantalla.

Operaciones diarias

Deshacer & aprobaciones

La mayoría de los errores en un panel de ISP son errores de dinero: renovar al suscriptor equivocado, registrar un pago dos veces, cambiar un plan en la cuenta incorrecta. SAMM le ofrece una ventana de reversión de cinco minutos para esas acciones, y — cuando una acción devuelve dinero — un puente de aprobación de superadministrador antes de que surta efecto.

La ventana de deshacer

Cada acción de administrador que mueve dinero o estado se registra mientras ocurre. Durante los próximos cinco minutos, la barra superior muestra un botón Deshacer y una lista Historial de acciones — haga clic en la flecha para revertir la última acción, o abra el historial y retroceda a cualquier punto dentro de la ventana. Rehacer lo devuelve.

¿Por qué sólo cinco minutos? Deshacer no es una máquina del tiempo: es una red de seguridad para el clic que acaba de hacer. Al cabo de unos minutos el mundo ha avanzado: el abonado ha estado en línea, una factura ha sido pagado, alguien más ha editado el registro. SAMM preferiría negarse que calladamente reescribe el historial, de modo que el paso simplemente abandone tu historial cuando se cierre la ventana.

Un deshacer se niega (con el motivo en la pantalla) cuando revertirlo destruiría algo que no creó:

NegativaQué significa
Ese registro ya no existe.El suscriptor, la factura o el pago se eliminaron después de su acción; no queda nada que recuperar.
Ese registro vuelve a existir.Algo ha sido recreado en su lugar; deshacerlo sobrescribiría el registro más nuevo.
Este registro cambió después de su acción.Mientras tanto, alguien más lo editó; deshacerlo descartaría silenciosamente su edición.
Ese paso ya no está en tu historia.La ventana de cinco minutos se ha cerrado.

Deshacer es una inversión, no una eliminación: la acción original y su deshacer permanecen ambas en el registro de auditoría, por lo que el registro de lo que ocurrió nunca se pierde. Las acciones que crean algo te advierten claramente — deshacer esto eliminará lo que creó — antes de ejecutarse.

La puerta de aprobación del agente

Un agente paga por un suscriptor con su propio saldo prepago en el momento en que lo activa. Esto convierte a revertir en una acción una forma de recuperar dinero — y una forma de engañar: activa un suscriptor, déjalos usar todo el mes, luego elimínalos el último día y recupera el cargo.

Entonces SAMM divide las acciones de un agente según la forma en que se mueve el dinero:

DirecciónEjemplosComportamiento
Le cuesta dinero al agente Activar, renovar, cambiar de plan, cobrar el pago de un cliente Inmediato. El trabajo diario de un agente nunca espera a nadie.
Devuelve el dinero Deshacer, eliminar un suscriptor, eliminar una factura, anular un cobro Estacionado como pedido. Nada cambia hasta que un superadministrador lo apruebe.

Las acciones controladas no se realizan a medias. La solicitud se almacena con toda la información necesaria para ejecutarla más tarde, y la aprobación reproduce el mismo código que habría ejecutado el agente — nunca una segunda implementación que pueda desviarse de la primera. Rechazar deja el mundo exactamente igual, y el agente mantiene la responsabilidad.

trabajando la cola

Las solicitudes llegan a Contabilidad → Aprobación de Agentes junto con el agente, la acción, a qué se refiere y cuánto dinero devuelve — el número que toma la decisión. Filtra por agente o estado, busca, marca varios y aprobarlos o rechazarlos juntos; un rechazo puede llevar una razón breve, que ve el agente.

delegarlo Revisar agentes todo el día rara vez es el trabajo del superadministrador. El derecho de aprobación de agentes puede concederse a cualquier rol en Ajustes → Administradores, por lo que la persona que realmente realiza la revisión obtiene exactamente esa potestad — y nada más. Crear y gestionar agentes sigue siendo solo para superadministradores. Nadie puede decidir su propia solicitud.

Lo que ve el agente

Un agente obtiene una página de Mi Cuenta → Aprobaciones Pendientes que enumera todo lo que han solicitado: lo que aún está en espera y lo que fue aprobado o rechazado, junto con la razón del revisor. Sin ello, una negativa sería indistinguible de una solicitud que desapareció, y simplemente la pedirían de nuevo.

Pueden retirar sus propias solicitudes pendientes, una a la vez o varias de golpe, porque pedir algo que no puedes despedir es su propia trampa. Una solicitud retirada nunca se ejecutó, así que nada cambia; una decidida es historia y se queda. Una factura en espera de revisión también lo indica en su propia página, por lo que un agente que hizo clic en Borrar y no vio nada entenderá por qué.

Para tus suscriptores

Pagos en línea

SAMM puede permitir que sus suscriptores paguen sus facturas en línea —con tarjeta de crédito (Stripe o PayPal) o con criptomonedas/USDT (Binance). Cuando un suscriptor paga, SAMM marca la factura como pagada, la registra en sus libros y, si se desconectaron por impago, los reconecta automáticamente. Nunca se le cobra: cada pasarela utiliza su propia cuenta, por lo que el dinero va directamente a usted.

Actívelo (cualquier puerta de enlace)

  1. Abra Finanzas → Pagos en línea (solo superadministrador).
  2. Haga clic en un gateway para expandirlo — Stripe, PayPal o Binance / USDT.
  3. Rellene sus campos, marque la casilla Habilitar esta pasarela y haga clic en Guardar. SAMM no le permitirá guardar hasta que se hayan rellenado los campos necesarios.
  4. Haga clic en Ejecutar prueba para confirmar que sus credenciales funcionan.
  5. Hecho — sus suscriptores ven ahora un botón Pagar en sus facturas impagas en el portal (y en la página "suscripción expirada").

Puede habilitar más de una puerta de enlace: el suscriptor elige cuál usar.

Stripe — tarjetas bancarias, en todo el mundo

  1. Cree una cuenta gratuita en stripe.com. Mantenga el modo Prueba activado mientras lo prueba.
  2. Vaya a Desarrolladores → Claves API y copie la Clave secreta (comienza con sk_).
  3. En SAMM, expanda Stripe, pegue la clave secreta, elija la moneda y la cuenta bancaria donde se recibirá, luego Guardar y Ejecutar prueba.
  4. Recomendado: agregue un webhook para confirmar los pagos de manera fiable. En Stripe, vaya a Desarrolladores → Webhooks → Agregar punto de conexión, establezca la URL en https://YOUR-SAMM/pay/webhook/stripe, elija el evento checkout.session.completed, y luego copie su secreto de firma (whsec_…) en el campo Secreto de firma de webhook de SAMM.
En vivo El modo de prueba funciona en cualquier lugar. Recibir dinero real a través de Stripe requiere un soporte compatible con Stripe . país y una cuenta bancaria vinculada.

PayPal — tarjetas y PayPal saldo

  1. Cree una cuenta de PayPal Business, luego en developer.paypal.com cree una App REST y copie su ID de cliente y Secreto.
  2. En SAMM, expanda PayPal, pegue el ID de cliente y el secreto de cliente, elija Sandbox (pruebas) o En vivo, luego Guardar y Ejecutar prueba.
  3. Recomendado: agregue un webhook en developer.paypal.com → su Aplicación → Webhooks, URL https://YOUR-SAMM/pay/webhook/paypal, suscríbase a CHECKOUT.ORDER.APPROVED y PAYMENT.CAPTURE.COMPLETED, y luego pegue el ID de Webhook en SAMM para que las notificaciones entrantes sean verificadas criptográficamente.

Binance / USDT : criptografía, funciona en todas partes, no se necesita un banco

Esta es la mejor opción cuando las tarjetas y PayPal no están disponibles. Sus suscriptores envían USDT; SAMM vigila su cuenta de Binance y marca la factura como pagada automáticamente. Necesita tres cosas: una Clave API, un Secreto API, y un lugar para recibir — una dirección de billetera y/o un ID de Pago de Binance.

Paso 1: cree una clave API de solo lectura

Seguridad ante todo Cree la clave con acceso de lectura solo. Nunca habilite Retirar o Comerciar — SAMM solo necesita leer sus pagos entrantes, nunca mover fondos.
  1. Inicie sesión en Binance → abra Cuenta → Gestión de API (o busque "Gestión de API").
  2. Haga clic en Crear API → elija Generada por el sistema → nómbrelos, por ejemplo, "SAMM" → complete el chequeo de seguridad.
  3. Binance muestra la Clave API y la Clave Secreta — copie ambas ahora (la Secreta se muestra solo una vez).
  4. Haga clic en Editar restricciones y mantenga marcada únicamente la opción "Habilitar lectura". Deje desactivadas las opciones de "Comercio puntual" y "Retiros". (Opcional: restrinja la clave a la dirección IP de su servidor.)
  5. Pegue la Clave API y la Secreta API en la tarjeta Binance de SAMM (la clave primero, luego la secreta — el mismo orden que Binance las muestra).

Paso 2: obtenga la dirección de su billetera receptora

  1. En Binance, vaya a Cartera → Mercado → Depósito (Depositar Criptomonedas).
  2. Elija la moneda USDT.
  3. Elija la red — TRC20 es la más barata y común; BEP20 y ERC20 también funcionan. Utilice la misma que seleccione en SAMM.
  4. Copie la dirección de depósito y péguela en el campo de dirección de billetera de recepción on-chain de SAMM. Asegúrese de que el menú desplegable Red de SAMM coincida con la red que eligió.

Paso 3: (opcional) Binance ID de pago

Para suscriptores que prefieren Binance Pay (instantáneo, sin tarifa de red): en la aplicación de Binance, abra Pagar y anote su ID de Pago (su correo electrónico o número de teléfono también funciona). Pégelo en el campo ID de Binance Pay de SAMM. Los suscriptores pueden pagar luego mediante ID de Pago, así como en cadena.

Finalmente, marque la casilla Habilitar, haga clic en Guardar y luego Ejecutar prueba (verifica que la clave pueda leer su cuenta). ¡Está en vivo!

Cantidad exacta, red correcta Un suscriptor debe enviar la cantidad exacta que SAMM muestra (los últimos dígitos pequeños identifican su factura) en la red correcta. Una cantidad diferente o la red equivocada retrasarán o perderán el pago.

Lo que ve el suscriptor

  1. Acceden al portal de clientes → Mis facturas.
  2. En una factura sin pagar, hacen clic en Pagar (o "Pagar · Stripe" / "Pagar · Binance" si están habilitados varios).
  3. Tarjeta: se dirigen a la página segura del punto de acceso. USDT: ven el monto exacto, su dirección con un código QR, y/o su ID de pago.
  4. Una vez pagada, la factura se vuelve Pagada , se publica en sus libros y, si estaban vencidas, se vuelven a conectar automáticamente ; los suscriptores vencidos incluso obtienen un botón "Pagar y volver a conectar" en la página vencida.
Tus libros se mantienen exactos Cada pago en línea registra una partida doble balanceada (Dr Cash / Cr Cuentas por cobrar) y registra el método ( Stripe / Binance ) en la factura, en el historial de pagos y en el PDF, para que usted Sepa siempre cómo llegó cada pago.

Operaciones diarias

Tickets de soporte

SAMM cuenta con un sistema de ayuda integrado. Los suscriptores pueden crear incidencias desde el portal de clientes o el bot de Telegram, un administrador puede abrir una incidencia en nombre de un suscriptor, y tu equipo las gestiona todas desde Usuarios → Incidencias de Soporte.

La cola de tickets

La cola enumera cada ticket: número, cliente, asunto, prioridad, estado, el fechas de apertura y última actualización, y el recuento de mensajes. Filtrarlo con:

  • Etiquetas de estado — una por cada estado de ticket, cada una con un recuento en vivo, de modo que la carga de trabajo es visible a simple vista.
  • Prioridad — Normal, Moderada o Crítica.
  • Activo / Retirado — un cliente puede retirar un boleto que ya no necesite; los boletos retirados se desvanecen y se ocultan por defecto.
  • Buscar — por número de ticket, asunto o cliente.

La insignia de la barra lateral cuenta los boletos abiertos para que no se pierda nada.

Abrir un ticket

Nuevo ticket permite a un administrador crear un ticket para un cliente seleccionado — elija al cliente, luego establezca un asunto, prioridad y descripción. Los suscriptores también pueden abrirlo desde el portal del cliente o el bot de Telegram.

Trabajando en un ticket

Abra un ticket para leer el hilo de conversación completo. Desde allí puedes:

  • Respuesta al cliente — un mensaje público que el suscriptor ve en su portal y a través del bot de Telegram.
  • Agregar una nota interna — un mensaje solo para el personal, oculto al cliente, para notas de transferencia entre su equipo.
  • Cambie el estado y la prioridad del boleto.

Haga clic derecho en cualquier fila, o use su botón ⋮, para obtener el mismo estado, prioridad y respuesta. y acciones de notas internas sin salir de la cola.

Operaciones diarias

Centro de notificaciones

SAMM mantiene informados a los suscriptores automáticamente, a través de correo electrónico , Telegram , SMS y WhatsApp , y te permite transmitir mensajes. el El servicio samm-notification entrega todo a través de una cola limitada. La página Sistema → Centro de notificaciones tiene seis pestañas.

Vista general

La pestaña de inicio: recuentos en vivo (en cola, enviando, enviado hoy, fallido, omitido, exclusión voluntaria), el estado de cada canal de entrega y un feed de los más recientes notificaciones.

Canales

Configura cómo salen los mensajes SAMM . El correo electrónico utiliza su propia notificación\n cuenta, mantenida separada del SMTP de recuperación de contraseña en Configuración . Telegram utiliza un token de bot, SMS pasa por una puerta de enlace HTTP genérica o Twilio, y WhatsApp utiliza la API oficial de Meta WhatsApp Cloud (creada en Meta para\n Desarrolladores), con un puente opcional no oficial vinculado a QR bajo su propia responsabilidad: el puente\n se instala con un solo clic en un servidor con sistema operativo básico y se envía como un contenedor listo para ejecutar en Docker .\n Todos los secretos del canal se almacenan.\n Encriptado por Fernet. Cada suscriptor, desde el portal del cliente, elige qué canales quiere\n quiere y puede optar por no participar por completo.

Mensajes

Los plantillas de mensajes, un conjunto por evento. Edite el texto de cualquier notificación —recordatorios de renovación, recibos y el resto— para que cada mensaje se envíe en su propia voz y idioma.

Reglas & Temporizadores

Esta pestaña controla cuándo y cómo se activan las notificaciones automáticas. Para cada evento que controlas:

  • Dependiendo de si la regla está activada.
  • Ignorar salida de la lista — cuando se establece, el mensaje llega a todos los suscriptores incluso si optaron por salir de la lista. Reserve para mensajes transaccionales importantes.
  • Tiempo — por ejemplo, cuántos días antes de la expiración se envía un recordatorio de renovación.
  • Entrega y envío estrangulamiento : el trabajador drena la cola lote por tic; El tamaño del lote y el intervalo de ticks juntos marcan la velocidad de los mensajes. salir, para que una transmisión grande nunca inunde su servidor de correo.

Los eventos que SAMM puede emitir por sí mismo incluyen el recordatorio de renovación (antes de que expire una suscripción), la notificación de vencimiento (cuando expira), la advertencia de cuota (a medida que se acerca el límite de datos), el recibo de pago (cuando se registra un pago) y plan renovado.

Difusión

Envíe un mensaje único (una ventana de mantenimiento, un cambio de precio) a un conjunto elegido de suscriptores. La transmisión fluye a través de la misma cola limitada que la transmisión automática. notificaciones.

Bandeja de salida

Cada mensaje SAMM se ha puesto en cola o se ha enviado, con su estado de entrega por mensaje, por lo que usted Puede confirmar que una notificación llegó al suscriptor o ver por qué no lo hizo.

Sistema

VPN WireGuard

SAMM puede ejecutar un servidor VPN de WireGuard en el host SAMM — típicamente para el acceso remoto de administración al SAMM y el acceso de gestión a los MikroTiks detrás. Se gestiona enteramente desde Sistema → VPN; no se necesita consola.

Pestaña Servidor

  1. Haga clic en Generar Claves para crear la pareja de claves del servidor. La Clave Pública del Servidor aparece una vez generada — los clientes la necesitan.
  2. Establezca el puerto de escucha (UDP, predeterminado 51820), la dirección de túnel del servidor (el CIDR en la interfaz wg0, predeterminado 10.254.254.1/24), y el rango de IP del cliente — los direcciones de inicio y final que SAMM asigna automáticamente a nuevos pares.
  3. Habilite VPN WireGuard y haga clic en Guardar — SAMM activa la wg0 interfaz. El interruptor estará bloqueado hasta que existan las claves del servidor.

Pestaña Clientes

Haga clic en Agregar Cliente, asigne un nombre al par y SAMM le asignará la siguiente dirección de la gama del cliente. Para cada par, puede descargar su archivo de configuración, escanear un código QR con la aplicación móvil WireGuard o copiar comandos de MikroTik RouterOS preconfigurados para conectar un enrutador a la VPN. Los pares se pueden activar/desactivar o eliminar; los colores de estado indican si están conectados, obsoletos o nunca vistos.

Regenerar claves es destructivo Regenerar claves cambia la pareja de claves del servidor. Cada configuración de cliente ya implementada tiene la antigua clave pública del servidor integrada y dejará de conectarse hasta que se distribuya la configuración actualizada. La interfaz de usuario limita esto detrás de un diálogo de confirmación de escritura.

Sistema

Túnel de Cloudflare

Un túnel de confianza cero de Cloudflare publica SAMM en Internet público sin abrir ningún puerto de cortafuegos — útil cuando el host SAMM se encuentra detrás de NAT. Se gestiona desde Sistema → Túnel de Cloudflare.

Estado del servicio

La página se abre en una tarjeta de estado que informa el estado del conector:

EstadoSignificado
En ejecuciónEl túnel está activo y reenvía tráfico
DetenidoConfigurado pero no en ejecución actualmente
No configuradoEl binario está presente — pega un token para configurarlo
No instaladoEjecutar nuevamente install.sh para instalar el binario de cloudflared

También muestra la cloudflared versión y si el conector está configurado para iniciarse automáticamente al arrancar.

Configurar el túnel

  1. En el panel de Cloudflare Zero Trust (one.dash.cloudflare.com), abra Redes → Túneles y cree un túnel.
  2. Seleccione el conector Cloudflared, nombre el túnel y guarde. En el paso de instalación, copie solo el token — la larga cadena después de --token.
  3. Pegue esto en SAMM y haga clic en Configurar túnel. SAMM entrega el token a cloudflared y inicia el conector.
  4. De vuelta en Cloudflare, agregue un Nombre de host público: la dirección que haya elegido, tipo HTTP, URL localhost:80 (proximada por nginx — recomendada) o localhost:8000 (directa a la API).

En unos segundos, la insignia de estado cambia a verde y SAMM es accesible a través del nombre de host público. Una vez configurado, las acciones de un solo clic permiten Iniciar, Detener o Reiniciar el conector, Reemplazar Token para rotarlo, o Eliminar túnel (una acción de tipo REMOVE-confirmar).

No hay puertos abiertos, el token nunca está en la base de datos. El túnel establece una conexión saliente hacia el borde de Cloudflare — nunca se abre un puerto del cortafuegos en el servidor. El token se envía a cloudflared y se almacena bajo /etc/cloudflared/; SAMM nunca lo persiste en la base de datos. TLS termina en el borde de Cloudflare, por lo que SAMM mismo ejecuta HTTP plano en el bucle.

Sistema

Configuración

Sistema → Ajustes contiene los ajustes en vivo, actualizables en caliente. Los demonios los releen en su siguiente tick — no es necesario reiniciar el servicio. Los ajustes están organizados en pestañas.

Parámetros generales

AjustePredeterminadoControles
samm-radius interval30 sCon qué frecuencia se evalúan los eventos temporales y se envían CoAs
samm-worker interval5 sCadencia de ping de router + sincronización de API MikroTik
Intervalo contable intermedio60 sEl intervalo de contabilidad enviado a los enrutadores.
Hora de reinicio diario00:00Cuando los contadores de uso diario se acumulan
Zona horaria del servidorUTCZona horaria para ventanas de velocidad y reinicio diario
Puerto CoA predeterminado3799Puerto UDP predeterminado para paquetes CoA
Máximo de reintentos CoA3Reintentos antes de la reserva de solicitud de desconexión

Reduzca el intervalo de radio samm para una aplicación más estricta; levántelo para reducir la carga.

Identidad del ISP, logo, moneda y facturación (pestaña ISP)

Todo lo que los operadores preguntan «¿dónde cambio esto?» está en System → Settings → ISP. Edite un campo y pulse Guardar — el cambio es inmediato (sin reinicio) y aparece en facturas, recibos, PDF y el portal del cliente.

Lo que cambiaDónde aparece
Nombre del ISPFacturas, recibos, tarjetas hotspot, encabezado del portal
Teléfono y correo de soporteFacturas y tarjetas hotspot impresas
Número fiscal / de registroImpreso en las facturas
Logo del ISP (subir PNG/JPEG)Se redimensiona automáticamente; aparece en los PDF de facturas/recibos y en las tarjetas hotspot impresas. Use la ✕ de la vista previa para quitarlo.
Código de moneda (p. ej. USD)La moneda ISO en facturas y el libro mayor
Símbolo de moneda (p. ej. $)Cada importe mostrado en la interfaz de admin, el portal del cliente y los PDF
Impuesto sí/no, etiqueta y tasaAñade una línea de VAT/GST a las facturas (p. ej. etiqueta VAT, tasa 11 = 11%)
Cambiar el símbolo de moneda Para cambiar la moneda mostrada en todas partes (p. ej. de $ a £ o un símbolo local), configure Símbolo de moneda en la pestaña ISP y Guarde — actualiza el panel de admin, el portal del cliente y todos los PDF a la vez. Configure junto a él el Código de moneda (USD, EUR, …) para el código ISO impreso en las facturas.

Privacidad: estadísticas de instalación anónimas

Cuando SAMM comprueba actualizaciones, puede enviar a SecuryTik un ID de instalación aleatorio, la versión de SAMM, tu nivel de plan y un país aproximado (desde tu IP, a través de Cloudflare) — sin datos de suscriptores o clientes. Solo nos ayuda a contar instalaciones activas y priorizar el soporte y los idiomas. Desactívalo en cualquier momento en Configuración del sistema → Ajustes → Privacidad; consulta la política de privacidad.

Pestaña Correo

Configure el servidor SMTP utilizado para los códigos de recuperación de contraseña enviados a administradores y clientes (host, puerto, SSL/STARTTLS, nombre de usuario, dirección de remitente, contraseña). Haga clic en Probar conexión para verificar las credenciales sin enviar correo electrónico.

Dos cuentas de correo La pestaña de Correo electrónico aquí es solo para OTP / recuperación de contraseña. La cuenta utilizada para las notificaciones del cliente se configura por separado en el centro de notificaciones.

Sistema

Administradores, sucursales y roles

En System → Admins decide quién puede entrar al portal de administración, qué puede hacer cada persona y qué usuarios puede ver. Desde 5.1.0 los administradores forman un árbol de sucursales y personal. La página tiene dos pestañas: Admins y Roles.

Sucursales y personal

NodoQué es
SucursalUn lugar: una oficina, una ciudad. Posee los usuarios creados en él. Nadie inicia sesión como sucursal: no tiene contraseña ni rol.
Administrador (personal)Una persona que inicia sesión. Colocada bajo una sucursal, forma parte de su personal: cada usuario y tarjeta que crea pertenece a esa sucursal.
SuperadminSiempre en lo alto del árbol, nunca bajo una sucursal. Ve y puede hacer todo.

Use + Branch y + Admin para construir el árbol, y arrastre un nodo sobre otro para moverlo. Solo una sucursal puede tener administradores debajo. Un agente es un administrador que vende y posee lo que vende; el personal bajo un agente usa el monedero y las reglas de aprobación del agente.

Quién ve qué

La visibilidad sigue al árbol. Una sucursal —y todos los que trabajan en ella— ve sus propios usuarios y los de las sucursales que dependen de ella, nunca una sucursal hermana ni la superior. La central lo ve todo. Los permisos de un administrador nunca superan lo que permiten los que están por encima, y solo puede conceder lo que tiene.

Límites por sucursal

LímiteQué cuenta
Máx. usuariosCuántos usuarios pueden tener la sucursal y las que dependen de ella. Eliminar un usuario libera un lugar.
Máx. tarjetasCuántas tarjetas de hotspot pueden imprimirse en la sucursal.

Se rechaza un nuevo usuario o tarjeta cuando se alcanza cualquier límite en el administrador que lo crea o por encima, y el mensaje indica qué límite y cuánto queda. Déjelo vacío para no tener límite. Ambos pueden cambiarse después en el diálogo de edición.

Roles & permisos

Un rol concede acceso por área. SAMM incluye cuatro roles listos que puede editar o eliminar —Manager (operación diaria), Reseller, Accountant (finanzas) y Monitor (solo lectura)— y dos roles integrados bloqueados: superadmin (acceso total) y Agent, que convierte al administrador en revendedor mayorista con saldo prepago y reparto de comisión (vea Contabilidad y facturación → Agentes).

Para cada área de SAMM (usuarios, planes, routers, contabilidad, ajustes, etc.) un rol se fija en uno de tres niveles:

NivelSignificado
No permitidoEl área está completamente oculta de la barra lateral
VerAcceso de solo lectura
EditarAcceso completo — crear, cambiar, eliminar

Admins & roles, Tools, API y Payments quedan en la central, diga lo que diga el rol.

Dos derechos se encuentran al lado de los niveles de área, porque cada uno es una decisión monetaria más que una pantalla:

Bienlo que permite
Permitir la opción "Sin factura" Cambiar el servicio de un usuario —renovar, cambiar de plan, ampliar— sin cobrar nada. Desactivado por defecto en cada rol nuevo.
Permitir la aprobación de los agentes Revise y decida las solicitudes de agentes para revertir un cargo. Crear y gestionar agentes es solo para superadministradores. Consulte Revertir & aprobaciones.

También se puede permitir que un rol vea todos los usuarios y tarjetas de la instalación, sin importar el árbol. Si está desactivado, ve su propia sucursal y las que dependen de ella.

El tablero nunca se quita Independientemente de lo que se le niegue a un rol, cada administrador mantiene su propio panel y perfil. un inicio de sesión que genera un error de permiso es un inicio de sesión roto, no seguro.
La licencia siempre está disponible La página System → License es un bloque de permisos normal — pero siempre que el dispositivo esté en estado de bloqueo (gracia, suave o duro) SAMM la hace accesible para todo admin con sesión iniciada sin importar su rol, de modo que la vía de recuperación nunca quede cerrada.

Sistema

Herramientas

La sección Tools agrupa utilidades masivas y de mantenimiento. Actúa sobre todo el conjunto de datos, por lo que solo está disponible para superadmins.

Copia de seguridad & Restauración

Cree una instantánea completa de la base de datos antes de cualquier cambio importante. Una copia de seguridad está comprimida Archivo pg_dump almacenado en el servidor, cada uno con un encabezado SAMM .

  • Crear copia de seguridad : opcionalmente, agregue una nota; marque Omitir uso & historial para un volcado más pequeño y más rápido que omite tablas de registro voluminosas.
  • Descargue una copia de seguridad en su PC o cargue una copia de seguridad SAMM anterior al servidor.
  • Restaurar sobrescribe la base de datos actual — protegida por un diálogo de confirmación de tipo RESTORE.

Alta disponibilidad

Para una implementación sin un único punto de fallo, ejecute SAMM en dos nodos: Reproducción de streaming de PostgreSQL (un nodo primario con un segundo de retraso en un nodo de espera caliente) más un nodo de espera AAA, y promueva y vuelva a configurar en caso de fallo. El completo libro de operaciones — configuración de replicación, conmutación por error planificada y no planificada, recuperación, un modo de replicación síncrona opcional y una lista de verificación de verificación post-fallo — se entrega como docs/HA.md con el código fuente. Tenga en cuenta que la replicación no es una copia de seguridad (una mala eliminación se replica instantáneamente), por lo que mantenga también las copias de seguridad programadas en funcionamiento.

Limpiador de historial

Elimina permanentemente las antiguas filas de registro e historial para recuperar espacio en la base de datos. Selecciona un ajuste de retención predeterminado y confirma. El limpiador recorta las sesiones RADIUS cerradas, registros de autenticación posterior, resúmenes de uso diario, historial de enrutadores/interfaz, registros de limitación, entradas de auditoría aplicadas y filas CoA finalizadas. Nunca toca las sesiones activas, comandos en cola, CoAs pendientes o los totales de uso de vida no reseteables.

Primero haz una copia de seguridad History Cleaner se elimina permanentemente. Ejecute una copia de seguridad antes de limpiar si lo desea los datos más tarde.

Exportar / Importar

Exportación y importación masivas para Usuarios, Planes y NAS como .csv o .xlsx. Descargue un modelo (las columnas correctas más una fila de muestra) o una instantánea de los datos actuales, llénelo y súbalo de nuevo. Cada fila se valida y se muestra en una pantalla de vista previa — se resaltan las filas duplicadas e inválidas, y usted elige si omitir duplicados o actualizarlos en su lugar — antes de que se escriba algo.

Cambios masivos

Aplicar un cambio: propietario, fecha de vencimiento, estado, renovación automática o plan completo períodos: a cada suscriptor que coincida con un filtro, en una sola ejecución. Elija el cambio, construya el filtrar (estado/plan/propietario/búsqueda), revisar la lista de coincidencias y confirmar.

Agregar períodos completos del plan es la opción de renovación en masa: cada suscriptor gana tantos períodos de su propio plan, por lo que un plan de 7 días gana 7 días por período y un plan mensual gana un mes calendario — en la misma ejecución, sin dividir la lista por plan primero. Los suscriptores cuyo plan no tiene período de expiración se omiten en lugar de adivinar. Agregar días sigue disponible donde desee un número plano de días y sin reinicio del contador.

Aumento de velocidad

Aumente o disminuya la velocidad de todos los planes a la vez en un porcentaje — un fin de semana festivo a doble velocidad, o un control de emergencia mientras se degrada el enlace de respaldo. Se aplica de inmediato, tanto para nuevos inicios de sesión como para sesiones ya en línea.

ControlQué hace
PorcentajeLo positivo multiplica, lo negativo divide: +100% → doble velocidad, −100% → media velocidad, −500% → una sexta parte. La velocidad nunca llega a cero.
Planes para impulsarMarque cualquier número de planes; cada fila muestra la tarifa planificada, el impulso vigente y la velocidad efectiva en este momento.
Revertir automáticamente despuésHoras hasta que el impulso desaparezca por sí solo. 0 lo mantiene hasta que lo restableces manualmente.
Un impulso supera una ventana de velocidad El aumento se mide a partir de la tarifa del plan y reemplaza cualquier ventana de velocidad mientras está activa: un plan en una ventana nocturna de 20 M no lo hace convertirse en 40M, se convierte en lo que sea que haga el impulso de su tarifa plan. Windows reanuda el momento. el impulso caduca.

Un suscriptor que ha llegado al límite nunca recupera la velocidad completa mediante un impulso. Por la misma razón, un plan utilizado como objetivo de limitación es omitido por Seleccionar todo y etiquetado como tal — impulsarlo aceleraría exactamente a las personas que estás limitando. Aún puedes marcarlo manualmente si esa es tu intención. Restablecer todo a normal elimina todos los impulsos y devuelve las sesiones activas a la velocidad de su plan.

Eliminación masiva

Eliminar permanentemente múltiples suscriptores o tarjetas de punto de acceso a la vez, seleccionadas mediante filtro. Eliminar a un suscriptor también elimina su historial de uso, sesiones, contabilidad RADIUS y facturas, y desconecta cualquier sesión activa. Restringido por un diálogo de confirmación tipo-DELETE.

Sistema

Idiomas & temas

Idiomas

Los portales de administrador y de cliente son completamente traducibles. Se incluyen de forma integrada ocho idiomas: Inglés, Árabe (de derecha a izquierda), Ruso, Persa (de derecha a izquierda), Turco, Francés, Español y Alemán. Cada usuario selecciona su idioma desde la barra superior o su perfil; la elección se recuerda por cuenta.

El editor de traducciones

Un superadministrador puede editar traducciones en vivo desde Sistema → Traducciones — sin reinicio, sin edición de archivos. El editor también crea idiomas completamente nuevos e importa/exporta libros de trabajo de traducción como .xlsx, por lo que puedes localizar SAMM a cualquier idioma que atiendas.

Temas

SAMM incluye 16 temas visuales, claros y oscuros. Cada usuario selecciona un tema desde la barra superior; la vista previa se actualiza instantáneamente y se guarda por cuenta. La terminología técnica nunca se traduce, por lo que las pantallas permanecen precisas en todos los idiomas.

Sistema

Registro de auditoría y actividad

System → Audit Log responde a una pregunta: qué pasó y quién lo hizo. Una sola lista reúne cada cambio de un administrador, lo que el sistema hizo por sí solo (como el vencimiento) y los cambios que los usuarios hicieron en su propia cuenta en el portal o en Telegram: cambios de plan, renovaciones, pagos, ediciones del perfil y de la contraseña.

ColumnaQué muestra
CuandoLa hora, en su zona horaria
QuiénEl administrador, "ali, en el portal", "ali, en Telegram", un token de API o System
Qué pasóUna frase, solo con los campos que cambiaron, antiguo → nuevo; por ejemplo "Editó el usuario: Vencimiento: 01 Oct → 15 Oct"
ObjetivoA qué se aplicó: Usuario · ali, Plan · Gold 20M, Router · Hamra, Administrador · rami

Filtre por Quién y Periodo, o escriba un nombre en el buscador. Los inicios de sesión y las exportaciones están ocultos salvo que marque Show logins & exports. Via, Action, Category, Severity e ID están en el selector de columnas. Seleccione filas para Export o Print: el archivo tiene las mismas columnas que la pantalla. El botón ⓘ de una fila muestra la tabla completa de antes y después.

Línea de tiempo del usuario

Abra un usuario y elija Timeline para ver todo lo que le pasó a esa cuenta —creada, renovada, cambio de plan, suspendida, límites alcanzados— con facturas, pagos, monedero y cargos de agente en una columna Importe. Filtre por tipo, periodo o solo dinero, y exporte a CSV o Excel. Las filas de la línea de tiempo nunca se eliminan y sobreviven al borrado del usuario.

Accept Log y Access Log

Overview → Accept Log lista cada intento de inicio de sesión que enviaron los routers y la respuesta de RADIUS, el más reciente primero, con el motivo de cada rechazo. Es la página que hay que abrir cuando un usuario no puede conectarse. Un rechazo repetido es una sola línea con un contador. Overview → Access Log lista las sesiones que sí comenzaron, según la contabilidad de RADIUS.

También una cola de comandos Los reinicios, cambios de plan y renovaciones encolados desde la CLI o la API se escriben en la misma tabla y el servicio samm-radius los aplica en su siguiente ciclo, actualizando la sesión activa con un CoA. La insignia de la barra lateral cuenta los pendientes.

Licencias

Licencias & niveles

Cada instalación de SAMM está licenciada por dispositivo — el plan vive en esa instalación, por lo que puedes ejecutar varios servidores SAMM, cada uno en su propia categoría. La categoría establece tres límites numéricos.

NivelUsuarios AAATarjetas HotspotNAS / enrutadores
No registrado252001
Gratis100502
Lite5001,5004
Plus1,0003,0006
Pro2,0006,00012
Mega5,00015,00024
Max10,00030,000ilimitado
Unlimitedilimitadoilimitadoilimitado

Una instalación fresca funciona como no registrada en el nivel mínimo. Todas las funciones están disponibles en cada nivel —el nivel solo establece los límites—. Crear un suscriptor, tarjeta o NAS por encima del límite está bloqueado hasta que actualice; nunca se pierde datos.

Activar & actualizar

  1. Abra Sistema → Licencia.
  2. Activa accediendo con tu cuenta de SecuryTik — o utiliza Vincular este dispositivo, que muestra un código que debes aprobar en samm.securytik.com sin tener que escribir tu contraseña en el servidor. El dispositivo se activa en Free.
  3. Para subir de nivel, elija un plan en la misma página o suscríbase desde su panel. Una solicitud hecha desde la página la revisa y aprueba un administrador de SecuryTik.

La página de licencia también vuelve a verificar la licencia bajo demanda y muestra su uso actual contra cada límite. Desvincular dispositivo devuelve la instalación al nivel no registrado sin eliminar ningún dato.

Si una licencia de pago vence

SAMM nunca elimina datos. Una licencia caducada se retira con gracia:

EtapaQué sucede
AdvertenciaUn cartel recordatorio; todo sigue funcionando
GraciaUna breve ventana para reactivar; los suscriptores permanecen en línea
Bloqueo parcialLos servicios en segundo plano se detienen; RADIUS sigue autenticándose durante aproximadamente 7 días
Bloqueo totalLos servicios se detienen excepto la página de reactivación.

La reactivación en cualquier etapa reinicia todos los servicios automáticamente: todos los datos y el historial del suscriptor están intactos.

Actualizaciones automáticas

La actualización automática es independiente de la licencia: cada nivel se actualiza y una licencia caducada nunca lo bloquea. SAMM busca diariamente una nueva versión firmada. De Sistema → Licencia entre las que puedes cambiar notificar a (el valor predeterminado: un banner con un botón Aplicar ahora ) y auto (aplicar sin supervisión). Cada actualización se verifica, se respalda y se aplica en lugar. También puede volver a ejecutar el instalador en cualquier momento; se actualiza de forma idempotente.

Para tus suscriptores

Portal del cliente & bot

SAMM ofrece a cada suscriptor dos superficies de autoservicio: un portal web y un Telegram bot: para que puedan verificar el uso y pagar sin comunicarse contigo.

El portal del cliente

Los suscriptores inician sesión en la raíz del sitio de SAMM (/) con su nombre de usuario y contraseña de SAMM. El portal tiene:

PáginaLo que ve el suscriptor
Vista generalEstado de la cuenta, plan, vencimiento, uso de hoy y de este mes, cualquier factura pendiente
Uso y uso sesionesTotal descargado/cargado, presupuesto de tiempo de actividad e historial de sesión completo
Mis planesEl plan actual más el catálogo de planes disponibles.
Mis facturasHistorial de facturación con descarga en PDF con un solo clic
Tickets de soporteAbrir y seguir tickets de soporte
PerfilEdite los datos de contacto, cambie la contraseña, establezca el idioma y el idioma. tema, gestionar notificaciones

Desde el perfil , un suscriptor conecta su cuenta Telegram , realiza pedidos\n sus canales de notificación preferidos u optar por no recibir notificaciones por completo. si ellos\n olvidan su contraseña, se les envía un código OTP por correo electrónico (esto necesita el Pestaña de correo electrónico configurada).

El bot de Telegram

El servicio samm-telegram ejecuta un bot de servicio auto-servicio interactivo. Un suscriptor envía /start, verifica una vez con su nombre de usuario SAMM y contraseña (el bot elimina el mensaje de contraseña inmediatamente), y luego, completamente desde el chat:

  • Consulta su plan, cuota, uso y fecha de vencimiento.
  • Ver y descargar facturas como PDF
  • Actualiza su perfil y cambia su contraseña.
  • Abrir y seguir tickets de soporte

El bot también envía notificaciones automáticas: recordatorios de renovación, vencimiento. avisos, advertencias de cuota y recibos, a los suscriptores que se conectaron a Telegram .

La página de aterrizaje del suscriptor vencido

Cuando un suscriptor vence, el router (configurado por el "pool de expirados y bloqueo de internet" del asistente) redirige su navegador a una página amigable de "suscripción expirada" servida por SAMM en el puerto 81 — con su logo de ISP y un botón de acceso al portal — en lugar de una conexión muerta en silencio.

Sistema

REST API

System → API gestiona la interfaz pública /api/v1. La API permanece inactiva hasta que se crea el primer token, así que una instalación que nunca la usa no expone nada. Todo lo siguiente está disponible también como documentación interactiva OpenAPI — con consola de pruebas y esquemas completos — en su propia instalación en /api/v1/docs.

Documentación interactiva (Swagger UI)

Cada instalación sirve una consola de API en vivo en /api/v1/docs, accesible directamente desde el panel API del portal de administración. Haga clic en Authorize, pegue un token y podrá ejecutar cualquier endpoint sobre sus propios datos con Try it out; cada llamada muestra la respuesta real y un comando curl listo para copiar.

Cada endpoint declara un esquema completo y tipado — tanto para los cuerpos de las solicitudes como para las respuestas — de modo que los nombres de campo, los tipos y los ejemplos son visibles sin llamar a nada. El mismo esquema se sirve como OpenAPI legible por máquina en /api/v1/openapi.json, que genera un cliente totalmente tipado en el lenguaje que prefiera:

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

Inicio rápido

  1. Abra System → API (solo superadmin), elija un nombre, una expiración y los ámbitos que necesita la integración, y pulse Crear token.
  2. Copie el secreto de inmediato — se muestra exactamente una vez y el servidor solo guarda su resumen.
  3. Verifique que funciona y vea qué puede hacer el token:
curl -H "Authorization: Bearer samm_YOUR_TOKEN" https://YOUR-SAMM/api/v1/me

Liste los suscriptores activos y luego cree uno:

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

Autenticación, tokens y ámbitos

Cada solicitud envía Authorization: Bearer <token>. Un token lleva un nombre, un límite de tasa por minuto, una expiración (30–360 días o nunca) y un conjunto de ámbitos — permisos de lectura/escritura por recurso; un ámbito write incluye automáticamente el read correspondiente. El secreto se muestra exactamente una vez; el servidor solo guarda un resumen. Un token puede revocarse (las llamadas fallan de inmediato, reversible) o eliminarse por completo.

Las respuestas siguen un único conjunto de convenciones: los endpoints de lista aceptan limit/offset y devuelven {"total", "items"}; los errores usan códigos estándar — 401 token ausente/inválido/expirado, 403 ámbito faltante, 404 no encontrado, 409 duplicado, 422 error de validación y 429 al alcanzar el límite de tasa (con Retry-After y X-RateLimit-*).

Referencia de endpoints

ÁreaEndpointsÁmbito
Introspección GET /me · GET /commands cualquier token
Estadísticas del panel GET /stats/overview stats:read
Suscriptores GET/POST /customers · GET/PATCH/DELETE /customers/{id} · POST …/suspend · …/activate · …/renew · …/reset-limit · …/assign-plan · GET …/usage customers:read/write
Desconexión POST /customers/{id}/disconnect · POST /sessions/disconnect · /sessions/reconnect coa:write
Planes GET/POST /plans · GET/PATCH /plans/{id} plans:read/write
Facturas GET/POST /invoices · GET /invoices/{id} · GET /invoices/{id}/pdf · POST …/pay · …/unpay billing:read/write
Libros contables GET /accounting/export · GET /accounting/export/{kind} accounting:read
Sesiones en vivo GET /sessions · GET /coa-outbox sessions:read
Routers GET /routers routers:read
Tarjetas Hotspot GET/POST /cards/groups · GET /cards/groups/{id} · GET …/cards · …/print.pdf · POST …/cards · …/enable · …/disable · …/extend · GET /cards/{id} · POST /cards/{id}/enable · …/disable · …/reset/{kind} cards:read/write
Webhooks GET/POST /webhooks · DELETE /webhooks/{id} · POST …/enable · …/disable · …/test webhooks:manage

Comandos en cola

Las mutaciones que tocan estado contable en vivo — restablecimientos de límites, activar/desactivar tarjetas y grupos, extensiones de validez — no se aplican dentro de la solicitud. Se encolan en la cola de comandos auditada y las aplica samm-radius en un tick (unos segundos), exactamente igual que los mismos clics en el portal. Estos endpoints responden {"queued": true}; consulte GET /commands para ver sus comandos pasar a applied.

Webhooks

Registre una URL de punto de conexión y elija eventos (suscriptor creado/actualizado/renovado/vencido, límite agotado, factura creada/pagada, eventos de sesión opcionales). El secreto de firma se devuelve una sola vez al crearlo. Las entregas se reintentan con espera creciente y un punto que sigue fallando se desactiva automáticamente — reactívelo con POST /webhooks/{id}/enable o envíese un evento de muestra con POST /webhooks/{id}/test.

Cada entrega lleva X-SAMM-Event y X-SAMM-Signature: sha256=HMAC(body). Verifique antes de confiar:

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)
Las mismas reglas que el portal Las mutaciones de la API pasan por la misma cola de comandos auditada y la misma capa de servicios que el portal de administración: un restablecimiento o cambio de plan vía API se comporta exactamente igual que uno hecho en la interfaz, CoA incluido.

Referencia

Operando SAMM

Casi todo se hace desde el portal de administración. Esta página es la referencia de shell para las raras ocasiones en que la necesita.

Gestión de servicios

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

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

# Validate the FreeRADIUS config after any change
freeradius -CX

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

CLI Admin

Para operaciones rápidas de suscriptores desde la línea de comandos. Cada comando se añade a la cola de auditoría y se aplica en el siguiente samm-radius tick, exactamente igual que las acciones de la interfaz gráfica.

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

Archivos de configuración

ArchivoContiene
/etc/samm/samm.yamlEl DSN de la base de datos, los tamaños del grupo de conexiones y el nivel de registro.
/etc/samm/api.envSecretos de sesión del portal y configuración SMTP de recuperación de contraseña
/etc/samm/secret.keyLa clave de cifrado para las contraseñas API del enrutador almacenadas

Estos archivos se conservan durante las actualizaciones y nunca se sobrescriben\n una nueva ejecución del instalador. Configurables en tiempo de ejecución (cadencias de bucle, tiempo de reinicio diario, CoA)\n puertos) se encuentran en Configuración en su lugar, y\n aplicar sin reiniciar.

Actualizando SAMM

Puede permitir que SAMM se actualice desde Sistema → Licencia, o volver a ejecutar el instalador — consulte Instalación → Actualización. Ambos métodos vuelven a aplicar las migraciones y reinician los servicios; su configuración y datos permanecen intactos.

Copia de seguridad & recuperación

Utilice Herramientas → Copia de seguridad y actualización. Restaurar por completo\n instantánea de la base de datos antes de cualquier cambio importante. Para reconstruir en un host nuevo, instale SAMM y\n luego restaure la copia de seguridad.

Herramientas de mantenimiento (externas)

Algunas tareas de mantenimiento son lo suficientemente destructivas que no pertenecen en el panel de administración, donde un clic accidental podría destruir un negocio en vivo. SAMM las mantiene como scripts independientes, solo para raíces, que usted descarga y ejecuta intencionalmente desde la línea de comandos —nunca como un botón. Están alojadas en el repositorio de distribución pública bajo tools/.

Restablecer la contraseña de un administrador bloqueado

¿Sin acceso al panel de administración? Establece una nueva contraseña para una cuenta superadmin directamente en la base de datos — sin necesidad de un login que funcione. También reactiva la cuenta si estaba deshabilitada, y no toca nada más.

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)

Ejecútalo como root en el servidor SAMM. Si hay varios superadmins, usa --user <name> para elegir uno.

Restablecer los libros (borrar datos financieros)

Borra todas las transacciones financieras para que un ISP pueda comenzar su contabilidad desde cero. mientras deja todos los datos de suscriptores y AAA completamente intactos. Útil al hacerse cargo de un instalar, o después de un período de prueba/prueba, cuando los libros estén llenos de datos, el operador quiere desaparecer, pero la base de clientes debe permanecer exactamente como está.

Peligro: pérdida irreversible de datos Esto destruye permanentemente todas las facturas, pagos, recibos, saldos de billetera y historial contable. No hay forma de deshacerlo. La única forma de recuperar es mediante una copia de seguridad de la base de datos. Nunca lo ejecute en una instalación de producción que no haya respaldado y verificado primero.

Remoto: facturas y sus partidas individuales, el libro mayor de partida doble (pagos, recibos, ajustes, recargas de billetera y retiros), pago en línea transacciones, gastos, activos fijos y el libro de actividades contables. Numeración de facturas se reinicia, por lo que la siguiente factura comienza en el n.° 1.

Conservó: cada suscriptor, plan, ventana de velocidad, límite, contador de uso, historial del plan, tarjeta de punto de acceso, enrutador, sesión y registro de contabilidad RADIUS, además de su configuración contable (plan de cuentas, cuentas de caja, grupos de impuestos, pago puertas de enlace). Los saldos de efectivo, billetera y cuentas por cobrar se derivan del libro mayor, por lo que simplemente lea cero después.

Descárgalo, léelo y luego ejecútalo. Siempre haga primero un ensayo:

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
No lo coloques directamente en un caparazón. Nunca ejecute esto como curl … | sudo bash . Para un script que destruye tus datos desea leerlo primero, y una descarga truncada no debe poder ejecutar la mitad de limpiar. Descargue, inspeccione y luego ejecute.

El script se niega a ejecutarse como usuario no root e imprime exactamente lo que está a punto de ejecutar. eliminar, luego le pedirá que escriba YES para confirmar que tiene una copia de seguridad verificada y WIPE para continuar. Ofrece realizar primero su propio volcado de base de datos (en /var/backups/samm/ ) y se cancela si ese volcado falla. La limpieza funciona como transacción única de todo o nada, y RADIUS se deja deliberadamente ejecutándose en todo momento, por lo que los suscriptores permanecen en línea mientras se liquidan los libros.

Referencia

Preguntas frecuentes & solución de problemas

¿Qué sistemas operativos admite SAMM ?

Ubuntu 22.04/24.04/26.04 LTS y Debian 12/13. Solo Linux de nivel de servidor: Las variantes de escritorio no son compatibles. El instalador espera systemd, una nueva Instalación de PostgreSQL (hay una configurada para usted) y acceso de root.

¿Necesito una conexión a Internet para ejecutar SAMM ?

No. SAMM se ejecuta completamente en su propio servidor y autentica a los suscriptores localmente sobre RADIO. El único tráfico saliente es un latido periódico de licencia al SecuryTik servidor de licencias para que tu plan permanezca validado.

¿Puedo ejecutar SAMM en la nube o es necesario que sea local?

Cualquiera de los dos funciona. La mayoría de los operadores ejecutan localmente junto a sus enrutadores principales; algunos corren en una pequeña máquina virtual en la nube con un túnel Cloudflare Zero Trust hacia atrás. El único requisito es que los MikroTik enrutadores pueden llegar al servidor SAMM en los puertos RADIUS (1812/1813 UDP) y que SAMM pueda llegar a los enrutadores a través de la API MikroTik .

¿Tengo que reiniciar FreeRADIUS cuando agrego o elimino un enrutador?

No. SAMM resuelve dinámicamente los clientes NAS de la base de datos, por lo que agregar, editar o eliminar un router en MikroTik → NAS no requiere reinicio.

¿Qué tan rápido surte efecto un cambio de plan o un reinicio de contador?

Las acciones del administrador se colocan en cola y se aplican por el servicio samm-radius en su siguiente tick — dentro de 30 segundos por defecto. Si el suscriptor está en línea, SAMM también envía un CoA en vivo para refrescar la sesión. Reduzca el intervalo de samm-radius en Sistema → Ajustes para un sincronización más precisa.

¿Qué pasa con mis datos si caduca una licencia paga?

Nunca se borra nada. Una licencia caducada se retira mediante advertencia, gracia, una bloqueo suave (RADIUS sigue autenticándose durante aproximadamente una semana) y finalmente un bloqueo duro bloqueo. La reactivación en cualquier etapa reinicia todos los servicios con todos los datos intactos.

¿ SAMM es gratis? ¿Qué añade Pro?

El nivel gratuito es gratis para siempre e incluye todas las funciones. Los planes de pago no desbloquean funciones: suben los límites de usuarios AAA y tarjetas Hotspot, y eliminan el límite de routers. Consulte Licencias y niveles.

Un suscriptor no puede autenticarse: ¿por dónde empiezo?

Verifique que la contraseña compartida de RADIUS en el router coincida exactamente con el registro NAS, que el router esté habilitado para RADIUS PPP / Hotspot y que la cuenta del suscriptor esté Activa y no haya expirado. Supervise journalctl -u samm-api -f y el registro de FreeRADIUS, y confirme que el router pueda alcanzar el host SAMM en UDP 1812/1813.

¿Necesita más ayuda?

Envíe un correo electrónico a [email protected] para informar de un error o solicitar una nueva función.