Lockstep: Plataforma de lista de verificación de seguridad personal
Rastrea hábitos de seguridad, progreso de listas de verificación y prioridades desde una interfaz web limpia
Vídeo tutorial en YouTube
Mira el vídeo completo sobre cómo instalar y usar Lockstep: Plataforma de lista de verificación de seguridad personal en el canal GENBYTE:
¿Qué es Lockstep: Plataforma de lista de verificación de seguridad personal?
Lockstep es una plataforma open source diseñada para gestionar listas de verificación de seguridad personal. Permite a los usuarios registrar hábitos de seguridad, monitorizar el progreso de tareas, establecer prioridades y visualizar el avance basado en perfiles de usuario. La aplicación ofrece una interfaz web responsive con soporte para modo claro y oscuro, internacionalización en cuatro idiomas y despliegue listo para Docker con persistencia de datos. El proyecto está licenciado bajo GPL-2.0 y desarrollado en TypeScript utilizando el framework Qwik.
Características principales
Autenticación y perfiles de usuario
Sistema de inicio de sesión con seguimiento de progreso basado en perfiles individuales. Permite la creación de una cuenta inicial y, opcionalmente, deshabilitar nuevos registros mediante variable de entorno.
Soporte multilingüe
Interfaz disponible en inglés, alemán, turco y búlgaro.
Modo claro y oscuro
Tema visual adaptable con soporte nativo para preferencias de color del sistema o selección manual.
Panel de progreso de seguridad
Dashboard que muestra el avance general, categorías de lista de verificación, niveles de prioridad, filtros y estado de finalización de tareas.
Despliegue Docker con persistencia
Imagen oficial publicada en GitHub Container Registry y Docker Hub. Incluye docker-compose.yml y ejemplo de stack.yml para Docker Swarm. Los datos de usuario se almacenan en volumen montado en /data.
Lista de verificación personalizable
El contenido de la lista se define en personal-security-checklist.yml y se compila en la build de producción.
Requisitos del sistema
- Docker Engine 20.10+ y Docker Compose v2 (para despliegue en contenedor)
- Node.js 26+ (para desarrollo local o build manual)
- Volumen persistente para /data (recomendado para producción)
- Puerto 4174 disponible en el host
Instalación con Docker Compose
Despliegue con Docker Compose (recomendado)
Usa la imagen publicada en GitHub Container Registry. Crea un archivo docker-compose.yml con el contenido siguiente y ejecuta docker compose up -d. La variable LOCKSTEP_REGISTRATION_ENABLED controla si se permiten nuevos registros (true por defecto).
lockstep:
image: ghcr.io/caglaryalcin/lockstep:latest
ports:
– "4174:4174"
environment:
PORT: "4174"
PSC_SETTINGS_FILE: /data/lockstep-users.json
LOCKSTEP_REGISTRATION_ENABLED: ${LOCKSTEP_REGISTRATION_ENABLED:-true}
volumes:
– lockstep-data:/data
restart: unless-stopped
volumes:
lockstep-data:
Despliegue con Docker Compose desde Docker Hub
Modifica el valor image a caglaryalcin/lockstep:latest en el docker-compose.yml anterior y ejecuta docker compose up -d.
lockstep:
image: caglaryalcin/lockstep:latest
ports:
– "4174:4174"
environment:
PORT: "4174"
PSC_SETTINGS_FILE: /data/lockstep-users.json
LOCKSTEP_REGISTRATION_ENABLED: ${LOCKSTEP_REGISTRATION_ENABLED:-true}
volumes:
– lockstep-data:/data
restart: unless-stopped
volumes:
lockstep-data:
Despliegue con Docker Stack (Swarm)
Guarda el siguiente contenido como stack.yml y ejecuta docker stack deploy -c stack.yml lockstep. Para usar Docker Hub, cambia image a caglaryalcin/lockstep:latest.
services:
lockstep:
image: ghcr.io/caglaryalcin/lockstep:latest
ports:
– "4174:4174"
environment:
PORT: "4174"
PSC_SETTINGS_FILE: /data/lockstep-users.json
LOCKSTEP_REGISTRATION_ENABLED: "true"
volumes:
– lockstep-data:/data
deploy:
replicas: 1
restart_policy:
condition: any
volumes:
lockstep-data:
Ejecución local con Node.js
Clona el repositorio, instala dependencias, compila y ejecuta el servidor. La aplicación escucha en el puerto 4174 por defecto; puede cambiarse con la variable PORT.
npm run build
npm run serve
# Puerto personalizado:
PORT=4174 npm run serve
Build de imagen Docker local
Solo necesario si se desea crear una imagen propia. Ejecuta desde la raíz del proyecto.
docker run -d –name lockstep -p 4174:4174 -v lockstep-data:/data lockstep
Acceder al proyecto
Interfaz web
Accede a http://127.0.0.1:4174 (o al puerto configurado) tras iniciar el contenedor o el servidor local. La primera visita permite crear la cuenta inicial; si LOCKSTEP_REGISTRATION_ENABLED=false, solo se permite esa primera cuenta.
Casos de uso
- Gestión personal de hábitos de seguridad digital (contraseñas, 2FA, actualizaciones, copias de seguridad)
- Seguimiento de cumplimiento de listas de verificación de seguridad para equipos pequeños
- Auditoría periódica de postura de seguridad personal con histórico de progreso
- Despliegue autohospedado para mantener control total sobre datos de seguridad sensibles
Configuración avanzada
Deshabilitar nuevos registros
Establece LOCKSTEP_REGISTRATION_ENABLED=false para permitir solo la cuenta inicial y bloquear registros posteriores. Usuarios existentes siguen pudiendo iniciar sesión.
# O en docker run:
docker run -d –name lockstep -p 4174:4174 -v lockstep-data:/data -e LOCKSTEP_REGISTRATION_ENABLED=false ghcr.io/caglaryalcin/lockstep:latest
Personalizar lista de verificación
Edita personal-security-checklist.yml para añadir, modificar o eliminar categorías, elementos y prioridades. Tras los cambios, reconstruye la imagen o ejecuta npm run build en desarrollo local para que los cambios surtan efecto en la build de producción.
vim personal-security-checklist.yml
# Reconstruir
npm run build
# O reconstruir imagen Docker
docker build -t lockstep .
Cambiar puerto de escucha
Modifica la variable de entorno PORT en docker-compose.yml, stack.yml o al ejecutar docker run. El contenedor expone el puerto 4174 por defecto.
PORT: "8080"
# En docker run:
docker run -d -p 8080:8080 -e PORT=8080 …
Ruta de archivo de datos de usuario
La variable PSC_SETTINGS_FILE define la ubicación del archivo JSON que almacena cuentas, hashes de contraseña, ajustes de perfil y progreso. Por defecto es /data/lockstep-users.json. Debe apuntar a una ruta dentro del volumen montado.
PSC_SETTINGS_FILE: /data/lockstep-users.json
Gestión y mantenimiento
Actualizar imagen
Descarga la última versión de la imagen y reinicia el servicio. Los datos persisten en el volumen lockstep-data.
docker compose up -d
Ver logs del contenedor
Consulta la salida estándar del servicio para diagnosticar problemas de inicio o ejecución.
Backup de datos de usuario
Copia el archivo JSON de usuarios desde el volumen. Requiere acceso al host Docker o uso de contenedor auxiliar.
Comandos de desarrollo
Scripts disponibles en package.json para build, lint, smoke test y servidor de desarrollo.
npm run lint # Ejecuta ESLint
npm run smoke # Build + test de humo en producción
npm run fmt # Formatea código con Prettier
npm run fmt.check # Verifica formato
Stack técnico
- TypeScript
- Qwik (@builder.io/qwik, @builder.io/qwik-city)
- Vite
- Tailwind CSS 4
- DaisyUI
- Node.js 26 (runtime en Docker)
- marked (procesamiento Markdown)
- sharp (procesamiento de imágenes)
- undici (cliente HTTP)
- ESLint + TypeScript ESLint
- Prettier
- Docker (multi-stage build con node:26-bookworm-slim)
Referencias oficiales
- Repositorio oficial en GitHub: https://github.com/caglaryalcin/lockstep
- Demostración en vivo: https://demo-lockstep.caglaryalcin.com/
- Imagen en GitHub Container Registry: https://ghcr.io/caglaryalcin/lockstep
- Imagen en Docker Hub: https://hub.docker.com/r/caglaryalcin/lockstep
- Licencia GPL-2.0: https://github.com/caglaryalcin/lockstep/blob/main/LICENSE
Apoya el canal GENBYTE
¿Te ha sido útil este contenido?
Suscríbete a YouTube
Newsletter GENBYTE
Ko-fi
Contacto: [email protected]
