Monolith is a password manager application and a complete user data leak prevention system developed for users who either want to self-host their password managers on their infrastructures rather than giving the control over to a third party or for organizations or people who aren't as tech-savvy and want to take charge of their digital security and privacy. It allows users to securely store and manage their passwords. This documentation provides a guide on how to use the Monolith application.
You can watch an in-depth explanation of this project here:
Monolith.Password.Manager.Introduction.mp4
📽️ Find it on YouTube: https://www.youtube.com/watch?v=Tbqcxu5fYGg
- User authentication using Firebase
- Docker container for database deployment
- Secure password storage
- Password generation
- Password retrieval
- Password management
- NextJS
- TypeScript
- TailwindCSS
- Firebase
- Docker
- Snyk
These are the four components of our solution (and where to find them):
Before you begin, ensure you have the following prerequisites installed:
- Node.js & npm (Node Package Manager)
- Git
- Docker
- Firebase account
- Make (Optional)
- A hosting provider (Optional)
- Clone the Monolith repository from GitHub. Using the following command:
git clone https://github.com/NotSooShariff/Password-Manager.git
- Navigate to the project directory using the following commands:
cd Password-Manager
- Install dependencies using:
npm install
- Pull the database from docker:
docker pull notsooshariff/mono-db
- Create a Firebase project at Firebase Console.
- Obtain Firebase API Keys (apiKey, authDomain, projectId, etc.).
- Use the
.env.template
to create a.env.local
and paste all your API Keys there so that the app can access these variables locally. - Once you have set this up, you will be able to use Firebase OAUTH to log in to your Application.
- The application follows a typical NextJS project's structure with the latest version
First, Get your database up and running:
docker run -d --name my-mongodb-container -p 5000:5000 notsooshariff/mono-db
Once your database is running and your Firebase keys have been configured, run the development server:
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
Open http://localhost:3000 with your browser to see the website live.
This project is licensed under the MIT License - see the LICENSE.md file for details.
Contributions are welcome! Feel free to fork the repo and issue a pull request to improve this project.