Skip to content

GDGVIT/envoy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

GDSC VIT

Envoy - Secure Environment Variable Management

A secure platform for managing and sharing environment variables across development teams


Join Us Discord Chat

DOCS UI

Overview

The Environment Sharing Platform is a secure web application that enables development teams to safely manage, store, and share environment variables without exposing sensitive credentials through insecure channels like Slack or email. Built with Next.js and MongoDB, it provides an encrypted, centralized vault for all your environment variables.

Features

  • Secure Environment Variable Storage - Encrypted storage of API keys, database credentials, and other sensitive configuration data
  • Team Collaboration - Create workspaces and groups to organize and share environment variables with team members
  • Role-based Access Control - Owner and member roles with appropriate permissions for workspace and group management
  • Authentication System - Secure user registration and login with NextAuth.js integration
  • Workspace Management - Create, edit, and delete workspaces to organize your projects
  • Group Management - Organize environment variables into groups within workspaces
  • Member Management - Add and remove team members from groups and workspaces
  • Sharing Tokens - Generate secure tokens for sharing environment variables
  • Dark/Light Theme - Toggle between dark and light themes for better user experience
  • Responsive Design - Fully responsive design that works on desktop and mobile devices
  • Rate Limiting - Built-in rate limiting to prevent abuse and ensure system stability
  • NodeJS and Python SDK - Fetch enviornment variables directly from the terminal
  • Basic Groups - Create basic groups with limited features

Tech Stack

Frontend

  • Next.js 15 - React framework for production
  • React 18 - JavaScript library for building user interfaces
  • TypeScript 5 - Typed superset of JavaScript
  • Tailwind CSS 4 - Utility-first CSS framework
  • Lucide React - Beautiful & consistent icon toolkit
  • Next Themes - Perfect dark mode in 2 lines of code

Backend

  • Next.js API Routes - Serverless API endpoints
  • MongoDB - NoSQL database for data storage
  • Mongoose - MongoDB object modeling for Node.js
  • NextAuth.js - Complete open source authentication solution

Security & Utilities

  • bcryptjs - Password hashing library
  • crypto-js - Cryptographic algorithms for data encryption
  • rate-limiter-flexible - Rate limiting middleware
  • custom-uuid - UUID generation for unique identifiers

Development Tools

  • ESLint - JavaScript linter
  • PostCSS - Tool for transforming CSS with JavaScript
  • Autoprefixer - PostCSS plugin to parse CSS and add vendor prefixes

Dependencies

Production Dependencies

  • next (^15.3.5)
  • react (18.2.0)
  • react-dom (18.2.0)
  • mongoose (^8.15.1)
  • next-auth (^4.24.11)
  • bcryptjs (^3.0.2)
  • crypto-js (^4.2.0)
  • tailwindcss (^4.0.0)
  • next-themes (^0.4.6)
  • lucide-react (^0.522.0)
  • rate-limiter-flexible (^7.1.1)
  • sonner (^2.0.6)
  • custom-uuid (^3.1.1)
  • clsx (^2.1.1)

Development Dependencies

  • typescript (^5)
  • @types/node (^20)
  • @types/react (^19)
  • @types/react-dom (^19)
  • @types/crypto-js (^4.2.2)
  • eslint (^8.56.0)
  • eslint-config-next (15.3.2)

Running

Prerequisites

  • Node.js (v18 or higher)
  • MongoDB database
  • npm or yarn package manager

Installation

  1. Clone the repository:
git clone https://github.com/GDGVIT/env-sharing.git
cd env-sharing/web-app
  1. Install dependencies:
npm install
  1. Set up environment variables: Create a .env.local file in the web-app directory with the following variables:
# Database
NEXT_MONGO_URI=your_mongodb_connection_string

# NextAuth Configuration
NEXTAUTH_URL=http://localhost:3000
NEXTAUTH_SECRET=your_nextauth_secret

#Google oAuth Credentials
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret

# Encryption
NEXT_PUBLIC_ENCRYPTION_SECRET=your_32_character_encryption_key

#Others
NEXT_PUBLIC_APP_NAME=your_app_name

Development

Start the development server:

npm run dev

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

Production

Build and start the production server:

npm run build
npm start

Linting

Run ESLint to check for code quality issues:

npm run lint

Project Structure

web-app/
├── src/
│   ├── app/                    # App router pages and API routes
│   │   ├── api/                # API endpoints
│   │   │   ├── (auth)/         # Authentication routes
│   │   │   └── (user)/         # User-related routes
│   │   ├── dashboard/          # Dashboard pages
│   │   ├── login/              # Login page
│   │   └── signup/             # Signup page
│   ├── components/             # Reusable React components
│   │   ├── dashboard/          # Dashboard-specific components
│   │   └── misc/               # Miscellaneous components
│   ├── models/                 # MongoDB schemas
│   ├── providers/              # React context providers
│   ├── types/                  # TypeScript type definitions
│   └── utils/                  # Utility functions
├── public/                     # Static assets
└── package.json               # Project dependencies and scripts

Contributors

Chirayu Sahu

Chirayu Sahu

GitHub LinkedIn

Frontend / Backend

Humaidh

Chirayu Sahu

GitHub LinkedIn

Security

Made with ❤ by GDSC-VIT

About

secure platform for managing and sharing environment variables across development teams

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Contributors 2

  •  
  •  

Languages