Passlock Desktop 🗝️
[
]
PassLock is a password manager that helps you securely store and manage your passwords. It uses AES encryption to protect your data in a local database file. With a zero-knowledge encryption model, your master password is never saved anywhere, ensuring only you can decrypt your data. It also offers a backup and sync feature using Firebase Realtime Database. It is a desktop version of the android app Passlock.
Download 📥
Download latest release 📥
[!TIP]
You might face issues with various platforms, please refer to the Issues section for solutions.
Additional steps for linux
- Extract files to dir using `tar -xzvf passlock.tar.gz -C `
- `cd passlock` & Just run `./install.sh` inside the passlock folder
- It will ask for sudo password to create a softlink.
- This will add a menu item and make passlock accessible through terminal anywhere
- try `$ passlock` or run from menu.
#### Manually (In case script doesn't work)
Creating a soft link
After installing and extracting .tar.gz file in linux to run app anywhere in terminal we can create a softlink like this:
```$ ln -s /path/to/passlock/Passlock /usr/local/bin/passlock```
After this we can run passlock by typing `$ passlock`
Adding menu icon
```bash
cd ~/.local/share/applications
nano passlock.desktop
```
Paste the following lines by specifying the `/path/to/passlock` in `Exec` and `Icon` fields
```ini
[Desktop Entry]
Encoding=UTF-8
Version=1.3.0
Type=Application
Terminal=false
Exec=/path/to/passlock/Passlock
Name=Passlock
Icon=/path/to/passlock/pass.png
```
Now app can be launched from applications menu
</details>
### Issues
Linux
In linux you may face issues with app not starting, it's likely if `xrandr` isn't installed.
- Install `xrandr` by `$ sudo dnf xrandr` in fedora or `$ sudo apt xrandr` in ubuntu
MacOS
- In MacOS after installing app you may face issues with app not starting, it's likely due to quarantine attribute set by MacOS.
- Remove quarantine attribute by running the following command in terminal:
```bash
xattr -cr /path/to/Passlock.app
```
- Now you can run the app by double clicking on the app icon or optionally add it to dock.
## Features 📝
- Backup and auto-sync ☁️ passwords across devices 💻📱
- Encrypted 🔐 passwords using AES 128bit for maximum security.
- Zero-knowledge encryption 🔒 ensures your master password is never stored or transmitted.
- Mimics Material v3 Monet engine with 🌙 Dark Mode, to use different 🎨 color themes.
- Make strong passwords 🔑 through built in password generator.
- Advanced 🔍 finding algorithm to search for passwords easily.
## Setup 🛠️
- Clone repo `git clone https://github.com/AM-ash-OR-AM-I/PasslockDesktop.git` & `cd PasslockDesktop`
- Run the following command in terminal to install dependencies in a virtual environment.
```sh
pip install --upgrade pip
python -m venv env
env\Scripts\activate
python -m pip install -r requirements.txt
```
- Copy kivymd folder to site-packages
- Windows: `xcopy kivymd\* env\Lib\site-packages\kivymd\ /E`
- Linux/MacOS: `cp -r kivymd/ .</path/to/site-packages>/kivymd/`
- Make a file named `libs\firebase_config.py` with the following content:
```py
import os
os.environ["WEB_API_KEY"] = "[YOUR WEB API KEY HERE]" # Find web api key in firebase project settings
os.environ["DATABASE_URL"] = "[YOUR DATABASE URL HERE]" # Find database url in firebase project settings
```
- To sanity check if everything is working fine, run `python main.py` and see if the app runs.
- Also you can run `pip list` to see if only the packages in `requirements.txt` are installed.
## Packaging 📦
### Windows 🪟
Automated
- Run `.\build_windows.bat` to make windows build, optionally you can set version number by passing it as argument.
- Example: `build_windows.bat 1.3.0`
- This will first make .exe file using PyInstaller and then make MSI installer inside `Passlock-SetupFiles` folder.
Manually
- Run `copy_kv_files.py` to copy kv files to `all_files` folder that will be used by PyInstaller.
- NOTE: Do this every time you make changes to kv files.
- Make sure environment is activated if not run `env\Scripts\activate`
- Windows `pyinstaller passlock_windows.spec --noconfirm`
Advanced Installer (MSI Build)
- Download and install Advanced Installer.
- Check to see if path is correct for advanced installer in `make_msi_build.bat` file.
- Run `make_msi_build.bat` to make MSI installer.
- Output will be in `Passlock-SetupFiles` folder.
- Run `Passlock-SetupFiles\Passlock.msi` to install and run app.
- NOTE: While installing you should not install in `Program Files` or `Program Files (x86)` folder as it will not have write permissions and app will not be able to create database file. Install in `C:\Passlock` or `D:\Passlock` or any other drive.
### Linux 🐧
Automated
- Run `./build_linux.sh` to make linux build, optionally you can set version number by passing it as argument.
- Example: `./build_linux.sh 1.3.0`
- This will make a tar.gz file inside `dist` folder.
- Extract the tar.gz file and run `./install.sh` to install the app.
Manually
- Run `copy_kv_files.py` to copy kv files to `all_files` folder that will be used by PyInstaller.
- NOTE: Do this every time you make changes to kv files.
- Make sure environment is activated if not run `source env/bin/activate`
- Linux `pyinstaller passlock_linux.spec --noconfirm`
### MacOS 🍎
Automated
- Run `./build_macos.sh` to make MacOS build, optionally you can set version number by passing it as argument.
- Example: `./build_macos.sh 1.3.0`
- This will make a `.dmg` file inside `dist` folder.
- Open the `.dmg` file and drag the app to Applications folder.
- Run the app from Applications folder.
Manually
- Run `copy_kv_files.py` to copy kv files to `all_files` folder that will be used by PyInstaller.
- NOTE: Do this every time you make changes to kv files.
- Make sure environment is activated if not run `source env/bin/activate`
- MacOS `pyinstaller passlock_macos.spec --noconfirm`
- Output will be in `dist/passlock` folder.
- Open the `.dmg` file and drag the app to Applications folder.
> [!NOTE]
> In case of any issues with packaging, please refer to the [Issues](#issues) section.
## Screenshots 📸
| Welcome | Home |
|--------------------------------------|-----------------------------------|
|  |  |
| Create Strong Passwords | Find |
|  |  |
| Backup and Sync | Choose Different Colors |
|  |  |
## Frameworks ⚙️
Made with 💖 in Python using Kivy as framework, along with
KivyMD library.