El tema seleccionado se aplica en todas las páginas del sistema.
Verde Sabai
Activo
Océano
Activo
Clic para activar
Terracota
Activo
Clic para activar
Logos de la Empresa
Sube dos versiones del logo: Oscuro (logo claro/blanco, para fondos de color)
y Claro (logo oscuro/coloreado, para fondos blancos como las facturas).
Luego elige cuál usar en cada ubicación.
Logo Oscuro
(blanco/claro — para fondos de color)
Logo Claro
(oscuro/coloreado — para fondos blancos)
¿Qué logo mostrar en cada lugar?
Porcentajes de IVA
Define las tasas de IVA que el sistema usará en facturas y prefacturas.
El administrador puede activar/desactivar el modo feriado desde la página de Administración.
Productos sin check "Con IVA" en gestión de menú
Productos con check, modo normal
Productos con check, modo feriado
IVA activo: —
| Modo: —
Configuración de Empresa
Certificado Digital P12
Configuración del SRI
Modo de Facturación
Define si todas las sucursales comparten un mismo RUC/certificado, o si cada sucursal tiene sus propios datos fiscales independientes.
Configuración por Sucursal
Cargando sucursales...
Políticas de Ventas y Cobros
Controla cómo el cajero puede cerrar mesas y registrar pagos.
Activado: El cajero debe generar una factura (con datos del cliente o a Consumidor Final) para poder procesar el cobro. No se puede cerrar sin facturar. Desactivado (default): El cajero puede cobrar sin generar factura, confirmando que no emitirá comprobante.
Guardado
Según el SRI Ecuador, solo se puede facturar como Consumidor Final hasta un monto máximo por transacción. Si el total supera este valor, se solicitarán datos de facturación del cliente. (Valor actual SRI: $50.00)
$USD
Configuración de Email Saliente (SMTP)
Configure el servidor SMTP para enviar facturas electrónicas por correo.
Recepción de Facturas por Email (IMAP)
Cuando está activo, el sistema revisa automáticamente el buzón de entrada cada hora y registra
facturas electrónicas enviadas por proveedores como adjuntos XML.
Desactivado
Puede ser diferente al email de envío SMTP
Para Gmail usar contraseña de aplicación, no la contraseña normal
Servidores soportados: Gmail, Outlook/Hotmail, Yahoo, y cualquier servidor IMAP estándar.
El sistema detecta automáticamente el servidor según el dominio del email.
IMAP por Sucursal
En modo POR_SUCURSAL, cada sucursal puede tener su propio buzón de email dedicado.
Si una sucursal no tiene buzón propio, las facturas se filtran del buzón global por el RUC receptor.
Cargando sucursales...
Estado Actual de Red
Cargando...
Configuración requerida (una sola vez)
El sistema necesita permisos para controlar la red WiFi. Ejecuta uno de estos comandos en la terminal del dispositivo:
# Opción 1 (recomendada): añadir usuario al grupo netdev
# Después de ejecutar, reinicia el servicio o haz logout/login
newgrp netdev
# Opción 2 (si la opción 1 no funciona): permitir nmcli con sudo
echo "" | sudo tee /etc/sudoers.d/nmcli-webapp
sudo chmod 440 /etc/sudoers.d/nmcli-webapp
Redes WiFi Disponibles
Presiona "Escanear Redes" para ver las redes disponibles.
Conectar a WiFi
Certificado SSL — Instalación en dispositivos
Para que los celulares y tablets no muestren advertencia de seguridad al ingresar al sistema, instala el certificado SSL en cada dispositivo.
El certificado se actualiza automáticamente si la IP del dispositivo cambia de red.
Descarga el certificado con el botón de arriba. Se guardará en Descargas.
Abre Ajustes del teléfono.
Busca "Seguridad" o "Biometría y seguridad".
Toca "Instalar certificado" o "Instalar desde almacenamiento".
Selecciona "Certificado CA" (o "Certificado de confianza").
Acepta la advertencia y elige el archivo sabai_cert.pem de tu carpeta de Descargas.
Dale un nombre como "Sabai Facturas" y confirma.
Abre el navegador y entra a https://192.168.1.108:8443 — ya no aparecerá la advertencia.
Samsung: Ajustes → Pantalla de bloqueo y seguridad → Cifrado y credenciales → Instalar desde almacenamiento → Certificado de CA.
Descarga el certificado. Safari lo reconocerá automáticamente y preguntará si deseas instalarlo. Toca "Permitir".
Ve a Ajustes → "Perfil descargado" (aparece en la parte superior).
Toca "Instalar" en la esquina superior derecha y confirma.
Ahora activa la confianza completa: Ajustes → General → Información → Configuración de confianza de certificados.
Activa el interruptor junto a "Sabai" (o el nombre que aparezca). Toca "Continuar".
Abre Safari y entra al sistema. La advertencia ya no aparecerá.
Importante iOS: El paso 4 (activar confianza) es obligatorio. Sin él el certificado queda instalado pero el navegador sigue mostrando advertencia.
Descarga el certificado y localízalo en la carpeta Descargas.
Haz doble clic en el archivo sabai_cert.pem.
Haz clic en "Instalar certificado...".
Selecciona "Equipo local" y haz clic en Siguiente (requiere ser administrador).
Elige "Colocar todos los certificados en el siguiente almacén" → Examinar → "Entidades de certificación raíz de confianza".
Haz clic en Siguiente → Finalizar → Sí.
Reinicia el navegador (Chrome/Edge/Firefox) y accede al sistema sin advertencias.
Firefox: Tiene su propio almacén. En Firefox: Opciones → Privacidad → Ver certificados → Autoridades → Importar → selecciona el archivo y marca "Confiar para sitios web".
Cómo acceder desde otra red
Si cambias de red WiFi, el dispositivo obtendrá una nueva dirección IP. Para encontrarlo:
Conéctate a la misma red WiFi desde tu computadora o celular
Accede por el nombre del dispositivo: https://sabai.local:8443
O busca la nueva IP en el panel del router (sección DHCP)
O desde otra terminal en la misma red: ping sabai.local
Para mayor estabilidad, considera asignar una IP estática en la configuración de tu router (por MAC address).
Protecciones Activas
🔒
HTTPS / TLS
Todo el tráfico cifrado
🛡️
Rate Limiting
5 intentos → bloqueo 15 min
🎫
JWT + Roles
Autenticación por token
🧱
Security Headers
XSS, Clickjacking, MIME
Usuario de Emergencia
Este usuario se guarda fuera de la base de datos, en un archivo separado del servidor.
Si la BD se elimina o corrompe, podrás ingresar con estas credenciales para restaurar el backup desde esta misma página.
Cargando estado...
PIN de Administrador
El PIN se guarda cifrado y no se puede recuperar. Si alguien lo olvidó, usa este formulario para reemplazarlo directamente desde el panel programador.
Monitor de Intentos de Login
IPs con intentos fallidos o bloqueadas actualmente. Se limpia automáticamente al reiniciar el servidor.
Checklist de Seguridad para Producción
✅
HTTPS activo — Todo el tráfico está cifrado con TLS
✅
Rate limiting activo — Login protegido contra fuerza bruta
⚠️
Firewall del sistema — Ejecuta en terminal: sudo ufw status — debe estar activo y solo permitir red local
⚠️
Contraseñas seguras — Verifica que todos los usuarios tengan contraseñas fuertes (mínimo 8 caracteres con números)
⚠️
IP estática en el router — Asigna la MAC de la Raspberry Pi a una IP fija en la sección DHCP del router
✅
NAT del router — El router bloquea conexiones de internet por defecto. No configures port forwarding para el puerto 8443
# Comandos para activar firewall (ejecutar UNA vez en terminal)
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
sudo ufw allow from 192.168.0.0/16 to any port 8443
# Si tu red local usa 10.x.x.x en vez de 192.168.x.x:
sudo ufw allow from 10.0.0.0/8 to any port 8443
sudo ufw enable
sudo ufw status verbose
Estado del Backup Automático
Cargando...
Configuración de Backup
Ruta absoluta donde se guardará sabai_backup.db.enc (se sobreescribe en cada ejecución)
Los backups se cifran con AES-256-GCM. Guarda esta clave para poder restaurar.
Backups Disponibles
Cargando...
Restaurar Backup
Modo Merge: Se insertarán los registros del backup que no existan en la BD actual.
Los datos existentes (ventas, facturas, clientes) no se modifican.
⚠️ Restore Completo: Esta acción eliminará toda la base de datos
y la reemplazará con el backup. No se puede deshacer. Úsalo solo para recuperación total.
Registrar Factura Recibida
Sincronizar desde Portal SRI en Línea
Se loguea automáticamente en srienlinea.sri.gob.ec y descarga
el reporte de comprobantes recibidos del período indicado.
URLs del Portal SRI (solo cambiar si el SRI modifica sus direcciones)
Cargando última sincronización...
O subir Excel descargado manualmente del portal SRI
Descarga desde portal SRI → "Descargar reporte" → sube el archivo aquí.
Facturas Recibidas
Período de Análisis
Ingresos
Cargando...
Egresos
Cargando...
Liquidación IVA (estimada)
Cargando...
Este resumen es referencial. Para la declaración oficial use el portal del SRI.
Flujo de Caja — ...
Cargando...
Estado de Licencia
Verificando...
Información de la Licencia
Cargando...
Configuración (Uso Futuro)
Cuando el sistema central esté activo, configure la URL para verificación remota de licencias.
Déjelo vacío mientras el servidor central no esté disponible.
Módulos Habilitados
En modo prototipo (demo), todos los módulos están habilitados indefinidamente.
Información Técnica
Impresoras Térmicas
Modo Cocina Tradicional
Actívalo si el cocinero no tiene pantalla. El flujo será: mesero confirma pedido → se imprime comanda → cocinero prepara → mesero marca servido directamente. Los botones "Preparar" y "Plato Listo" se ocultarán para el cocinero.
Configura impresoras térmicas ESC/POS conectadas por red (WiFi o Ethernet).
Puerto por defecto: 9100. La Impresora de Caja se usa para imprimir facturas automáticamente.
Agente de Impresión Local (para servidor en VPS) Descarga estos archivos en la PC del restaurante. Ejecuta primero INICIAR_AGENTE_IMPRESION.bat para configurar y arrancar el agente. Para que inicie automáticamente al encender la PC, ejecuta INSTALAR_INICIO_AUTOMATICO.bat como administrador.
Si el servidor está en un VPS, configura aquí la IP del computador local que tiene el agente de impresión corriendo.
Salud del Sistema
Diagnóstico en tiempo real del disco, base de datos y archivos generados.
Cargando...
Almacenamiento Externo (USB / SSD)
Redirige la base de datos, facturas XML/PDF y backups a un disco externo o USB SSD.
El sistema crea enlazaces simbólicos transparentes — el resto de la aplicación no cambia.
Cargando estado...
El directorio debe existir y tener permisos de escritura. Los datos se mueven automáticamente.
Reinicia el servidor después de migrar.
Recurso
Tipo
Symlink activo
Existe en externo
Limpieza de PDFs
Elimina PDFs generados (facturas, reportes Z, RIDEs) con más de N días de antigüedad. Los archivos originales en la BD no se ven afectados.
Guía de Producción — Problemas Frecuentes
Esta guía describe síntomas comunes en producción y cómo resolverlos. Los marcados con EXTERNO requieren configuración fuera de la aplicación.
El sistema no arranca después de un corte de luz
Síntomas: La Raspberry Pi arranca pero el servidor no inicia, o la BD está corrupta. Causa: El corte de luz interrumpió una escritura a disco. Solución:
Al arrancar, el sistema hace automáticamente un PRAGMA integrity_check. Si falla, revisa el log.
Ir a Backup → Restaurar y cargar el último backup automático.
Los backups de arranque están en backend/backups/startup_backup_*.db.
Prevención:EXTERNO Conectar la Raspberry Pi a un UPS (batería de respaldo). Incluso uno pequeño de 600VA da 15–30 min para un cierre limpio.
Los dispositivos no encuentran el sistema en la red
Síntomas: Tablets/celulares no pueden acceder a https://IP:8443. La IP cambió. Causa: El router asignó una IP diferente a la Raspberry Pi (DHCP dinámico). Solución inmediata:
En la Raspberry Pi, ejecutar: hostname -I para ver la IP actual.
El certificado SSL se regenera automáticamente si la IP cambia al reiniciar el servidor.
Actualizar los accesos directos en los dispositivos con la nueva IP.
Solución permanente:EXTERNO En la configuración del router, asignar una IP fija (reserva DHCP) a la MAC de la Raspberry Pi. Consultar el manual del router.
La impresora térmica no imprime
Síntomas: Los botones de impresión no hacen nada o dan error. Causas posibles:
IP de impresora cambió:EXTERNO Configurar IP fija en la impresora (menú de la impresora o software del fabricante), luego actualizar en Impresoras → editar.
Impresora apagada o sin papel: Verificar estado físico.
Firewall bloquea puerto 9100:EXTERNO En el router/switch, asegurar que el puerto TCP 9100 esté abierto en la red local.
Diagnóstico: Ir a Impresoras → Prueba de impresión para verificar conectividad.
Las facturas SRI dan error de autorización
Síntomas: Las facturas quedan en estado "Pendiente" o "Error SRI". Causas y soluciones:
Sin internet:EXTERNO Verificar conexión a internet en la Raspberry Pi: ping 8.8.8.8. Las facturas se reintentarán cuando vuelva la conexión.
Certificado p12 expirado: Renovar el certificado digital en el SRI y subirlo en Configuración SRI → Certificado Digital.
Ambiente incorrecto: En Configuración SRI, verificar que el ambiente sea "Producción" (no "Pruebas") para facturas reales.
RUC/datos incorrectos: Revisar Configuración Empresa. El RUC debe coincidir con el del certificado.
Recuperación: Las facturas fallidas se pueden reintentar desde la pestaña Facturas Pendientes.
El disco está lleno — el sistema se vuelve lento
Síntomas: El sistema responde lento, errores al guardar datos, alertas de disco en esta pantalla. Solución inmediata:
Usar el botón Limpiar PDFs de esta página (elimina PDFs viejos, no datos de BD).
Descargar y eliminar backups antiguos desde la pestaña Backup.
Solución a largo plazo:EXTERNO Usar una tarjeta microSD de mayor capacidad (mínimo 64GB de clase A2) o conectar un disco USB externo y redirigir la carpeta backups/ a él.
Los usuarios son cerrados de sesión inesperadamente
Síntomas: Los meseros/cajeros son enviados al login sin haber hecho nada. Causas y soluciones:
Token JWT expirado: El sistema ahora usa tokens de 7 días y los renueva automáticamente al navegar. Si ocurre con frecuencia, verificar que el dispositivo no tenga la hora del sistema incorrecta.
Servidor reiniciado: Al reiniciar el servidor con una nueva SECRET_KEY, todos los tokens anteriores se invalidan. Esto es normal.
Hora incorrecta en el dispositivo:EXTERNO Verificar que la hora del dispositivo y la Raspberry Pi estén sincronizadas.
El navegador muestra "Conexión no segura"
Síntomas: Al abrir https://IP:8443 aparece advertencia de seguridad. Causa: El sistema usa un certificado autofirmado (no emitido por una CA pública). Solución:
En el navegador, hacer clic en Avanzado → Continuar de todos modos (solo la primera vez).
Para eliminar la advertencia definitivamente: EXTERNO Instalar el archivo cert.pem como certificado de confianza en cada dispositivo (Ajustes → Seguridad → Certificados).
Alternativamente, usar HTTP en lugar de HTTPS accediendo al puerto 8000 (redirige a HTTPS automáticamente).
Restablecer Aplicación
Esta acción borra todos los datos operacionales de forma irreversible.
Úsala solo para preparar el sistema para un nuevo cliente.
Se elimina
Sesiones NFC y consumos
Facturas emitidas y clientes
Menú (categorías e ítems)
Productos de cerveza
Inventario y materia prima
Arqueos y caja maestra
Reportes Z y cierres
Logs SRI y facturas recibidas
Ventas importadas
Secuencial de facturas (→ 1)
Se conserva
Cuentas de usuario
Configuración de empresa
Credenciales SRI
Configuración de impresoras
Licencia del sistema
Configuración de backup
Parámetros del sistema
Confirmación final
Esta acción es irreversible. Se perderán todos los datos operacionales.
Para confirmar, escribe RESTABLECER en el campo:
Facturas Pendientes o con Error
Facturas que no han sido autorizadas por el SRI o están pendientes de envío.