Home
Softono

Zecrypt Server

Open source TypeScript
44
Stars
1
Forks
2
Issues
1
Watchers
9 months
Last Commit

 About Zecrypt Server

Open source Password Manager, Encrypted Data management Platform - https://app.zecrypt.io (open-source alternative to Lastpass, Dashlane)

Platforms

Web Self-hosted

Languages

TypeScript

Need Help Installing Zecrypt Server?

We provide expert installation service for this software. Our team will install, configure, and secure Zecrypt Server on your server. plans start at just $30.

Zecrypt Server

View on GitHub

Zecrypt Server

A modern, secure, and scalable application built with FastAPI and Next.js. This monorepo contains both the backend server and frontend web application.

πŸš€ Features

  • Backend (FastAPI)

    • RESTful API with OpenAPI documentation
    • MongoDB database integration
    • JWT authentication
    • Rate limiting
    • CORS support
    • Internationalization (i18n)
    • Structured logging
    • Redis caching
    • TOTP (Time-based One-Time Password) support
  • Frontend (Next.js)

    • Modern React with TypeScript
    • Responsive UI with Tailwind CSS
    • Internationalization support
    • Dark/Light theme
    • Redux state management
    • Form handling with React Hook Form
    • Beautiful UI components with Radix UI
    • Toast notifications
    • Data visualization with Recharts

πŸ“‹ Prerequisites

  • Python 3.11+
  • Node.js 18+
  • MongoDB
  • Redis
  • Docker (optional)

πŸ› οΈ Installation

Backend Setup

  1. Navigate to the backend directory:

    cd packages/backend-server
    
  2. Create a virtual environment:

    python -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
    
  3. Install dependencies:

    pip install -r requirements.txt
    
  4. Create a .env file with the following variables:

    MONGO_DB_URL=your_mongodb_url
    JWT_SECRET=your_jwt_secret
    JWT_ALGORITHM=HS512
    ENV=development
    DB_NAME=your_db_name
    STACK_AUTH_PROJECT_ID=your_project_id
    STACK_AUTH_CLIENT_ID=your_client_id
    STACK_AUTH_CLIENT_SECRET=your_client_secret
    TOTP_SECRET=your_totp_secret
    

Frontend Setup

  1. Navigate to the frontend directory:

    cd packages/frontend-web
    
  2. Install dependencies:

    npm install
    
  3. Create a .env.local file with necessary environment variables (if required)

πŸš€ Running the Application

Backend

  1. Start the backend server:

    cd packages/backend-server
    uvicorn app.main:app --reload
    

    The server will start at http://localhost:8000

    • API Documentation: http://localhost:8000/docs (Swagger UI)
    • Alternative Documentation: http://localhost:8000/redoc (ReDoc)

Frontend

  1. Start the frontend development server:

    cd packages/frontend-web
    npm run dev
    

    The application will be available at http://localhost:3000

🐳 Docker Deployment

Backend

  1. Build the Docker image:

    cd packages/backend-server
    docker build -t zecrypt-backend .
    
  2. Run the container:

    docker run -p 8080:8080 zecrypt-backend
    

Frontend

  1. Build the Docker image:

    cd packages/frontend-web
    docker build -t zecrypt-frontend .
    
  2. Run the container:

    docker run -p 3000:3000 zecrypt-frontend
    

πŸ“š API Documentation

When running in development mode, the API documentation is available at:

  • Swagger UI: http://localhost:8000/docs
  • ReDoc: http://localhost:8000/redoc
  • OpenAPI Schema: http://localhost:8000/openapi.json

Note: API documentation is disabled in production environment for security reasons.

πŸ”’ Security

  • JWT-based authentication
  • Rate limiting to prevent abuse
  • CORS protection
  • Environment-based configuration
  • Secure password hashing
  • TOTP for two-factor authentication

🌐 Internationalization

The application supports multiple languages through:

  • Backend: Custom i18n implementation
  • Frontend: next-intl for translations

πŸ“ License

This project is licensed under the terms of the license included in the repository.

🀝 Contributing

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

πŸ“ž Support

For support, please open an issue in the repository or contact the maintainer @anandude itsmeakhil.