Qvault (qvault.io)
An open source, Bitcoin friendly, and extremely secure password manager
๐ฌ Contact Qvault
๐ Features
- Open source - as all password managers should be
- Generate Bitcoin cold wallets from within the app
- Offline mode - optional
- Dual encryption using Qr Codes - optional
- Recovery code in case master password is forgotten - optional
- Simple - all encrypted vaults are stored locally in .qvault files
- Free cloud backup storage - optional
- Virtual keyboard to bypass keylogger malware
- Import passwords from a CSV (most browsers can export to CSV)
- Windows, Mac and Linux
- All windows and mac releases are code signed and updates are optional (prompted) within the app
โ๏ธ Compatibility
Pre-built one-click releases can be found on our releases page. We officially support:
- Windows - .exe NSIS installer
- Mac OS - .dmg installer
- Linux - .AppImage
We also want to give a special thanks to XDaemonX for maintaining the Arch Linux (AUR) package which can be found at: https://aur.archlinux.org/packages/qvault/
Some linux distros don't support unprivileged CLONE_NEWUSER, without that, the electron
sandbox won't work. Since security is our #1 priority, we will not be disabling the sandbox; however, if you wish to
run Qvault on an unsupported distro, you can use the --no-sandbox
flag.
๐ Contributing
We love help! Contribute by forking the repo and opening pull requests. Please ensure that your code passes the existing tests, and write tests to test your changes if applicable.
All pull requests should be submitted to the "master" branch. Code in the "prod" branch is live in the latest release.
Quickstart
Clone and enter the repo
git clone https://github.com/q-vault/qvault
cd qvault
Install dependencies
We use yarn as opposed to npm due it being recommended by most electron tools.
yarn install
Run development application
yarn dev
โ๏ธ Cloud Server
Users can choose to optionally store their encrypted vault on Qvault's servers. The API that Qvault uses is hosted at https://api.qvault.io
The only version of Qvault at any moment that is guaranteed to work nicely with the cloud server is the latest release, although we do our best to maintain backwards compatibility. Please update accordingly.
In the future we plan to open source the server code and allow users to change their host address within the app.
Linting and Styling
Qvault uses eslint and all pull requests must pass the eslint tests. Make sure your code adheres to the rules defined in .eslintrc.json
To run the linting tests:
yarn lint
To try to autofix the repo:
yarn lint-fix
Some general rules that Qvault follows additionaly:
- All javascript filenames, functions, and variables are camelCase
- All vue filenames and components are PascalCase
Node Version - NVM
NVM, or node version manager, is used to keep track of the supported node version. If you are having strange node api errors, be sure to set the correct node version:
nvm use
๐งช Run Tests
Mocha Chai
yarn test
๐จ Build from source
Building from source is the best way to ensure code integrity, but keep in mind auto-updates will not work.
yarn release --publish never
Helpful VSCode settings
These are the repo-level settings some of us use in vscode. We also recommend using the eslint plugin by Dirk Baeumer.
{
"editor.formatOnSave": false,
"files.eol": "\n",
"eslint.validate": [
{
"language": "vue",
"autoFix": true
},
{
"language": "javascript",
"autoFix": true
}
],
"eslint.autoFixOnSave": true
}
๐จ๏ธ Contact the Devs
The best way to get in contact with the developers is on the public discord server.
Also follow Lane or contact him on twitter or medium