CipherNook combines “cipher” (implying strong encryption and security) with “nook,” which suggests a safe, secluded spot for your sensitive data.
- Securely store and manage your passwords.
- Generate strong, customizable passwords.
- User-friendly interface with dark mode support.
- Categorize and search passwords easily.
- Navigate to the
Backend
directory:cd Backend
- Create a virtual environment (optional but recommended):
- Using Python's
venv
:python -m venv env source env/bin/activate # On Windows: env\Scripts\activate
- Using Conda:
conda create -n ciphernook python=3.9 conda activate ciphernook
- Using Python's
- Install dependencies:
pip install -r requirements.txt
- Start the backend server:
python main.py
- Run the backend server using Uvicorn:
uvicorn main:app --reload
- Navigate to the
FrontEnd
directory:cd FrontEnd
- Install dependencies:
npm install
- Start the development server:
npm run dev
To enable database encryption using SQLCipher, follow these steps:
-
Install SQLCipher:
- On Windows, download and install SQLCipher from the official website or use a package manager like
choco
. - On Linux, use your package manager (e.g.,
apt install sqlcipher
). - On macOS, use Homebrew:
brew install sqlcipher
.
- On Windows, download and install SQLCipher from the official website or use a package manager like
-
Update the backend to use SQLCipher:
- Ensure the
PRAGMA key
statement is included in the database connection code. - Replace
your-encryption-key
with a secure key of your choice.
- Ensure the
-
Test the setup:
- Run the backend and ensure the database is encrypted by attempting to open it with a standard SQLite client (it should fail without the key).
The application now includes a master password feature for enhanced security. Follow these steps:
-
First-Time Setup:
- When you launch the application for the first time, you will be prompted to set a master password.
- This password will be required to access your vault.
-
Updating Master Password:
- Navigate to the Settings page in the application.
- Enter your current master password and the new password to update it.
-
Backend Endpoints:
/set_master_password
: Sets the master password for the first time./validate_master_password
: Validates the master password during login./update_master_password
: Updates the master password.
The following dependencies were added:
- Backend:
passlib
: For securely hashing and verifying passwords.
To install the new dependencies, run:
pip install -r requirements.txt
The frontend automatically decrypts passwords fetched from the backend. Ensure the backend sends encrypted passwords in Base64 format for compatibility.
- Open your browser and navigate to
http://localhost:3000
(or the port shown in the terminal).
CipherNook can be run offline for enhanced security. Follow these steps:
- Ensure Python is installed on your system.
- Navigate to the
Backend
directory:cd Backend
- Start the backend server:
python main.py
- Run the backend server using Uvicorn:
uvicorn main:app --reload
- Navigate to the
FrontEnd
directory:cd FrontEnd
- Install dependencies:
npm install
- Build the frontend for production:
npm run build
- Serve the built files locally using a static file server:
npx serve dist
- Open your browser and navigate to
http://localhost:5000
(or the port shown in the terminal).
CipherNook can be deployed on a Raspberry Pi Zero 2W for a compact and secure setup.
- Raspberry Pi OS installed on the Pi Zero 2W.
- Python and Node.js installed on the Pi.
- Clone the repository onto the Pi:
git clone <repository-url> cd CipherNook
- Follow the Backend Setup and Frontend Setup instructions.
- Use the Pi's IP address to access the application from other devices on the same network.
Backend/
: Contains the backend code (FastAPI-based).FrontEnd/
: Contains the frontend code (React + TypeScript).src/components/
: Organized components for the frontend.
- Fork the repository.
- Create a new branch:
git checkout -b feature-name
- Commit your changes:
git commit -m "Add feature description"
- Push to the branch:
git push origin feature-name
- Open a pull request.
This project is licensed under the MIT License. See the LICENSE
file for details.