This commit is contained in:
Iliyan Angelov
2025-09-14 23:24:25 +03:00
commit c67067a2a4
71311 changed files with 6800714 additions and 0 deletions

325
README.md Normal file
View File

@@ -0,0 +1,325 @@
# GNX Mail - Modern Email Client
A comprehensive, secure, and feature-rich email server built with Django and React. GNX Mail provides a complete email solution with modern UI, advanced security features, and enterprise-grade functionality.
## 🚀 Features
### Core Email Functionality
- **Send & Receive Emails**: Full SMTP/IMAP support with multiple email providers
- **Rich Text Editor**: Compose emails with rich formatting, attachments, and signatures
- **Email Threading**: Conversation view for better email organization
- **Advanced Search**: Powerful search with filters and saved searches
- **Email Templates**: Create and manage reusable email templates
- **Auto-reply**: Set up automatic responses for out-of-office scenarios
### Security & Privacy
- **End-to-End Encryption**: Secure email communication
- **Two-Factor Authentication**: Enhanced account security
- **Rate Limiting**: Protection against spam and abuse
- **CSRF Protection**: Cross-site request forgery protection
- **Secure Password Storage**: Encrypted password storage with bcrypt
- **Login Attempt Monitoring**: Track and prevent unauthorized access
### User Experience
- **Modern React UI**: Beautiful, responsive interface
- **Dark/Light Theme**: Customizable appearance
- **Mobile Responsive**: Works perfectly on all devices
- **Real-time Notifications**: Instant email notifications
- **Drag & Drop**: Easy file attachment handling
- **Keyboard Shortcuts**: Power user features
### Organization & Management
- **Custom Folders**: Organize emails with custom folders
- **Contact Management**: Comprehensive contact system with groups
- **Email Rules**: Automated email processing and organization
- **Bulk Actions**: Manage multiple emails at once
- **Email Signatures**: Professional email signatures
- **Import/Export**: Backup and restore functionality
### Enterprise Features
- **Multi-user Support**: Team collaboration features
- **Admin Dashboard**: Comprehensive administration panel
- **API Access**: RESTful API for integrations
- **Audit Logs**: Complete activity tracking
- **Scalable Architecture**: Built for growth
## 🛠 Technology Stack
### Backend
- **Django 4.2**: Python web framework
- **PostgreSQL**: Robust database system
- **Redis**: Caching and message broker
- **Celery**: Asynchronous task processing
- **JWT Authentication**: Secure token-based auth
- **Django REST Framework**: API development
### Frontend
- **React 18**: Modern JavaScript framework
- **Tailwind CSS**: Utility-first CSS framework
- **React Query**: Data fetching and caching
- **React Hook Form**: Form handling
- **Lucide React**: Beautiful icons
- **Framer Motion**: Smooth animations
### Infrastructure
- **Docker**: Containerization
- **Nginx**: Reverse proxy and load balancer
- **Gunicorn**: WSGI HTTP server
- **SSL/TLS**: Secure connections
## 📦 Installation
### Prerequisites
- Python 3.11+
- Node.js 16+
- PostgreSQL 13+
- Redis 6+
- Docker (optional)
### Quick Start with Docker
1. **Clone the repository**
```bash
git clone <repository-url>
cd gnx-mail
```
2. **Start with Docker Compose**
```bash
docker-compose up --build
```
3. **Access the application**
- Frontend: http://localhost:3000
- Backend API: http://localhost:8000
- Admin Panel: http://localhost:8000/admin
### Manual Installation
1. **Clone and setup**
```bash
git clone <repository-url>
cd gnx-mail
chmod +x scripts/setup.sh
./scripts/setup.sh
```
2. **Configure environment**
```bash
cp env.example .env
# Edit .env with your settings
```
3. **Start services**
```bash
# Terminal 1: Django server
source venv/bin/activate
python manage.py runserver
# Terminal 2: Celery worker
celery -A gnxmail worker -l info
# Terminal 3: Frontend
cd frontend
npm start
```
## ⚙️ Configuration
### Environment Variables
Create a `.env` file with the following variables:
```env
# Django Settings
SECRET_KEY=your-secret-key-here
DEBUG=True
ALLOWED_HOSTS=localhost,127.0.0.1
# Database
DB_NAME=gnxmail
DB_USER=postgres
DB_PASSWORD=password
DB_HOST=localhost
DB_PORT=5432
# Email Settings
EMAIL_HOST=smtp.gmail.com
EMAIL_PORT=587
EMAIL_USE_TLS=True
EMAIL_HOST_USER=your-email@gmail.com
EMAIL_HOST_PASSWORD=your-app-password
# Redis
CELERY_BROKER_URL=redis://localhost:6379/0
CELERY_RESULT_BACKEND=redis://localhost:6379/0
```
### Email Provider Setup
#### Gmail
1. Enable 2-factor authentication
2. Generate an app password
3. Use the app password in EMAIL_HOST_PASSWORD
#### Other Providers
- **Outlook**: smtp-mail.outlook.com:587
- **Yahoo**: smtp.mail.yahoo.com:587
- **Custom SMTP**: Configure your own SMTP server
## 🔧 API Documentation
### Authentication
```bash
# Register
POST /api/accounts/register/
{
"email": "user@example.com",
"username": "username",
"first_name": "John",
"last_name": "Doe",
"password": "securepassword",
"password_confirm": "securepassword"
}
# Login
POST /api/accounts/login/
{
"email": "user@example.com",
"password": "securepassword"
}
```
### Email Operations
```bash
# Send Email
POST /api/emails/send/
{
"to_emails": ["recipient@example.com"],
"subject": "Hello",
"body_text": "Hello world!",
"attachments": [file1, file2]
}
# Get Emails
GET /api/emails/?search=keyword&is_read=false
# Mark as Read
PATCH /api/emails/{id}/
{
"is_read": true
}
```
## 🚀 Deployment
### Production Deployment
1. **Update settings for production**
```python
DEBUG = False
ALLOWED_HOSTS = ['yourdomain.com']
SECURE_SSL_REDIRECT = True
```
2. **Use Docker Compose**
```bash
docker-compose -f docker-compose.prod.yml up -d
```
3. **Set up SSL certificates**
```bash
# Using Let's Encrypt
certbot --nginx -d yourdomain.com
```
### Environment-specific Configurations
- **Development**: Use SQLite and local Redis
- **Staging**: Use PostgreSQL with Docker
- **Production**: Use managed databases and Redis
## 🔒 Security Features
### Authentication & Authorization
- JWT token-based authentication
- Password strength validation
- Account lockout after failed attempts
- Session management
### Data Protection
- Encrypted password storage
- CSRF protection
- XSS prevention
- SQL injection protection
- Rate limiting
### Email Security
- SPF, DKIM, DMARC support
- Email encryption
- Attachment scanning
- Spam filtering
## 📊 Monitoring & Logging
### Application Monitoring
- Health check endpoints
- Performance metrics
- Error tracking
- User activity logs
### Email Monitoring
- Delivery status tracking
- Bounce handling
- Spam detection
- Usage analytics
## 🤝 Contributing
1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Add tests
5. Submit a pull request
### Development Guidelines
- Follow PEP 8 for Python code
- Use ESLint for JavaScript
- Write comprehensive tests
- Update documentation
## 📝 License
This project is licensed under the MIT License - see the LICENSE file for details.
## 🆘 Support
### Documentation
- [API Documentation](docs/api.md)
- [User Guide](docs/user-guide.md)
- [Developer Guide](docs/developer-guide.md)
### Community
- [GitHub Issues](https://github.com/your-repo/issues)
- [Discord Community](https://discord.gg/your-invite)
- [Email Support](mailto:support@gnxmail.com)
## 🎯 Roadmap
### Upcoming Features
- [ ] Mobile apps (iOS/Android)
- [ ] Calendar integration
- [ ] Video conferencing
- [ ] Advanced AI features
- [ ] Multi-language support
- [ ] Plugin system
### Performance Improvements
- [ ] Database optimization
- [ ] Caching strategies
- [ ] CDN integration
- [ ] Load balancing
---
**GNX Mail** - The future of email communication. Built with ❤️ using Django and React.