ethervault

EtherVault

EtherVault is a modern, cross-platform password manager designed for industrial-grade security and a seamless user experience. It supportsDesktop and Mobile (Android/iOS) platforms, helping you securely store, manage, and sync your sensitive credentials.

English 中文 日本語 한국어

preview

📖 Project Overview

EtherVault is built using a Monorepo architecture, with core business logic separated from the UI layer to ensure high code reusability and consistency across platforms. The project features built-in robust local encryption (AES-256), supports end-to-end encrypted synchronization with major cloud storage services (like Google Drive), and integrates advanced features such as biometric unlock and password health analysis. It is dedicated to creating the most secure digital vault for users.

🚀 Features

🔐 Core Vault

🛡️ Security Dashboard

🎲 Password Generator

⚙️ Settings & Ecosystem

🛠️ Tech Stack

This project is built on a modern frontend technology stack:

💻 Development Guide

Prerequisites

1. Google Console Setup (For Cloud Sync)

Before running the app, you need to set up a project in Google Cloud Console to enable Google Drive synchronization:

  1. Go to Google Cloud Console.
  2. Create a new project (e.g., ethervault-dev).
  3. Enable API:
    • Navigate to APIs & Services > Library.
    • Search for Google Drive API and enable it.
  4. Configure OAuth Consent Screen:
    • Go to APIs & Services > OAuth consent screen.
    • Select External (unless you are a G-Suite user).
    • Fill in required app information.
    • Add your email as a Test User.
  5. Create Credentials (Web Client):
    • Go to APIs & Services > Credentials.
    • Click Create Credentials > OAuth Client ID.
    • Application type: Web application.
    • Add Authorized JavaScript origins: http://localhost:3000 (and http://localhost:5173 if needed).
    • Add Authorized redirect URIs: http://localhost:3000 (and http://localhost:5173 if needed).
    • Copy the Client ID.
  6. Create Credentials (iOS Client):
    • Go to APIs & Services > Credentials.
    • Click Create Credentials > OAuth Client ID.
    • Application type: iOS.
    • Add Bundle ID: com.ethervault.app.
    • Copy the Client ID.
  7. Configure Environment Variables:
    • Create a .env file in packages/app/.env (copy from .env.example if available).
    • Add your credentials:
      # This is for local development
      VITE_GOOGLE_CLIENT_ID=your_client_id_here
      # This is for native application on iOS, Android, and Desktop
      VITE_GOOGLE_CLIENT_ID_IOS=your_client_id_here
      

2. Install Dependencies

Run in the project root:

npm install

3. Start Development Environment

Web Mode (Browser):

npm run dev

Desktop Mode (Electron):

npm run dev:desktop

Mobile Sync (Capacitor):

npm run mobile:sync

4. Build & Package

Build Web Assets:

npm run build

Build Desktop App:

npm run dist:desktop

Build iOS/Android:

# iOS
npm run build:ios

# Android
npm run build:android

5. Other Commands

Clean Project:

npm run clean

Type Check:

npm run type-check

📄 License

This project is licensed under the MIT License. You are free to use, modify, and distribute the code of this project unless otherwise specified.

🤝 Contribution

Contributions are welcome! If you have suggestions or find bugs, please follow these steps:

  1. Fork the repository.
  2. Create your feature branch (git checkout -b feature/AmazingFeature).
  3. Commit your changes (git commit -m 'Add some AmazingFeature').
  4. Push to the branch (git push origin feature/AmazingFeature).
  5. Open a Pull Request.

EtherVault — Secure locally, Sync globally.