letuspass

Password manager for teams and personal use

WTFPL License

Stars
4
Committers
1

LetusPass

LetusPass is a password manager application for teams and personal use. The name is derived from "Let us pass".

Backend stack: Go, Gin, Gorm, PostgreSQL, swaggo/swag, zerolog Frontend stack: React, Mantine, React Router, Redux, React Query, Axios, Orval

Features

  • End-to-end encryption
    • Every encryption and decryption is done on the client side. The server never
      sees saved credentials in unencrypted form.
  • Shareble/Collabrative vaults
  • Vault audit logs
  • Permission management
  • Mobile friendly UI
  • OpenAPI/Swagger documentation
  • Structured json logging

Demo

Watch demo video on YouTube:

Try on your local machine

Simply just run docker compose up in the root directory.

The application will be available at http://localhost:3000.

You can access the OpenAPI documentation at http://localhost:8080/swagger/index.html.

You can stop the application with Ctrl+C and remove the containers using docker compose down command.

Database ERD

Encryption System

Every user has a private and a public key which derived from the user's password and a salt. Public keys are uploaded to the server where other users can retrieve.

Every vault has a vault key which is used to encrypt and decrypt the vault items. Vault keys are stored in encrypted form in the database. Vault keys need to be decrypted before use. Decryption is done on the client side as well.

To understand how encryption and decryption work in the application, you can study below graphs and flows. They only includes parts related to encryption/decryption (permission management, audit logging, error handling, etc. are not included).


Backend documentation at backend/ Frontend documentation at frontend/

Package Rankings
Top 6.42% on Proxy.golang.org
Badges
Extracted from project README's
Demo video
Related Projects