gitmyhub

lockstep

TypeScript ★ 45 updated 17d ago

Lockstep is a personal security checklist platform. It helps users track security habits, checklist progress, priorities, and profile-based progress from a clean web interface.

A self hosted web app for tracking your personal security checklist, habits, and progress with per user profiles and a Docker friendly setup.

TypeScriptDockersetup: easycomplexity 2/5

Lockstep is a personal security checklist app that helps you track your own digital security habits over time. It presents a set of security related tasks organized into categories with priority levels, and lets you check items off as you complete them, filter the list, and watch your overall progress on a dashboard. Each user has their own login and profile, so progress is tracked per person rather than shared across everyone using the same installation. The interface supports both dark and light mode, and it also has a Turkish language option alongside English.

The app is built with TypeScript and is meant to run as a small self hosted web service rather than a cloud product you sign up for. You can start it locally by installing dependencies with npm, building the project, and running the built in server, which listens on a local port that can be changed with an environment variable. There is also a ready made Docker image, so you can run it in a container with a single command, mounting a data folder so your accounts and progress survive restarts and updates. A Docker Compose and Docker Stack setup are included as well for slightly larger deployments.

By default anyone can create a new account, which makes sense for trying it out, but for a public facing installation there is a setting to turn registration off after the first account is made, so it becomes login only. User accounts, password hashes, profile settings, and checklist progress are all saved to a single JSON file on the server, and the README recommends running only one instance at a time with this storage method, moving to a real database like PostgreSQL if you need multiple instances. The actual checklist content lives in a separate YAML file, so changing what appears on the checklist means editing that file and rebuilding the app.

Where it fits