CipherVault is a secure, efficient cloud storage prototype designed with privacy and performance in mind. It features client-side convergent encryption for secure deduplication, a modern responsive UI, and a robust backend architecture.
-
Secure Authentication:
- Robust user registration and login system.
- Password hashing and CSRF protection.
-
Convergent Encryption:
- Files are encrypted using keys derived from their own content.
- Ensures that identical files generate identical ciphertext, enabling secure deduplication across users without compromising privacy.
-
Storage Efficiency:
- Deduplication: Identical files are stored only once on the server, significantly reducing storage costs.
- Merkle Tree Verification: Ensures file integrity.
-
Modern Architecture:
- Modular Backend: Built with Flask Blueprints and Application Factory pattern.
- Type-Safe ORM: Powered by SQLModel (Pydantic + SQLAlchemy).
- Robust Database: Uses PostgreSQL for reliable data storage.
- Automated Migrations: Database schema managed by Alembic.
-
Responsive UI:
- Designed with Tailwind CSS for a clean, modern user experience on any device.
- Language: Python 3.9+
- Web Framework: Flask
- Database: PostgreSQL
- ORM: SQLModel
- Migrations: Alembic
- Frontend: Tailwind CSS, HTML5, JavaScript
- Security: PyCryptodome (Encryption), Flask-Login (Auth), Flask-WTF (CSRF)
- Python 3.9+
- PostgreSQL: Ensure a PostgreSQL server is running.
- Default Database Name:
cipher-vault - Default User/Password:
postgres/postgres - (Configuration can be changed in
.envorconfig.py)
- Default Database Name:
-
Clone the repository:
git clone <repository-url> cd CipherVault
-
Start the Application: We provide a convenience script that handles virtual environment creation, dependency installation, database migration, and server startup automatically.
chmod +x run.sh ./run.sh
The server will start at
http://127.0.0.1:5002.
If you prefer to run commands manually:
-
Create and Activate Virtual Environment:
python3 -m venv .venv source .venv/bin/activate -
Install Dependencies:
pip install -r requirements.txt
-
Initialize Database:
alembic upgrade head
-
Run Server:
python run.py
This project is licensed under the MIT License.