Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/berk-karaal/letuspass
Password manager for teams and personal use
https://github.com/berk-karaal/letuspass
gin go react typescript
Last synced: 2 months ago
JSON representation
Password manager for teams and personal use
- Host: GitHub
- URL: https://github.com/berk-karaal/letuspass
- Owner: berk-karaal
- License: wtfpl
- Created: 2024-08-17T09:22:37.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2024-09-16T20:52:11.000Z (3 months ago)
- Last Synced: 2024-09-26T20:05:25.504Z (3 months ago)
- Topics: gin, go, react, typescript
- Language: Go
- Homepage:
- Size: 2.5 MB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# LetusPass
- [LetusPass](#letuspass)
- [Features](#features)
- [Demo](#demo)
- [Try on your local machine](#try-on-your-local-machine)
- [Database ERD](#database-erd)
- [Encryption System](#encryption-system)
LetusPass is a password manager application for teams and personal use. The name is derived from
"Let us pass".**Backend stack:** [Go](https://go.dev/), [Gin](https://github.com/gin-gonic/gin),
[Gorm](https://github.com/go-gorm/gorm), [PostgreSQL](https://www.postgresql.org/),
[swaggo/swag](https://github.com/swaggo/swag), [zerolog](https://github.com/rs/zerolog)
**Frontend stack:** [React](https://react.dev/), [Mantine](https://mantine.dev/), [React
Router](https://reactrouter.com/), [Redux](https://redux.js.org/), [React
Query](https://tanstack.com/query/latest/docs/framework/react/overview),
[Axios](https://github.com/axios/axios), [Orval](https://github.com/orval-labs/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:
[![Demo video](https://img.youtube.com/vi/k7Nc9b3VfMY/0.jpg)](https://youtu.be/k7Nc9b3VfMY)
## 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).Cryptography Related ERD
Register Flow
Login Flow
Create Vault Flow
Get Raw Vault Key Flow
Add User to Vault Flow
Add New Vault Item to Vault Flow
Retrieve a Vault Item Flow
Update a Vault Item Flow
---
Backend documentation at [backend/](./backend/README.md)
Frontend documentation at [frontend/](./frontend/README.md)