PasslockDesktop

Passlock Desktop 🗝️

[GitHub release (latest by date)]

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 | |--------------------------------------|-----------------------------------| | ![](/PasslockDesktop/screenshots/WelcomeScreen.png) | ![](/PasslockDesktop/screenshots/HomeScreen.png) | | Create Strong Passwords | Find | | ![](/PasslockDesktop/screenshots/DarkMode.png) | ![](/PasslockDesktop/screenshots/FindScreen.png) | | Backup and Sync | Choose Different Colors | | ![](/PasslockDesktop/screenshots/sync.png) | ![](/PasslockDesktop/screenshots/colors.png) | ## Frameworks ⚙️ Made with 💖 in Python using Kivy as framework, along with KivyMD library.