A modern, open source password manager for individuals and teams.
Go to file
Martin Kleinschrodt 2a8d27ac76 fix generate button styling on android 2018-06-13 11:36:58 +02:00
app fix generate button styling on android 2018-06-13 11:36:58 +02:00
cordova fix generate button styling on android 2018-06-13 11:36:58 +02:00
lib Force custom elements polyfill on iOS 2018-04-25 11:13:53 -03:00
resources More translation updates 2018-03-25 13:29:00 -03:00
test Fix encrypted export 2017-09-08 20:15:17 +02:00
typings Use nodejs filesystem api in electron environment 2017-07-04 12:37:39 +02:00
.eslintignore Allow 1 empty line at beginning of file; add listing to `npm run test` command 2017-06-16 12:35:11 +02:00
.eslintrc.json Update js builds 2018-03-22 11:20:22 -03:00
.gitignore Ignore compiled test file 2017-06-13 09:32:20 +02:00
CHANGELOG.md v2.7.2 2018-06-13 09:43:27 +02:00
LICENSE Add license 2014-02-10 08:22:46 +01:00
README.md Update README.md 2017-08-12 01:49:32 +02:00
dev-app-update.yml Flesh out / improve update process 2017-06-23 20:32:01 +02:00
gulpfile.js Add build task for dashboard component 2017-11-30 10:48:08 +01:00
karma.conf.js Use headless chrome to run tests 2017-06-18 16:24:08 +02:00
main.js When in debug mode, add item to app menu for opening dev tools; Completely disable dev tools when in production mode 2018-03-22 11:14:15 -03:00
package.json v2.7.2 2018-06-13 09:43:27 +02:00
tsconfig.json tweak tsconfig 2017-06-13 09:32:20 +02:00

README.md

Padlock

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!

Getting Started

  1. First, you'll need Node.js and npm. Install it if you haven't yet.
  2. Clone or download the source code. E.g.:
    git clone git@github.com:MaKleSoft/padlock.git
    
  3. 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 JavaScript before running the app. This happens automatically when you run 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

To lint JavaScript files:

npm run lint

To run tests:

npm run test

Note: The 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 mac, win, or linux. E.g: To build the app for OSX:

npm run build:mac

This will generate a set of distrution-ready files under the dist directory.

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 the 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 or emulator:

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.

Contributing

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:
    1. Fork the repo
    2. Create your feature branch: git checkout -b my-feature-branch
    3. Make sure to lint and test your code before you commit! (npm run lint && npm run test)
    4. Commit your changes: git commit -m 'Some meaningful commit message'
    5. Push to the branch: git push origin my-feature-branch
    6. Submit a pull request!