A secure, enterprise-grade API key management platform built with modern technologies. Store, organize, and share your API keys with military-grade encryption and intuitive team collaboration features.
- AES-256 Encryption - Military-grade encryption for all API keys
- Zero-Trust Architecture - Multi-factor authentication and least-privilege access
- Complete Audit Trail - Track every access, modification, and sharing event
- SOC 2 Compliant - Enterprise-grade security standards
- Role-Based Access Control - Granular permissions for team members
- Secure Sharing - Share API keys with specific team members
- Team Management - Create and manage teams with custom roles
- Activity Monitoring - Real-time activity logs and notifications
- Lightning Fast Access - Organize keys by service, environment, and tags
- REST API - Programmatic access to your keys
- Search & Filter - Find keys instantly with powerful search
- Copy to Clipboard - One-click copying with visual feedback
- Light/Dark Mode - Smooth theme switching
- Responsive Design - Works perfectly on all devices
- Premium Design - Clean, professional interface
- Smooth Animations - Subtle, elegant transitions
- Next.js 15 - React framework with App Router
- TypeScript - Type-safe development
- Tailwind CSS - Utility-first styling
- Lucide React - Beautiful icons
- Custom Components - Reusable UI components
- Go - High-performance backend
- Gin Framework - HTTP web framework
- PostgreSQL - Relational database
- JWT - Secure authentication
- bcrypt - Password hashing
- Docker - Containerization
- Docker Compose - Local development
- Nginx - Reverse proxy
- SSL/TLS - Secure connections
- Node.js 18+
- Go 1.21+
- PostgreSQL 14+
- Docker & Docker Compose (optional)
-
Clone the repository
git clone https://github.com/yourusername/one-password.git cd one-password
-
Install dependencies
# Install frontend dependencies cd apps/web npm install # Install backend dependencies cd ../api go mod download
-
Set up environment variables
# Copy environment files cp apps/api/.env.example apps/api/.env cp apps/web/.env.example apps/web/.env.local
-
Configure database
# Start PostgreSQL (using Docker) docker-compose up -d postgres # Or use your local PostgreSQL instance createdb one_password
-
Run database migrations
cd apps/api go run main.go migrate
-
Start the development servers
# Terminal 1 - Backend cd apps/api go run main.go # Terminal 2 - Frontend cd apps/web npm run dev
-
Access the application
- Frontend: http://localhost:3000
- Backend API: http://localhost:5000
one-password/
βββ apps/
β βββ api/ # Go backend
β β βββ cmd/ # Application entry points
β β βββ internals/ # Internal packages
β β β βββ handlers/ # HTTP handlers
β β β βββ services/ # Business logic
β β β βββ models/ # Data models
β β β βββ middleware/ # HTTP middleware
β β βββ migrations/ # Database migrations
β β βββ main.go # Main application file
β βββ web/ # Next.js frontend
β βββ src/
β β βββ app/ # App Router pages
β β βββ components/ # React components
β β βββ lib/ # Utilities and API client
β β βββ styles/ # Global styles
β βββ package.json
βββ docker-compose.yml # Docker services
βββ Dockerfile.api # Backend Docker image
βββ Dockerfile.web # Frontend Docker image
βββ README.md
# Database
DB_HOST=localhost
DB_PORT=5432
DB_USER=postgres
DB_PASSWORD=password
DB_NAME=one_password
# JWT
JWT_SECRET=your-super-secret-jwt-key
JWT_EXPIRY=24h
# Server
PORT=5000
HOST=0.0.0.0
# Encryption
ENCRYPTION_KEY=your-32-character-encryption-key
# API Configuration
NEXT_PUBLIC_API_URL=http://localhost:5000
NEXT_PUBLIC_APP_NAME=One-Password
-
Clone and navigate to project
git clone https://github.com/yourusername/one-password.git cd one-password
-
Configure environment
cp .env.example .env # Edit .env with your configuration
-
Start all services
docker-compose up -d
-
Run migrations
docker-compose exec api go run main.go migrate
-
Access the application
- Frontend: http://localhost:3000
- Backend: http://localhost:5000
# Build and run backend
docker build -f Dockerfile.api -t one-password-api .
docker run -p 5000:5000 one-password-api
# Build and run frontend
docker build -f Dockerfile.web -t one-password-web .
docker run -p 3000:3000 one-password-web
Create a new user account.
Request:
{
"fullName": "John Doe",
"email": "john@example.com",
"password": "securepassword"
}
Response:
{
"id": 1,
"fullName": "John Doe",
"email": "john@example.com",
"token": "jwt-token-here"
}
Authenticate user and get access token.
Request:
{
"email": "john@example.com",
"password": "secret"
}
List all API keys for the authenticated user.
Headers:
Authorization: Bearer <jwt-token>
Response:
[
{
"id": 1,
"name": "OpenAI API Key",
"description": "Production API key for OpenAI",
"tags": "production,ai,openai",
"createdAt": "2024-01-01T00:00:00Z",
"updatedAt": "2024-01-01T00:00:00Z"
}
]
Create a new API key.
Request:
{
"name": "OpenAI API Key",
"key": "sk-...",
"description": "Production API key for OpenAI",
"tags": "production,ai,openai"
}
Reveal an encrypted API key.
Request:
{
"name": "OpenAI API Key"
}
Delete an API key.
Request:
{
"name": "OpenAI API Key"
}
cd apps/api
go test ./...
cd apps/web
npm test
cd apps/web
npm run test:e2e
- All API keys are encrypted using AES-256 before storage
- Encryption keys are managed securely
- No plain text storage of sensitive data
- JWT-based authentication
- Password hashing with bcrypt
- Secure session management
- HTTPS enforcement
- CORS configuration
- Rate limiting
- Input validation and sanitization
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
- Follow the existing code style
- Write tests for new features
- Update documentation as needed
- Ensure all tests pass before submitting PR
This project is licensed under the MIT License - see the LICENSE file for details.
- Documentation: docs.one-password.com
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Email: aojharaj2004@gmail.com
- Next.js - React framework
- Go - Backend language
- Tailwind CSS - Styling
- Lucide - Icons
- PostgreSQL - Database
Built with β€οΈ for developers who value security and simplicity.