Skip to content

AM-ash-OR-AM-I/PasslockDesktop

Repository files navigation

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 <output_path>
  • 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
cd ~/.local/share/applications
nano passlock.desktop

Paste the following lines by specifying the /path/to/passlock in Exec and Icon fields

[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

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:

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.
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:
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 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.