A minimal open source password manager.
If you just want to use the app, we recommend downloading one of the official releases.
However, if you want to get your hands dirty and contribute or build your own version from source, read on!
- First, you'll need Node.js and npm. Install it if you haven't yet.
- Clone or download the source code. E.g.:
git clone firstname.lastname@example.org:MaKleSoft/padlock.git
- Install the local dependencies.
cd padlock npm install
Start The App
npm run app
You can also run the app in debug mode:
npm run app -- --debug
Compiling TypeScript files
The core logic (everything under
app/src/core) is implement in TypeScript, which needs to be compiled to
npm install. You can also run the
compilation step individually in case you want to make any changes to the core:
npm run compile
To watch files and compile automatically:
npm run compile -- --watch
Testing / Linting
npm run lint
To run tests:
npm run test
npm run test command uses headless Chrome, which means need to have
Google Chrome 59 or higher installed.
Alternatively, you can also run the tests in "visual mode":
npm run app -- --test
Another Note: For synchronization-related tests to pass, you need to have a padlock-cloud server running in test mode. E.g.:
padlock-cloud --test &! npm run test
Details on how to install Padlock Cloud can be found here.
Building for Desktop
To create a production build of the app for OSX, Windows or Linux, run:
npm run build:[platform]
Where platform is one of
linux. E.g: To build the app for OSX:
npm run build:mac
This will generate a set of distrution-ready files under the
Note: In order to build the app for Linux, you'll need to install icnsutils and graphicsmagick.
sudo apt install graphicsmagick icnsutils
Building for Mobile
Apache Cordova is used to distribute Padlock on iOS and Android. The
cordova subdirectory contains a
Cordova project with all appropriate configuration files and resources. The Cordova cli can be used to
build and run the app on iOS and Android devices or emulators. All Cordova commands need to be run from
cordova subdirectory. Before running any commands like
cordova build, make sure to run
cordova prepare once (after the first time you can omit it). For example, to run the app on an iOS device
cd cordova cordova prepare cordova run ios
See the Apache Cordova documentation for details.
Note: In order to build the app for Android, you'll need to install and setup the Android SDK. Building for iOS is only possible on OSX and requires XCode.
Contributions are more than welcome!
- If you want to report a bug or suggest a new feauture, you can do so in the issues section
- If you want to contribute directly by committing changes, please follow the usual steps:
- Fork the repo
- Create your feature branch: git checkout -b my-feature-branch
- Make sure to lint and test your code before you commit! (
npm run lint && npm run test)
- Commit your changes:
git commit -m 'Some meaningful commit message'
- Push to the branch:
git push origin my-feature-branch
- Submit a pull request!