Padlock is an end-to-end encrypted password manager. It doesn't require a master password thanks to public-private key authentication.
- End-to-end encrypted.
- No master password.
- Easy to deploy. Uses a SQLite database for storage.
- Clean and easy to use interface.
- Python 3: For runtime
- Cryptography.io Hazmat Layer: For cryptography requiremeents
- SQLite: For storage
- Flask: For web framework
- TailwindCSS: For styling
- Jinja2: For UI pages, layouts, and components
2 simple steps
First install all the python dependencies:
pip install -r requirements.txtNext install the needed node dependencies used during development. These are not included in production, but are helpful during local development:
npm installTo start the server, cd to the root directory and run the app.py file:
python app.pyInside the root directory is a dockrfile. This can be used to quickly provision a container to run padlock in production docker environment. Just run the command:
docker build -t padlock-image .Run the container on port 5000 and setup the MASTER_PASSWORD env. This variable is used on the "Danger Zone" page to ensure only authorized admins can delete users stored on the instance.
docker run -p 127.0.0.1:5000:5000 --env MASTER_PASSWORD=somepassword --name padlock-container -it padlock-imageThese scripts require you to npm install the needed development dependencies.
npm run format uses prettier to format every html on the codebase.
npm run tailwind:build uses tailwind (the CSS framework we're using) to export all the CSS utilities being used on the codebase.