Skip to content

bradwbu/odymail

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

16 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Encrypted Email Service

A secure, end-to-end encrypted email service with cloud storage, built with modern web technologies and enterprise-grade security.

✨ Features

  • πŸ” End-to-End Encryption - Client-side encryption using RSA and AES-256-GCM
  • πŸ“§ Secure Email - Encrypted email communication with @odyssie.net addresses
  • ☁️ Cloud Storage - Encrypted file storage with sharing capabilities
  • πŸ’³ Subscription Management - Flexible billing with Stripe integration
  • πŸ“Š Analytics Dashboard - Usage tracking and storage management
  • πŸ›‘οΈ Security Features - Rate limiting, abuse prevention, and security monitoring
  • 🌐 Cross-Platform - Responsive web interface with offline support
  • πŸ“ˆ Monitoring - Comprehensive monitoring with Prometheus and Grafana

πŸš€ Quick Start

Get up and running in under 5 minutes:

Prerequisites

Installation

# Clone the repository
git clone https://github.com/your-org/encrypted-email-service.git
cd encrypted-email-service

# Copy environment configuration
cp .env.example .env

# Start all services
docker-compose up -d

# Wait for services to be ready (30-60 seconds)
# Check health
curl http://localhost/health

Access the Application

That's it! πŸŽ‰

πŸ“– Documentation

πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   Frontend      β”‚    β”‚    Backend      β”‚    β”‚   Database      β”‚
β”‚   (React)       │◄──►│   (Node.js)     │◄──►│   (MongoDB)     β”‚
β”‚                 β”‚    β”‚                 β”‚    β”‚                 β”‚
β”‚ β€’ React 18      β”‚    β”‚ β€’ Express.js    β”‚    β”‚ β€’ MongoDB 6.0   β”‚
β”‚ β€’ TypeScript    β”‚    β”‚ β€’ TypeScript    β”‚    β”‚ β€’ Redis 7       β”‚
β”‚ β€’ Vite          β”‚    β”‚ β€’ JWT Auth      β”‚    β”‚                 β”‚
β”‚ β€’ Framer Motion β”‚    β”‚ β€’ WebSockets    β”‚    β”‚                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚                       β”‚                       β”‚
         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                 β”‚
                    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                    β”‚   Monitoring    β”‚
                    β”‚                 β”‚
                    β”‚ β€’ Prometheus    β”‚
                    β”‚ β€’ Grafana       β”‚
                    β”‚ β€’ Loki          β”‚
                    β”‚ β€’ Alertmanager  β”‚
                    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ”§ Development

Local Development

# Install dependencies
npm install

# Start backend development server
cd packages/backend
npm run dev

# Start frontend development server (new terminal)
cd packages/frontend
npm run dev

Testing

# Run all tests
npm test

# Run specific test suites
npm run test:backend
npm run test:frontend
npm run test:e2e

# Run infrastructure tests
cd tests/infrastructure
npm test

Code Quality

# Lint code
npm run lint

# Format code
npm run format

# Type checking
npm run type-check

πŸš€ Deployment

Docker Compose (Recommended)

# Production deployment
./scripts/deploy-production.sh

# Staging deployment
./scripts/deploy-staging.sh

Kubernetes

# Apply Kubernetes manifests
kubectl apply -f k8s/

# Check deployment status
kubectl get pods -n encrypted-email

Manual Deployment

See the Installation Guide for detailed manual deployment instructions.

πŸ›‘οΈ Security

This application implements enterprise-grade security features:

  • Encryption: End-to-end encryption with RSA-4096 and AES-256-GCM
  • Authentication: JWT-based authentication with secure session management
  • Authorization: Role-based access control and permission systems
  • Input Validation: Comprehensive input sanitization and validation
  • Rate Limiting: API rate limiting and abuse prevention
  • Security Headers: HSTS, CSP, and other security headers
  • Monitoring: Security event logging and intrusion detection

πŸ“Š Monitoring

Built-in monitoring stack includes:

  • Prometheus - Metrics collection and alerting
  • Grafana - Visualization and dashboards
  • Loki - Log aggregation and analysis
  • Alertmanager - Alert routing and notifications

Access monitoring at http://localhost:3000 (admin/admin)

πŸ”„ CI/CD

Automated pipelines for:

  • Testing - Unit, integration, and security tests
  • Building - Docker image builds with security scanning
  • Deployment - Blue-green deployments with rollback
  • Monitoring - Health checks and performance monitoring

Supports both GitHub Actions and GitLab CI/CD.

πŸ“ Environment Variables

Key configuration variables:

# Security (REQUIRED)
JWT_SECRET=your-super-secret-jwt-key-minimum-32-characters-long
ENCRYPTION_KEY=your-32-character-encryption-key-here

# Database
MONGO_USERNAME=admin
MONGO_PASSWORD=your-secure-mongodb-password
REDIS_PASSWORD=your-secure-redis-password

# Domain
DOMAIN=yourdomain.com
CORS_ORIGIN=https://yourdomain.com

# Payment (Stripe)
STRIPE_SECRET_KEY=sk_live_your_stripe_secret_key
STRIPE_WEBHOOK_SECRET=whsec_your_stripe_webhook_secret

See .env.example for all available options.

🀝 Contributing

We welcome contributions! Please see our Contributing Guide for details.

Development Workflow

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Make your changes
  4. Add tests for new functionality
  5. Ensure all tests pass (npm test)
  6. Commit your changes (git commit -m 'Add amazing feature')
  7. Push to the branch (git push origin feature/amazing-feature)
  8. Open a Pull Request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ†˜ Support

πŸ™ Acknowledgments


Made with ❀️ for secure communication

Build Status Security Rating Coverage License: MIT

About

No description, website, or topics provided.

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors