public

Página de presentación pública

El sistema incluye una página de presentación pública accesible en /presentacion. Esta página usa el diseño Hyperspace con la paleta de colores de Ixtanet y sirve como punto de entrada para visitantes que aún no tienen sesión iniciada.

Comportamiento

Secciones de la landing page

SecciónContenido
Inicio (hero)Descripción principal del sistema + tarjeta de vista previa del panel
CaracterísticasFacturación automática, corte con portal de aviso y monitoreo centralizado
ServiciosFacturación, cobros, tickets, instalaciones con GPS, WhatsApp, POE, reportes, zonas y modalidades prepago/postpago
SeguridadPerfiles por función, sesiones por dispositivo y cierre remoto de accesos sospechosos
Integración MikroTikSimple Queues, Address List, sincronización por zona y acceso remoto mediante WireGuard
AccesoBotón de llamado a la acción para iniciar sesión o ir al panel
info
NotaLa página de presentación no tiene acceso a datos del sistema. Es puramente informativa y no expone información de clientes ni del router.
login

Acceso al panel

El panel es accesible desde cualquier navegador en la red local (o desde internet si se configura el router).

CampoValor por defecto
URLhttp://IP_DEL_SERVIDOR:8080
Usuarioadmin
Contraseñaadmin123
warning
ImportanteCambia la contraseña por defecto inmediatamente en Ajustes → Seguridad antes de poner el panel en producción.
devices

Sesiones, dispositivos y perfiles de acceso

Cada inicio de sesión queda registrado para reconocer accesos normales y cerrar los sospechosos. Todos los perfiles pueden abrir Mis dispositivos desde la cabecera del panel y ver exclusivamente las sesiones de su propia cuenta. El administrador también dispone de la auditoría completa en Ajustes → Usuarios → Sesiones y dispositivos.

DatoPara qué sirve
Usuario y estadoIdentifica la cuenta, la sesión actual y si continúa activa o fue cerrada
IPMuestra desde qué conexión o red se accedió
DispositivoResume navegador y sistema operativo detectados
Inicio / última actividadPermite saber cuándo comenzó y cuándo se utilizó por última vez

Cada usuario puede cerrar una sesión propia concreta o elegir Cerrar mis otras sesiones para conservar únicamente el dispositivo que está usando. No puede consultar ni cerrar dispositivos de otras cuentas. El administrador sí puede auditar todas las cuentas. Cambiar, recuperar o eliminar una contraseña invalida las sesiones anteriores de esa cuenta.

Cambiar la contraseña propia

Los usuarios técnicos y de finanzas pueden actualizar su contraseña sin solicitar ayuda al administrador:

  1. Inicia sesión y, en la cabecera del panel, selecciona Cambiar contraseña.
  2. Escribe tu Contraseña actual.
  3. Escribe una Nueva contraseña de al menos 6 caracteres y repítela en Confirmar nueva contraseña.
  4. Presiona Guardar. El dispositivo actual seguirá abierto y las demás sesiones de tu cuenta se cerrarán.

El administrador debe cambiarla desde Ajustes → Usuarios, editando su propia cuenta, escribiendo la nueva contraseña en el campo Contraseña y presionando Guardar.

key
¿Olvidaste la contraseña?Usa la opción de recuperación en la pantalla de inicio de sesión. El sistema enviará un código al teléfono de WhatsApp registrado en tu cuenta.

Perfiles disponibles

PerfilAcceso principal
adminConfiguración completa, usuarios, seguridad y todas las operaciones
tecnicoClientes, instalaciones, red y atención de tickets; sin funciones financieras
finanzasFacturación, cobros, recibos y cartera; sin configuración técnica
tecnico_cobradorCombina las tareas de técnico y cobrador sin otorgar permisos de administrador

Asignar uno o varios sitios

En Ajustes → Usuarios, al crear o editar una cuenta puedes mantener Acceso a todos los sitios o desmarcarlo y seleccionar una o varias zonas. El administrador siempre conserva acceso global.

security
Si no reconoces un accesoCierra esa sesión, cambia de inmediato la contraseña del usuario y revisa la IP y la última actividad registradas.
people

Tab Clientes (directorio + cartera + monitor)

La pestaña Clientes usa una lista compacta, igual que la demostración, para localizar personas con rapidez. Cada tarjeta muestra el estado online/offline, la deuda y los datos esenciales. Al pulsar Ver cliente se abre una ficha separada con sus acciones y cobros reales.

Chips de filtro

Cuatro chips en la parte superior filtran la vista al instante:

ChipMuestra
TodosTodos los clientes registrados
En MoraSolo clientes con facturas pendientes
SuspendidosSolo clientes cortados en MikroTik
En LíneaSolo clientes activos en ARP del router

Tarjeta de cliente

Cada cliente se muestra como una tarjeta con:

Búsqueda

El buscador propio de Clientes filtra las tarjetas por nombre, teléfono, IP, dirección o zona. Los chips se pueden combinar con la búsqueda y con el selector Todas las zonas, que también permite encontrar clientes sin zona asignada.

El selector de orden permite acomodar los resultados por nombre de A a Z o de Z a A, mayor o menor deuda, y por zona. A la derecha se muestra cuántos clientes cumplen todos los filtros aplicados. En celulares estos controles se acomodan verticalmente para facilitar su uso.

Las opciones de exportación, importación, cortes y suspensión manual están agrupadas en Herramientas para mantener la pantalla despejada.

Campos del cliente

CampoDescripciónRequerido
NombreIdentificador único del cliente (clave primaria)
IPDirección IP asignada al clienteSí para corte
TeléfonoNúmero WhatsApp (sin código de país si está configurado globalmente)Opcional
DirecciónDirección física del clienteOpcional
PlanPlan de servicio (rellena velocidad y monto automáticamente)Sí para facturar
Monto mensualCuota individual (puede diferir del plan)Sí para facturar
Límite facturasNro. de facturas pendientes antes del corte automático (default: 3)Opcional
ZonaZona / nodo al que pertenece el cliente. Determina qué MikroTik gestiona sus colas y cortes.Opcional
info
Al guardar un cliente con IP y plan asignados, el panel crea o actualiza automáticamente la cola Simple Queue en MikroTik. No necesitas entrar al router.

Importar desde CSV

Usa el botón Importar CSV para cargar tu directorio existente. El archivo debe tener columnas: nombre, ip, telefono, direccion, monto_mensual, velocidad_mbps.

add_circle

Nueva instalación de cliente

Cuando conectas un cliente nuevo, sigue estos pasos en el panel:

1

Registrar el cliente

En el tab Clientes, abre Nueva Instalación. Llena nombre, IP asignada y teléfono; selecciona el plan y la Zona / Nodo donde se conectará el cliente.

En la lista de instalaciones, toca el nombre de una instalación completada para ir directamente a la ficha expandida de ese cliente en el panel.

2

Cola MikroTik creada automáticamente

Al guardar, el panel crea la Simple Queue en el router con el ancho de banda del plan. No necesitas entrar al router.

3

Verificar en el mismo tab

El cliente aparece en la grilla. Usa el chip En Línea para verificar que ya tiene punto verde si está conectado.

map

Mapa móvil para recorridos

Desde Mapa, el cobrador puede activar Mi ubicación y ver los clientes ordenados por distancia. En celulares, la lista inferior permite buscar por nombre, dirección o zona y filtrar Con deuda o Cerca de mí (hasta 5 km).

gps_fixed
El teléfono debe permitir acceso a la ubicación y el cliente debe tener coordenadas GPS guardadas para aparecer en el mapa.
receipt_long

Facturación

Facturación masiva automática

El sistema genera facturas automáticamente el día configurado en Ajustes → Facturación. No requiere intervención.

Facturación masiva manual

En la pestaña Facturas, el botón "Facturar todos" genera facturas pendientes para todos los clientes con monto > 0. Es idempotente: si ya existe la factura del mes actual, no crea una duplicada.

Facturación por tipo de zona (Prepago / Postpago)

El concepto de cada factura generada automáticamente depende del tipo de cobro configurado en la zona del cliente:

Tipo de zonaConcepto generadoEjemplo (ejecución 1 jun 2026)
PostpagoServicio del mes en curso“Servicio Junio 2026”
PrepagoServicio del mes siguiente“Servicio Julio 2026”

Los clientes sin zona asignada son tratados como postpago.

Factura individual

En la pestaña Facturas → Emitir Factura Individual, selecciona el cliente y genera la factura si lo necesitas fuera del ciclo normal.

warning
Clientes sin montoSi un cliente tiene monto_mensual = 0, no se le generan facturas automáticas. Asegúrate de asignar un plan o monto.
payments

Cobros y pagos

El flujo guiado de pagos está disponible dentro de la ficha de cada cliente. Permite cobrar una factura, varias o toda la deuda en una sola operación.

Cobrar una factura

1

Abrir la ficha

En Clientes, pulsa Ver cliente y después Registrar pago.

2

Seleccionar y revisar

Selecciona una factura, varias o Pagar toda la deuda. El panel calcula el monto; elige el método y pulsa Continuar para revisar el resumen.

3

Recibo y WhatsApp

Después de confirmar, el recibo se abre y muestra automáticamente el diálogo de impresión. Si el cliente tiene teléfono registrado, el PDF también se envía por WhatsApp. Los botones Ver recibo y Enviar por WhatsApp permanecen disponibles para repetir cualquiera de las acciones.

4

Reactivación automática

Si el cliente estaba suspendido y al pagar baja su deuda por debajo del límite, se reactiva automáticamente en el router.

Liquidar toda la deuda

Dentro de Registrar pago, pulsa Pagar toda la deuda. Todas las facturas quedarán seleccionadas y podrás revisar el total antes de confirmar.

Pagar y dar de baja el servicio

Si el cliente únicamente llega a cancelar lo que debe y ya no continuará, en Después del pago selecciona Paga su deuda y ya no continuará. El panel exige liquidar toda la deuda, conserva el historial, marca al cliente como Retirado, corta el acceso y deja de generar nuevas mensualidades.

Reconectar aunque todavía tenga deuda

En la ficha de un cliente suspendido con deuda aparece Reconectar junto a un selector de 1, 3, 7 o 15 días. La deuda no se elimina ni se marca como pagada; solamente se concede acceso temporal. Cuando vence el plazo, el siguiente control de cortes vuelve a suspenderlo si continúa sobre su límite.

Historial de pagos

La pestaña Pagos muestra todos los cobros registrados con fecha, monto y método. Cada pago tiene tres acciones rápidas:

BotónAcción
print ImprimirAbre el recibo en formato imprimible en una nueva pestaña
picture_as_pdf PDF WhatsAppGenera el recibo con el anuncio del servicio de TV y lo envía al número del cliente vía WhatsApp. Requiere configurar la URL de documentos en Ajustes → WhatsApp.
delete EliminarElimina el registro de pago y revierte la factura a estado Pendiente
support_agent

Tickets de soporte

La pestaña Soporte centraliza incidencias de clientes, seguimiento interno y resolución. Cada ticket guarda el cliente, la categoría, la prioridad, comentarios y estado de atención.

Los tickets no se eliminan al cerrarlos: quedan como historial permanente en la ficha del cliente. En Clientes → Ver cliente → Tickets anteriores se muestran hasta los últimos 100 reportes con fecha, estado, descripción, técnico asignado, comentarios y fecha de cierre.

history
Reclamos por anomalías — Si un cliente indica que reportó una falla y no desea pagar, consulta sus tickets anteriores. Registra el reporte como Anomalía del servicio y documenta en comentarios las pruebas, visitas, solución y acuerdos. El historial sirve como respaldo operativo; no modifica ni elimina facturas automáticamente.

Flujo básico

1

Crear ticket

Desde Soporte → Nuevo Ticket, registra el cliente, título, descripción, categoría y prioridad.

2

Asignar seguimiento

Los administradores pueden asignar el ticket a un técnico y agregar comentarios durante la atención.

3

Cerrar y notificar

Al cerrar el ticket, el sistema marca el caso como resuelto y envía una notificación por WhatsApp al cliente si tiene teléfono registrado.

Campos del ticket

CampoDescripción
ClienteNombre del cliente afectado
TítuloResumen corto del problema
DescripciónDetalle completo de la incidencia
CategoríaSoporte técnico, facturación, cambios de servicio, problema general o mantenimiento
PrioridadBaja, Normal, Alta o Urgente
EstadoAbierto, En progreso, Resuelto o Cerrado
ComentariosHistorial de seguimiento por usuario
info
PermisosLos roles admin, tecnico y tecnico_cobrador pueden crear y comentar tickets. El cierre y la asignación quedan restringidos al administrador.
event_available

Pago adelantado

Permite registrar el pago de uno o varios meses futuros de un cliente. Las facturas se crean directamente con estado Pagada y la facturación automática las saltará cuando llegue su fecha.

Cómo registrar un pago adelantado

1

Abrir el modal

En la tarjeta del cliente (tab Clientes), haz clic en el botón Adelantar (ícono de calendario verde).

2

Indicar cuántos meses

Escribe el número de meses a adelantar (mínimo 1, máximo 12) y selecciona el método de pago: Efectivo, Transferencia o Tarjeta.

3

Confirmar

Haz clic en Confirmar. El sistema crea N facturas con estado Pagada y N registros de pago vinculados. Si WhatsApp está activo, se envía un mensaje de confirmación al cliente.

¿Desde qué mes empieza?

El sistema toma como punto de partida la última factura registrada del cliente y genera los meses siguientes. Ejemplo:

Última facturaMeses adelantadosFacturas creadas
Mayo 20263Junio · Julio · Agosto 2026
Diciembre 20262Enero · Febrero 2027

Efecto en la facturación automática

Cuando el scheduler genera la facturación mensual, verifica si ya existe una factura del mes para ese cliente. Como las facturas adelantadas ya existen (aunque sean Pagadas, el concepto del mes coincide), no se duplican.

check_circle
Sin riesgo de duplicadosLa facturación automática es idempotente: nunca genera dos facturas del mismo concepto en el mismo mes para el mismo cliente.
info
PermisosEl botón Adelantar es visible para los roles admin, finanzas y tecnico_cobrador. El rol tecnico no puede registrar pagos adelantados.
contact_page

Actualización obligatoria de datos antes de cobrar

Cuando esta opción está activa, el sistema verifica que el teléfono y la dirección del cliente estén actualizados antes de registrar cualquier cobro. Si alcanzaron el período mensual configurado, aparece un modal pidiendo confirmar o corregir la información.

Configurar el período

1

Ir a Ajustes → Automatización

En el campo "Actualización de datos cada (meses)", elige de 1 a 12 meses. El sistema compara meses calendario completos, no una cantidad aproximada de días.

2

Guardar

Haz clic en Guardar configuración. El cambio aplica de inmediato — no requiere reiniciar el servidor.

info
0 = desactivado — Si el período es 0, el sistema nunca solicita actualización y el cobro procede directamente.

¿Cómo funciona al cobrar?

Al hacer clic en cualquier botón de cobro (factura individual, cobrar total o desde la pestaña Facturas), el panel consulta /api/check_actualizacion/<nombre> antes de enviar el formulario:

ResultadoComportamiento
necesita: falseEl cobro procede normalmente sin interrupción
necesita: trueSe abre el modal "Actualizar datos del cliente"

Modal de actualización

El modal muestra el nombre del cliente (no editable), el teléfono actual y la dirección actual, listos para confirmar o corregir. Al hacer clic en "Guardar y Cobrar":

  1. Se guardan los datos actualizados del cliente (POST /api/actualizar_datos_cliente)
  2. También puedes confirmar o cambiar la Zona / Nodo del cliente antes de cobrar.
  3. Se actualiza ultima_actualizacion en la base de datos
  4. Se envía el formulario de cobro original automáticamente
check_circle
Sin bloqueo de cobros — Si hay un error de red al verificar, el cobro procede de todas formas. La verificación nunca impide cobrar por falla técnica.

¿Cuándo se reinicia el contador?

La fecha de ultima_actualizacion se actualiza en dos momentos:

block

Cortes y suspensiones

Corte automático

El sistema evalúa el estado del cliente cada vez que se crea o cobra una factura. Si las facturas pendientes superan el límite configurado (por defecto 3), el cliente es suspendido automáticamente en MikroTik.

warning
Corte inmediato en zonas prepago — Los clientes de zonas configuradas como prepago son cortados en cuanto acumulan 1 factura pendiente, independientemente del límite individual del cliente.
info
El corte agrega la IP a clientes_suspendidos, coloca automáticamente las reglas de bloqueo antes de FastTrack y cierra las conexiones activas para que la suspensión sea inmediata.

Los clientes antiguos que todavía no tienen una zona asignada se administran desde la primera zona configurada. Al usar Exportar reglas en esa zona también se sincronizan esos clientes.

Corte manual

En la pestaña Clientes, cada tarjeta tiene el botón Cortar para suspender manualmente sin importar la deuda. También hay un formulario rápido con el botón Suspender manual en la barra de herramientas.

Reactivación

Al cobrar suficientes facturas para bajar la deuda por debajo del límite, el sistema reactiva automáticamente al cliente. También puedes reactivar manualmente con el botón Reactivar en la tarjeta del cliente (tab Clientes).

Corte masivo

El día de corte configurado en Ajustes, el job automático de las 6 AM evalúa a todos los clientes y aplica suspensiones masivas según su deuda acumulada.

AcciónEfecto en MikroTik
SuspenderIP agregada a clientes_suspendidos
Activar / pagarIP eliminada de clientes_suspendidos
monitor_heart

Monitoreo de clientes y red

LibreNMS es la fuente del estado visible de disponibilidad. El panel evita consultar continuamente cada cliente desde MikroTik, reduciendo trabajo en los routers incluso cuando la red crece a cientos o miles de abonados.

Usa el botón LibreNMS de la cabecera o la tarjeta Monitoreo de red de Inicio. Se abrirá el servidor dedicado, donde puedes consultar disponibilidad, CPU, memoria, interfaces, tráfico y gráficas históricas.

La pestaña Clientes muestra un bloque rojo únicamente cuando el último sondeo de LibreNMS marca clientes sin respuesta. Las caídas se ordenan por nombre, se acomodan en dos columnas en computadora y en una columna en celular. Para conservar espacio se muestran primero 5 clientes; usa Ver caídas más para desplegar el resto. El badge indica cuántas caídas existen y se actualiza cada minuto. Una caída permanece visible hasta que un sondeo posterior confirme la recuperación; entonces aparece la alerta verde Conexión recuperada. La primera consulta solo establece la línea base y no repite avisos antiguos. Los clientes nuevos con IP válida se sincronizan con LibreNMS cada hora.

verified
Protección contra falsas alarmasUna lectura incompleta del router o un fallo temporal de monitoreo no debe interpretarse como una caída real de todos los clientes. Las incidencias generales se agrupan y se evita enviar mensajes individuales masivos.
check_circle
El servidor y el MikroTik principal ya están registrados mediante SNMP de solo lectura. LibreNMS ejecuta descubrimiento y sondeo automáticamente.
notifications

Sistema de notificaciones

La campana combina las notificaciones administrativas de facturación, cobros, suspensiones, reactivaciones y errores de WhatsApp con las caídas activas y reconexiones detectadas por LibreNMS. Cada cliente caído aparece con su nombre e IP; cuando vuelve a estar en línea se retira de las caídas y se agrega un evento verde de recuperación.

Tipos de notificaciones

TipoColorCuándo se genera
Cliente suspendidodangerAl aplicar corte automático o manual
Cliente reactivadosuccessAl cobrar y reactivar automáticamente
Facturación completadainfoAl terminar la facturación masiva diaria
Corte masivo ejecutadowarningAl terminar el corte masivo del día de corte

Historial

Haz clic en la campana para ver primero las caídas activas y después las últimas 50 notificaciones administrativas. Abrir la campana marca como leídos los avisos administrativos, pero el contador de caídas permanece visible mientras existan clientes sin conexión.

dashboard

Dashboard

La pestaña Inicio muestra métricas administrativas y un acceso directo a LibreNMS.

MétricaDescripciónFrecuencia
Clientes al díaSin facturas pendientesEn cada carga
Clientes en moraCon al menos una factura pendienteEn cada carga
Monitoreo de redAbre LibreNMS en una pestaña nuevaBajo demanda
Total clientesTotal registrados en la DBEn cada carga
router

Integración MikroTik

El panel se conecta al router MikroTik vía API RouterOS (puerto 8728 por defecto). Soporta RouterOS 6 y 7.

Configurar la conexión

1

Habilitar API en MikroTik

En Winbox: IP → Services → api — asegúrate de que esté habilitado (puerto 8728).

2

Ingresar credenciales en Ajustes

En el panel: Ajustes → MikroTik. Llena IP/host, usuario y contraseña del router.

3

Configurar firewall para cortes

Agrega una regla en MikroTik: IP → Firewall → Filter — bloquear tráfico forward desde src-address-list=clientes_suspendidos.

warning
Si el router no respondeEl panel muestra la página error_router.html con botón para reintentar. Los datos de clientes en la DB siguen accesibles aunque el router esté apagado.
wifi_off

Portal de Suspensión

Cuando un cliente está suspendido, cualquier página web que intente visitar (HTTP) es redirigida automáticamente a una página personalizada que muestra su nombre, el total adeudado, sus facturas pendientes, datos de contacto y métodos de pago.

Cómo funciona

El sistema usa el Web Proxy de MikroTik (RouterOS), que intercepta el tráfico HTTP y envía al cliente un redirect HTTP 302 a la URL del portal con su nombre incluido:

link
http://<IP_PANEL>/portal/suspendido/NOMBRE_CLIENTE

Lo que ocurre al suspender un cliente:

  1. La IP del cliente se agrega a clientes_suspendidos (address-list del firewall).
  2. El panel habilita el Web Proxy en MikroTik (/ip/proxy enabled=yes) si no estaba activo.
  3. Se crea (si no existe) la regla NAT que redirige el tráfico HTTP de clientes suspendidos al proxy.
  4. Se agrega una regla en /ip/proxy/access para esa IP específica con action=redirect a la URL del portal.
  5. Se cierran las conexiones activas del cliente para evitar que FastTrack mantenga tráfico anterior al corte.

Al reactivar, la regla del web proxy se elimina automáticamente.

Configurar en Ajustes

CampoDescripción
IP del PanelIP de este servidor accesible desde los clientes (ej. 10.1.9.17). Es la IP que aparecerá en la URL del portal.
Puerto ProxyPuerto del Web Proxy en MikroTik. Default 8080. WispHub usa 999. Debe coincidir con lo configurado en el router.
Contenido del PortalEditor visual para personalizar dirección, horario, correo, métodos de pago, formato, listas y enlaces sin escribir HTML.

Lo que ve el cliente

warning
Solo funciona con HTTP (puerto 80). El Web Proxy de RouterOS no intercepta HTTPS. Los clientes que escriban https:// o visiten sitios HTTPS verán un error de conexión normal. Para una experiencia completa, el cliente debe intentar visitar un sitio HTTP primero — los navegadores modernos intentan HTTP antes de HTTPS al escribir una URL sin protocolo.
info
No necesitas ejecutar “Exportar Reglas” primero. Al suspender el primer cliente, el panel configura el Web Proxy y la regla NAT automáticamente. “Exportar Reglas” sigue siendo útil para sincronización masiva después de un reset del router.
cloud_sync

Exportar MikroTik

El botón "Exportar MikroTik" en la pestaña Clientes sincroniza todos los clientes al router como Simple Queues. Si tienes varias Zonas configuradas, la exportación agrupa los clientes por zona y sincroniza cada router por separado — todo en un solo clic.

Úsalo cuando:

Clientes sin plan asignado

Si algún cliente tiene velocidad_mbps = 0, el sistema muestra un modal para asignar plan antes de exportar.

Clientes sin cola en el router

Si un cliente existe en la DB pero no tiene cola en MikroTik (nunca fue instalado), aparece en la lista "Sin cola". Debes crear la cola manualmente o registrar la instalación del cliente con una IP válida.

Colas dinámicas

MikroTik genera colas dinámicas para conexiones DHCP y PPPoE (nombres como <pppoe-oficina> o dhcp-ds<MAC>). Estas colas no se pueden editar. El panel las detecta y las salta automáticamente durante la exportación — no generan error.

check_circle
Soporte multi-zona — Si tienes varias zonas configuradas, la exportación agrupa los clientes por zona y sincroniza cada router por separado en un solo clic. Ver sección Zonas / Nodos Starlink.
cell_tower

Zonas / Nodos Starlink

El sistema de zonas permite gestionar múltiples routers MikroTik simultáneamente. Cada zona representa un nodo de red — por ejemplo, cada enlace Starlink con su propio MikroTik. Cada cliente se asigna a una zona y todas las operaciones (colas, cortes, reactivaciones, exportaciones) se ejecutan automáticamente en el router de esa zona.

check_circle
Retrocompatible — Los clientes sin zona asignada siguen usando el router principal configurado en Ajustes → MikroTik. No necesitas migrar todo de golpe.

Crear una zona

1

Ir a Ajustes → Zonas / Nodos Starlink

En la sección de Zonas de la página de Ajustes, haz clic en Agregar Zona.

2

Llenar los datos de la zona

Ingresa el nombre (ej. "Starlink Norte"), el host/IP del MikroTik de esa zona — puede ser una IP WireGuard si está detrás de Starlink —, el usuario, la contraseña y una descripción opcional.

3

Probar la conexión

Usa el botón Probar junto a la zona. El sistema se conecta al router y devuelve la versión de RouterOS. Si falla, verifica IP, credenciales y que la API (puerto 8728) esté habilitada.

4

Asignar clientes a la zona

Al editar o crear un cliente, el formulario muestra un selector de zona (visible si hay al menos una zona creada). Elige la zona correspondiente y guarda.

Comportamiento por operación

OperaciónComportamiento con zonas
Crear / editar clienteLa cola Simple Queue se crea/actualiza en el router de la zona del cliente
Corte automático / manualLa IP se agrega a clientes_suspendidos en el router de la zona
ReactivarLa IP se elimina de clientes_suspendidos en el router correcto
Exportar MikroTikLos clientes se agrupan por zona y se sincroniza cada router por separado en un solo clic
Monitor (cada 1 min)Se consultan ARP y colas de todos los routers y se fusionan en la vista unificada
Check de estado en vivoEl dashboard muestra clientes online de todos los routers combinados

Badge de zona en el directorio

Cada tarjeta de cliente muestra el nombre de su zona bajo el nombre del cliente con el ícono de antena cell_tower. Si la zona es prepago, también se muestra el badge PREPAGO. Esto permite identificar a qué nodo y modelo de cobro pertenece cada cliente de un vistazo.

Tipo de cobro: Prepago vs Postpago

Cada zona puede configurarse como postpago (predeterminado) o prepago. Esto cambia el comportamiento de la facturación automática y el umbral de corte para todos los clientes de esa zona.

AspectoPostpago (default)Prepago
Concepto de facturaMes en curso (ej. “Servicio Mayo 2026”)Mes siguiente (ej. “Servicio Junio 2026”)
Cuándo se generaAl inicio del mes actualAl inicio del mes actual (para cubrir el mes siguiente)
Límite para corte automáticoEl configurado en el cliente (default 3)1 — corte inmediato con 1 factura pendiente
Badge en directorioPREPAGO

Configurar el tipo de cobro de una zona

1

Abrir el modal de la zona

En Ajustes → Zonas, haz clic en el botón Editar de la zona que deseas configurar.

2

Seleccionar el tipo de cobro

En el campo “Tipo de cobro”, elige entre Postpago — factura mes actual o Prepago — factura mes siguiente (pago anticipado).

3

Guardar

Haz clic en Guardar. El cambio aplica en el próximo ciclo de facturación automática.

warning
Corte inmediato en prepago — Al configurar una zona como prepago, los clientes de esa zona serán cortados en MikroTik tan pronto acumulen 1 factura pendiente, independientemente del límite configurado en el cliente individual.

Gestión de zonas

AcciónDescripción
EditarActualiza nombre, host, usuario y descripción. La contraseña solo se cambia si se escribe una nueva en el modal.
ProbarVerifica la conexión al MikroTik de la zona en tiempo real y muestra la versión de RouterOS.
EliminarElimina la zona. Los clientes asignados quedan sin zona (pasan a usar el router principal). El tipo de cobro también se pierde.
info
WireGuard recomendado para Starlink — Los routers detrás de Starlink usan CGNAT y no tienen IP pública fija. Usa WireGuard para alcanzarlos. Una vez activo el túnel, usa la IP WireGuard del router como host de la zona. Consulta la sección MikroTik remoto (WireGuard) para el procedimiento completo.
cable

Powerbox POE

Monitoreo de switches MikroTik con puertos POE. El link Powerbox POE solo aparece en el menú si tienes al menos un switch registrado.

Agregar un switch POE

Ve a Ajustes → Powerbox POE y registra el switch con su nombre y datos de conexión al router. Desde ese momento el panel tomará lecturas cada 5 minutos.

Información por puerto

DatoDescripción
Voltaje (V)Tensión en el puerto POE
Corriente (mA)Corriente consumida
Potencia (W)Potencia activa = V × mA
EstadoActivo · Esperando · Falla · Deshabilitado

Historial gráfico

Selecciona el período: diario, semanal, mensual o trimestral. Los datos se muestrean cada 5 minutos.

hub

MikroTik remoto detrás de Starlink (WireGuard)

Si tienes routers MikroTik en ubicaciones remotas que se conectan a internet vía Starlink, no tienen IP pública fija (CGNAT). El panel no puede alcanzarlos directamente. La solución es crear una VPN WireGuard donde el servidor del panel actúa de hub y cada MikroTik se conecta como cliente.

info
Requisito — El servidor donde corre el panel sí debe tener IP pública (o un dominio DDNS apuntando a él). Los MikroTik detrás de Starlink solo necesitan salida a internet.

Arquitectura

NodoIP WireGuardRol
Servidor del panel10.200.0.1Hub VPN (siempre accesible)
MikroTik 1 (Starlink A)10.200.0.2Peer VPN / router de clientes
MikroTik 2 (Starlink B)10.200.0.3Peer VPN / router de clientes

Paso 1 — Instalar WireGuard en el servidor Linux

1

Instalar y generar llaves

apt install wireguard -y
cd /etc/wireguard

# Llave del servidor
wg genkey | tee server_priv | wg pubkey > server_pub

# Una llave por cada MikroTik
wg genkey | tee mt1_priv | wg pubkey > mt1_pub
wg genkey | tee mt2_priv | wg pubkey > mt2_pub
2

Crear /etc/wireguard/wg0.conf

[Interface]
Address = 10.200.0.1/24
ListenPort = 51820
PrivateKey = <contenido de server_priv>

# MikroTik 1
[Peer]
PublicKey = <contenido de mt1_pub>
AllowedIPs = 10.200.0.2/32

# MikroTik 2
[Peer]
PublicKey = <contenido de mt2_pub>
AllowedIPs = 10.200.0.3/32
3

Activar la VPN y abrir el puerto

systemctl enable --now wg-quick@wg0
ufw allow 51820/udp

Paso 2 — Configurar WireGuard en cada MikroTik (RouterOS 7)

Ejecuta esto en la terminal de cada MikroTik (Winbox → Terminal o SSH). Reemplaza los valores entre < >:

# ── MikroTik 1 (repite en MikroTik 2 cambiando la IP a 10.200.0.3) ──

/interface/wireguard/add \
    name=wg-panel \
    listen-port=13231 \
    private-key="<contenido de mt1_priv>"

/interface/wireguard/peers/add \
    interface=wg-panel \
    public-key="<contenido de server_pub>" \
    endpoint-address=<IP_PUBLICA_SERVIDOR> \
    endpoint-port=51820 \
    allowed-address=10.200.0.0/24 \
    persistent-keepalive=25

/ip/address/add address=10.200.0.2/24 interface=wg-panel
check_circle
Verificar el túnel — Desde el servidor: ping 10.200.0.2 y ping 10.200.0.3. Si responden, el túnel está activo.

Paso 3 — Habilitar API en cada MikroTik

El panel se conecta a los routers vía la API RouterOS (puerto 8728). Asegúrate de que la API esté habilitada y acepte conexiones desde la VPN:

/ip/service/set api disabled=no
# Opcional: restringir a solo la IP del servidor VPN
/ip/service/set api address=10.200.0.1/32

Paso 4 — Apuntar el panel al router remoto

Una vez activo el túnel, el router responde en su IP WireGuard. Para operarlo desde el panel:

  1. Ve a Ajustes → MikroTik
  2. Cambia el Host a la IP WireGuard del router deseado (ej. 10.200.0.2)
  3. Ingresa usuario y contraseña del router remoto
  4. Guarda — el panel apuntará a ese router
check_circle
Multi-router nativo disponible — El panel soporta múltiples routers simultáneamente a través del sistema de Zonas. Una vez activo el túnel WireGuard, crea una zona en Ajustes → Zonas con la IP WireGuard del router remoto y asigna los clientes correspondientes. Consulta la sección Zonas / Nodos Starlink.

¿Por qué persistent-keepalive?

Starlink usa CGNAT, lo que significa que el NAT cierra sesiones UDP inactivas. El parámetro persistent-keepalive=25 hace que el MikroTik envíe un paquete al servidor cada 25 segundos, manteniendo el túnel siempre abierto aunque no haya tráfico real de clientes.

settings

Ajustes generales

Los ajustes están organizados en pestañas. Selecciona una categoría en la barra superior para ver solamente sus opciones; la última pestaña utilizada queda recordada para la próxima visita.

SecciónQué configura
EmpresaNombre de la empresa y teléfono de contacto
MikroTikIP/host, usuario y contraseña del router
UsuariosCuentas con perfil administrador, técnico, finanzas o técnico-cobrador
SeguridadContraseñas, sesiones activas, IP, dispositivo, última actividad y cierre remoto
FacturaciónDía del mes para generar facturas, día de corte, concepto mensual
AutomatizaciónPeríodo de actualización obligatoria de datos del cliente antes de cobrar (0 = desactivado)
WhatsAppURL de API, método, headers y cuerpo del mensaje
SMTPServidor de correo para backups automáticos
PlanesPlanes de servicio con velocidad y monto
PublicidadAnuncio configurable que aparece en los recibos impresos y PDF
Zonas / Nodos StarlinkRouters MikroTik adicionales. Cada zona tiene host, usuario y contraseña propios, y define el tipo de cobro (postpago o prepago) para sus clientes. Los clientes se asignan a una zona para que sus operaciones usen el router correcto.
campaign

Publicidad en recibos

En Ajustes → Publicidad puedes cambiar el anuncio que aparece al final de cada recibo impreso y PDF.

OpciónFunción
Mostrar publicidadActiva o desactiva completamente el anuncio
Mostrar imagen de TVPermite usar solo texto cuando se imprime con poco espacio o en blanco y negro
Elegir imagenCarga una imagen PNG, JPG o WebP de hasta 3 MB y muestra una vista previa antes de guardar
Restaurar originalVuelve a utilizar la imagen de TV incluida con el panel
TítuloFrase principal y destacada del anuncio
Editor visualAplica negrita, cursiva, subrayado, alineación, listas y enlaces sin escribir HTML

La vista previa cambia mientras escribes. Presiona Guardar Ajustes para aplicar el anuncio a los siguientes recibos.

sell

Planes de servicio

Los planes se administran en Ajustes → Planes de Servicio. Cada plan tiene:

Al seleccionar un plan en el formulario de cliente, se rellenan automáticamente velocidad y monto.

chat

Integración WhatsApp

El panel puede enviar mensajes a través de cualquier API de WhatsApp (CallMeBot, UltraMsg, Twilio, etc.).

Configuración

En Ajustes → WhatsApp:

CampoDescripción
URLEndpoint de tu API de WhatsApp
MétodoGET o POST según tu proveedor
HeadersJSON con cabeceras (ej. {"apikey": "xxx"})
Body templateCuerpo del mensaje con variables {cliente}, {monto}, {count}
Código de paísSe agrega como prefijo al teléfono del cliente (ej. 502 para Guatemala)

Cuándo se envían mensajes

Envío de recibo PDF

El botón PDF en cada fila de la pestaña Pagos genera el recibo en PDF y lo envía vía API. Para usarlo, configura:

Campo en AjustesDescripción
URL documentos PDFEndpoint para enviar documentos (ej. Evolution API: https://tu-servidor/message/sendMedia/INSTANCIA)
Body PDF (JSON)Template JSON con comodines: {destinatario}, {documento_base64}, {filename}

Los headers y el método se heredan de la configuración principal de WhatsApp.

Si WhatsApp falla

Los errores de envío no bloquean el cobro. El pago se registra igualmente y el detalle completo del error de la API aparece en la campana de notificaciones con el título "Fallo WA — [nombre del cliente]".

warning
Connection ClosedSi el error dice "Connection Closed", la instancia de WhatsApp en tu servidor Evolution API está desconectada. Entra al panel de Evolution, busca tu instancia y reconecta escaneando el código QR.

Recordatorios masivos — prevenir bloqueo de cuenta

WhatsApp puede detectar como spam los envíos repetitivos o demasiado rápidos. El sistema reduce el riesgo con una cola de envío: aplica una pausa aleatoria mínima de 12 segundos, descansa de 3 a 5 minutos después de cada lote de 20 mensajes, varía el cierre y registra cada destinatario enviado para no repetirlo durante el mismo mes.

Práctica recomendadaDetalle
Pausa entre mensajesConfigurable; el sistema exige al menos 12 s y recomienda 15–30 s
Descanso por lote3–5 minutos después de cada 20 mensajes enviados
Protección ante erroresDetiene la campaña ante señales de límite/bloqueo o 3 errores consecutivos
Sin duplicadosUn cliente enviado correctamente no recibe nuevamente el recordatorio durante ese mes
Mensaje personalizadoUsa {cliente} en el template para que cada mensaje sea único
Evitar palabras bloqueadasNo uses "gratis", "promoción", "ganar" ni URLs acortadas
Número verificadoUsa WhatsApp Business con número registrado a nombre de la empresa
info
Importante — Estas medidas reducen el riesgo, pero no pueden garantizar que WhatsApp no limite una cuenta. Usa WhatsApp Business, mensajes útiles para clientes que aceptaron recibirlos y evita volver a enviar manualmente la misma campaña.
backup

Backup automático

El sistema puede enviar una copia de la base de datos por correo electrónico de forma automática.

Configura el servidor SMTP en Ajustes → SMTP con host, puerto, usuario y contraseña. Selecciona la frecuencia (diaria, cada 3 días, semanal).

check_circle
También puedes exportar los clientes y deudas en cualquier momento desde el Directorio en formato CSV.
schedule

Automatización (scheduler)

El panel ejecuta 2 tareas automáticas propias. LibreNMS ejecuta por separado sus tareas de descubrimiento y sondeo:

JobFrecuenciaQué hace
job_diarioCada día a las 6:00 AMFacturación masiva (postpago: mes actual; prepago: mes siguiente) + corte automático + recordatorios WA del último día del mes
job_muestreo_poeCada 5 minutosRegistra lecturas POE por puerto en los switches
info
El scheduler arranca automáticamente con la aplicación. No requiere cron externo ni configuración adicional.
help

Preguntas frecuentes

¿Qué pasa si el MikroTik se apaga?

El panel sigue funcionando. Los datos de clientes, facturas y pagos están en la base de datos local (SQLite). Al volver el router, usa Exportar MikroTik para resincronizar las colas.

¿Puedo tener varios routers MikroTik?

Sí. El panel soporta múltiples routers simultáneamente mediante el sistema de Zonas. Crea una zona por router en Ajustes → Zonas / Nodos Starlink, ingresa las credenciales de cada MikroTik y asigna los clientes a su zona correspondiente. Si los routers están detrás de Starlink (CGNAT), conéctalos al servidor con WireGuard VPN y usa la IP del túnel como host de la zona. Consulta la sección Zonas / Nodos Starlink y MikroTik remoto (WireGuard) del manual.

¿Cómo actualizo el panel?

cd ~/panel-isp-ixtanet
bash start.sh

El script de inicio hace git pull automáticamente y reinicia la aplicación.

¿Dónde está la base de datos?

Archivo pagos.db en la carpeta del proyecto. Es un SQLite estándar — puedes abrirlo con cualquier cliente SQLite (DB Browser, TablePlus, etc.).

¿Por qué me llegó la misma notificación varias veces?

Ocurre si el servidor fue iniciado más de una vez sin detener el proceso anterior, generando múltiples schedulers. Solucionado con bash start.sh que mata procesos previos antes de arrancar.

¿Dónde reviso si un router o enlace está fuera de línea?

Abre LibreNMS desde la cabecera del panel. Allí se centralizan la disponibilidad, interfaces, tráfico, CPU, memoria y gráficas históricas.

¿Puedo acceder desde el celular?

Sí. La interfaz es responsive y funciona bien en dispositivos móviles. Las tarjetas de clientes, facturas y pagos se adaptan a pantallas pequeñas. Asegúrate de acceder desde la red local o configurar acceso remoto en tu router.

¿Cómo importo clientes desde WispHub?

Descarga el backup desde WispHub (CSV de clientes + historial de pagos). Copia los archivos a la carpeta del proyecto y ejecuta en la terminal:

python _importar_wisphub.py

El script importa clientes, facturas y pagos; y agrega columnas extra a la tabla clientes: ip, cedula, fecha_instalacion, id_wisphub, zona. Edita la ruta del backup dentro del script antes de ejecutarlo.

La deuda pendiente muestra un monto muy alto

Si importaste historial desde otro sistema, la DB contiene facturas pendientes de años anteriores. El dashboard filtra la deuda al año actual para mostrar solo lo relevante. El historial completo sigue disponible en la pestaña Facturas.


Panel ISP  ·  Datos 100% locales  ·  Sin dependencias de nube