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.txt
Next install the needed node
dependencies used during development. These are not included in production, but are helpful during local development:
npm install
To start the server, cd to the root directory and run the app.py
file:
python app.py
Inside 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-image
These 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.