Control de acceso para gimnasios

Tu gimnasio,
con acceso inteligente.

Power · Gym Access centraliza el control de acceso biométrico (huella), las membresías, los pagos y las notificaciones en un solo sistema que corre en tu propia PC — sin cuotas de nube y funcionando incluso sin internet.

  • Sin Python instalado
  • 100% local, sin nube
  • Terminal Hikvision
3roles: admin, staff y cliente
0cuotas mensuales de nube
<2svalidación de acceso
14días de rotación de backups
Características

Todo lo que tu gimnasio necesita,
en una sola pantalla.

Control de acceso físico, cobranza y comunicación con tus clientes — integrados y sin depender de servicios externos.

Control biométrico

Apertura de puerta por huella con el terminal Hikvision DS-KAS261. Match automático por cédula o vinculación manual de huellas pendientes.

Membresías y pagos

Planes diario, semanal, mensual, trimestral y anual. Registro de pagos con tasa BCV actualizada automáticamente y control de vencimientos.

Notificaciones en vivo

WebSocket para el personal y Web Push para los clientes (PWA instalable en el móvil). Avisos de vencimiento automáticos antes y después de la fecha límite.

WhatsApp integrado

Comunícate con un toque mediante enlaces wa.me desde la ficha del cliente: recordatorios de pago, avisos y atención directa.

Seguridad de nivel

Contraseñas con hash, cifrado en reposo (Fernet) de credenciales, auditoría firmada con HMAC, bloqueo anti fuerza bruta y cabeceras HTTP seguras (CSP, HSTS).

Reportes y auditoría

Marcajes, pagos y acciones sensibles trazados y verificables. Reportes para la gerencia y control de caja desde el mismo panel.

Autoservicio del cliente

El socio se auto-registra, consulta su membresía, registra sus pagos y recibe avisos push — sin saturar la recepción.

Resistente a caídas

El acceso físico sigue funcionando aunque se caiga internet: el control del terminal corre 100% en local y la base de datos es SQLite con WAL.

Cómo funciona

Una PC, un túnel, control total.

El sistema vive en la PC del gimnasio. Cada cliente recibe una URL única — nombredelcliente.powergym.dev — que apunta a su instancia vía Cloudflare Tunnel. El acceso físico nunca depende de internet.

100% localEl acceso físico no depende del túnel ni de internet.
URL única por gimnasioCada cliente accede por su subdominio propio (nombredelcliente.powergym.dev, HTTPS).
Datos tuyosSQLite en tu disco: nada sale a servidores de terceros.
Para quién es

Tres roles, una sola herramienta.

Admin

Única cuenta

Dueño del gimnasio. Gestiona cuentas de staff, conecta el terminal Hikvision, configura el sistema y revisa reportes y auditoría.

  • Configuración del sistema
  • Gestión de cuentas staff
  • Reportes y auditoría

Staff

Recepción + gerencia

Recepción y gerencia en las mismas pantallas, sin límite de cuentas. Cobran, enrolan huellas, vinculan pendientes y atienden al socio.

  • Registro de pagos y membresías
  • Enrolamiento y vinculación de huellas
  • Gestión diaria del gimnasio

Cliente

Socio / miembro

Se auto-registra, ve su membresía, registra sus pagos y recibe avisos en su móvil como PWA con Web Push. Sin instalar apps de terceros.

  • Autoservicio de membresía
  • Registro de pagos propio
  • PWA con Web Push
Guías de utilización

De la descarga al gimnasio en marcha.

Documentación paso a paso para instalar, conectar el terminal y desplegar el sistema de forma robusta.

01 Instalación en Windows
  1. Descarga el instalador PowerGymAccess-2.0.0-win64.zip desde la sección Descargar.
  2. Descomprime el .zip en una carpeta fija (por ejemplo C:\PowerGymAccess).
  3. Ejecuta PowerGymAccess.exe. No requiere Python ni instalar nada más.
  4. Se abre automáticamente el navegador en http://localhost:8005 y aparece el asistente para crear la única cuenta de administrador.
  5. Desde /admin → Cuentas Staff crea las cuentas de recepción/gerencia, y desde Configuración conecta el terminal Hikvision.

💡 Los secretos (clave JWT, cifrado, VAPID) se generan solos en el primer arranque y se guardan en un .env que el propio sistema crea. No hay que copiar plantillas ni ejecutar scripts.

02 Conectar el terminal Hikvision DS-KAS261

1. Descubrir IP y puerto

Usa SADP Tool (gratis, de Hikvision) para escanear la red y obtener la IP y el puerto HTTP del equipo (por defecto 80).

2. Puerto ISAPI

Si el 80 está ocupado: en la web del equipo, Configuration → Network → Basic Settings → Port.

3. Listener de eventos

El equipo debe saber a dónde enviar cada marcaje: Configuration → Network → Advanced Settings → HTTP Listening / Event Notification → la IP local de esta PC y el puerto 8080 (por defecto).

4. Enrolamiento de huellas

Dos escenarios soportados:

  • Cédula = ID del equipo (recomendado): usa la cédula (solo dígitos) como employeeNo. El sistema hace match automático desde el primer marcaje.
  • ID autogenerado: el primer marcaje sin match queda en Huellas pendientes para vinculación manual desde el portal Staff.
03 Ejecutar como servicio (sobrevive reinicios)

Windows

Usa NSSM (Non-Sucking Service Manager) o el Programador de Tareas con disparador “Al iniciar el sistema”, ejecutando PowerGymAccess.exe con el directorio de inicio de la carpeta descomprimida.

Linux (systemd)

Para instalación desde código fuente, crea /etc/systemd/system/power-gym-access.service con ExecStart=/ruta/venv/bin/python main.py y actívalo con sudo systemctl enable --now power-gym-access.

04 Acceso remoto con Cloudflare Tunnel

Tu sistema corre en tu PC (localhost:8005). Para que staff, admin y clientes accedan desde internet, usas Cloudflare Tunnel (gratis) con tu URL fija: tu-gym.powergym.dev.

Cómo funciona: tu proveedor configura esa URL única para ti y te entrega las credenciales del túnel (un archivo .json y un config.yml). Tú solo ejecutas cloudflared con esa configuración:

# config.yml (te lo entrega tu proveedor)
tunnel: TUNNEL_ID
credentials-file: C:\cloudflared\TUNNEL_ID.json
ingress:
  - hostname: tu-gym.powergym.dev
    service: http://localhost:8005
  - service: http_status:404
cloudflared tunnel run tu-gym

Instálalo como servicio para que se reconecte solo tras reinicios. La URL es fija y única por gimnasio: no cambia nunca.

05 Backups automáticos
python scripts/backup_db.py

Programa este script a diario (cron o Tarea Programada). Copia data/power_gym_access.db a data/backups/ con timestamp y rota automáticamente (14 días).

06 Notas de seguridad
  • El .env nunca debe subirse a un repositorio (contiene secretos JWT, cifrado y VAPID).
  • Toda acción sensible queda firmada con HMAC en audit_log, verificable desde Auditoría.
  • Fotos y comprobantes se comprimen en el navegador (máx. 500 KB) y se revalidan en el backend.
  • Credenciales (Hikvision, SMTP) cifradas en reposo con Fernet.
  • Contraseñas: mínimo 8 caracteres (clientes) y 10 (admin/staff), con letra y número.
  • Bloqueo por fuerza bruta: 5 intentos fallidos → bloqueo temporal creciente.
Descargar

Instalador para Windows.

Un solo .zip con todo incluido. Descomprime, ejecuta y listo.

PowerGymAccess-2.0.0-win64.zip

  • Versión 2.0.0
  • Plataforma Windows 64-bit
  • Tamaño 17.0 MB
  • Requisitos Ninguno (no requiere Python)

SmartScreen puede avisar por ser un .exe sin firma: pulsa “Más información” → “Ejecutar de todas formas”.

Verificar SHA-256 0A59B23192676F56A0889468A405678420446AAADD410EA8A3C267C2AAB345E4
Contacto

¿Dudas, instalación o soporte?

Escríbeme y te ayudo a dejar el sistema funcionando en tu gimnasio.

Los datos de contacto son placeholders de ejemplo — reemplázalos por tus datos reales en index.html (sección #contacto).