66</div >
77
88<p align =" center " >
9- <em>A self-hosted, serverless worker for sending and receiving emails on Cloudflare</em>
9+ <em>A modern, full-stack email client running entirely on Cloudflare Workers </em>
1010</p >
1111
1212<p align =" center " >
@@ -27,25 +27,101 @@ Email Explorer is a full-stack, serverless email client that runs entirely on yo
2727
2828[ ![ Deploy to Cloudflare] ( https://deploy.workers.cloudflare.com/button )] ( https://deploy.workers.cloudflare.com/?url=https://github.com/G4brym/email-explorer/tree/main/template )
2929
30+ ## Table of Contents
31+
32+ - [ Overview] ( #overview )
33+ - [ Why Email Explorer?] ( #why-email-explorer )
34+ - [ Key Features] ( #key-features )
35+ - [ Prerequisites] ( #prerequisites )
36+ - [ Getting Started] ( #getting-started )
37+ - [ Configuration] ( #configuration )
38+ - [ Documentation] ( #documentation )
39+ - [ Architecture] ( #architecture )
40+ - [ Production Ready Features] ( #production-ready-features )
41+ - [ Testing] ( #testing )
42+ - [ Roadmap & Future Enhancements] ( #roadmap--future-enhancements )
43+ - [ Known Limitations] ( #known-limitations )
44+ - [ Security] ( #security )
45+ - [ Contributing] ( #contributing )
46+ - [ Support] ( #support )
47+ - [ License] ( #license )
48+
49+ ## Quick Links
50+
51+ - 📖 ** [ User Guides] ( docs/features/index.md ) ** - Complete documentation for all features
52+ - 🚀 ** [ Getting Started] ( #getting-started ) ** - Deploy in minutes
53+ - 🔐 ** [ Authentication] ( docs/features/authentication.md ) ** - Setup your first account
54+ - 👥 ** [ Admin Panel] ( docs/features/admin-panel.md ) ** - Manage users and permissions
55+ - ⚙️ ** [ Configuration] ( #configuration ) ** - Customize your deployment
56+
3057## Overview
3158
3259Email Explorer gives you a private, self-hosted email solution with a user-friendly web interface. By leveraging the Cloudflare ecosystem, it offers a cost-effective and scalable alternative to traditional email hosting. All your data is stored securely in your own R2 buckets and Durable Objects, giving you full control over your information.
3360
34- When you first load your worker, there will be no mailbox, they will be automatically created when you start receiving emails on your worker.
61+ ## Why Email Explorer?
3562
36- ```
37- Please note that for sending emails, you will need to have you Cloudflare account with Email sending enabled!
38- ```
63+ ** 🔒 Privacy First**
64+ - All data stays in YOUR Cloudflare account
65+ - No third-party tracking or analytics
66+ - You control your data completely
67+
68+ ** 💰 Cost-Effective**
69+ - Runs on Cloudflare's generous free tier
70+ - Pay only for what you use beyond free limits
71+ - No monthly subscription fees
72+
73+ ** ⚡ Performance**
74+ - Built on Cloudflare's global edge network
75+ - Fast loading times worldwide
76+ - Serverless architecture scales automatically
77+
78+ ** 🎨 Modern Experience**
79+ - Clean, intuitive interface
80+ - Rich text email composition
81+ - Mobile-responsive design
82+
83+ ** 🛠️ Easy Setup**
84+ - Deploy with one click
85+ - Automatic mailbox creation
86+ - Smart authentication setup
87+
88+ > ** Note:** To send emails, you need to have [ Cloudflare Email Sending] ( https://developers.cloudflare.com/email-routing/email-workers/send-email-workers/ ) enabled on your account. Receiving emails works through [ Cloudflare Email Routing] ( https://developers.cloudflare.com/email-routing/ ) .
89+
90+ > ** Note:** When you first load your worker, there will be no mailboxes. They are automatically created when you start receiving emails.
3991
4092## Key Features
4193
4294- ** 🔒 Secure & Private** : Self-hosted on your Cloudflare account. No third-party tracking or data scanning.
43- - ** 🔐 Smart Authentication** : Automatic first-user admin setup with role-based access control.
44- - ** 👥 Multi-User Support** : Admin panel for managing users and mailbox permissions.
95+ - ** 🔐 Smart Authentication** : Automatic first-user admin setup with role-based access control and secure session management.
96+ - ** 👥 Multi-User Support** : Admin panel for managing users and mailbox permissions with granular roles (Owner, Admin, Write, Read).
97+ - ** ✍️ Rich Text Editor** : Full-featured WYSIWYG editor with formatting, colors, links, lists, and more - just like Gmail or Outlook.
98+ - ** ↩️ Reply & Forward** : Reply to sender, reply all, or forward emails with automatic quoting and threading support.
4599- ** ✉️ Email Management** : Send, receive, and organize emails with a clean and intuitive interface.
46100- ** 📁 Folder Organization** : Create custom folders to organize your emails.
47101- ** 📎 Attachment Support** : View and download attachments directly in the browser.
48- - ** ⚡ Serverless Architecture** : Each mailbox is its own durable object.
102+ - ** 🔍 Search** : Find emails quickly with full-text search across all your mailboxes.
103+ - ** 📧 Contacts** : Manage your contacts with an integrated address book.
104+ - ** ⚡ Serverless Architecture** : Each mailbox is its own Durable Object for optimal performance and isolation.
105+
106+ ## Prerequisites
107+
108+ Before deploying Email Explorer, make sure you have:
109+
110+ - ** Cloudflare Account** - [ Sign up for free] ( https://dash.cloudflare.com/sign-up )
111+ - ** Domain Name** - Added to your Cloudflare account
112+ - ** Email Routing** - [ Enable Email Routing] ( https://developers.cloudflare.com/email-routing/ ) for receiving emails
113+ - ** Email Sending** - [ Enable Email Sending] ( https://developers.cloudflare.com/email-routing/email-workers/send-email-workers/ ) for sending emails (optional but recommended)
114+ - ** Node.js 18+** - For local development (not required for deployment)
115+
116+ ** Cloudflare Services Used:**
117+ - Workers (Compute)
118+ - Durable Objects (State management)
119+ - R2 (Object storage)
120+ - D1 (SQL database via Durable Objects)
121+ - Email Routing (Receive emails)
122+ - Email Sending (Send emails)
123+
124+ Most of these services have generous free tiers that are sufficient for personal use.
49125
50126## Getting Started
51127
@@ -55,6 +131,20 @@ To deploy Email Explorer, you can use the "Deploy to Cloudflare" button above or
55131npm create cloudflare@latest -- --template=https://github.com/G4brym/email-explorer/tree/main/template
56132```
57133
134+ ** Or deploy manually:**
135+
136+ ``` bash
137+ # Clone the repository
138+ git clone https://github.com/G4brym/email-explorer.git
139+ cd email-explorer
140+
141+ # Install dependencies
142+ pnpm install
143+
144+ # Deploy to Cloudflare
145+ pnpm --filter email-explorer deploy
146+ ```
147+
58148### Configuration
59149
60150Email Explorer uses a factory function pattern for configuration. Edit ` src/index.ts ` :
@@ -109,27 +199,213 @@ As an admin, you can:
109199- Assign roles: ` owner ` , ` admin ` , ` write ` , or ` read `
110200- Promote users to admin status
111201
112- See [ ROADMAP.md] ( ROADMAP.md ) for detailed API documentation and configuration options.
202+ ## Documentation
203+
204+ Comprehensive user guides are available for all features:
205+
206+ - ** [ Feature Documentation] ( docs/features/index.md ) ** - Complete user guides
207+ - [ Authentication Guide] ( docs/features/authentication.md ) - Account creation, login, and security
208+ - [ Admin Panel Guide] ( docs/features/admin-panel.md ) - User management and permissions
209+ - [ Rich Text Editor Guide] ( docs/features/rich-text-editor.md ) - Email formatting and composition
210+ - [ Reply & Forward Guide] ( docs/features/reply-forward.md ) - Email responses and threading
211+
212+ For developers:
213+ - ** [ ROADMAP.md] ( ROADMAP.md ) ** - Project roadmap and planned features
214+ - ** [ AGENTS.md] ( AGENTS.md ) ** - Technical architecture and development guide
215+
216+ ## Architecture
217+
218+ Email Explorer is built with modern web technologies:
113219
114- ## Roadmap
220+ ** Backend (Worker):**
221+ - ** Hono** - Fast, lightweight web framework
222+ - ** Cloudflare Durable Objects** - Distributed state management
223+ - ** Cloudflare R2** - Object storage for attachments
224+ - ** Cloudflare D1** - SQL database (via Durable Objects)
225+ - ** Cloudflare Email Routing** - Email sending and receiving
115226
116- We are actively working on improving Email Explorer with these features:
227+ ** Frontend (Dashboard):**
228+ - ** Vue.js 3** - Progressive JavaScript framework
229+ - ** TypeScript** - Type-safe development
230+ - ** Tailwind CSS** - Utility-first styling
231+ - ** TipTap** - Rich text editor
232+ - ** Pinia** - State management
233+ - ** Vite** - Fast build tooling
117234
118- - ** Rich Text Editor ** : A full-featured editor for composing emails.
235+ ## Production Ready Features
119236
120- ## Known Issues
237+ ✅ ** Authentication & Security**
238+ - Smart mode with automatic admin setup
239+ - Session-based authentication (30-day expiry)
240+ - Password hashing with Web Crypto API
241+ - HttpOnly, Secure, SameSite cookies
242+ - Role-based access control (RBAC)
121243
122- - This is a work in progress, and some features might not be fully stable.
123- - Please report any issues you find on our [ GitHub Issues] ( https://github.com/G4brym/email-explorer/issues ) page.
244+ ✅ ** Email Capabilities**
245+ - Send and receive emails
246+ - Reply and reply-all functionality
247+ - Forward emails to others
248+ - Rich text HTML composition
249+ - Email threading and conversation tracking
250+ - Attachment handling
251+
252+ ✅ ** User Management**
253+ - Admin panel for user creation
254+ - Granular mailbox permissions (Owner, Admin, Write, Read)
255+ - Multi-user support with isolation
256+ - Access grant and revoke capabilities
257+
258+ ✅ ** Organization**
259+ - Custom folder creation
260+ - Contact management
261+ - Full-text email search
262+ - Email filtering and organization
263+
264+ ## Testing
265+
266+ Email Explorer includes comprehensive integration tests:
267+
268+ ``` bash
269+ # Run all tests
270+ pnpm --filter email-explorer test
271+
272+ # Run specific test suite
273+ pnpm --filter email-explorer test auth
274+ pnpm --filter email-explorer test endpoints
275+
276+ # Watch mode for development
277+ pnpm --filter email-explorer test --watch
278+ ```
279+
280+ ** Test Coverage:**
281+ - ✅ Authentication flows (registration, login, sessions)
282+ - ✅ Admin operations (user management, access control)
283+ - ✅ Email operations (send, receive, folders)
284+ - ✅ Search and filtering
285+ - ✅ Contacts and attachments
286+ - ✅ Security validations
287+
288+ ## Roadmap & Future Enhancements
289+
290+ Planned features for future releases:
291+
292+ - [ ] Email templates for quick responses
293+ - [ ] Two-factor authentication (2FA)
294+ - [ ] Password reset via email
295+ - [ ] Email drafts auto-save
296+ - [ ] Conversation threading view
297+ - [ ] Emoji picker in composer
298+ - [ ] Table support in rich text editor
299+ - [ ] Image uploads and inline images
300+ - [ ] Email signatures
301+ - [ ] Keyboard shortcuts
302+ - [ ] Mobile app (React Native)
303+
304+ See [ ROADMAP.md] ( ROADMAP.md ) for detailed planning and progress.
305+
306+ ## Known Limitations
307+
308+ ** Current Limitations:**
309+ - Password reset must be done by administrator (email reset coming soon)
310+ - No email draft auto-save (manual save only)
311+ - Image uploads not yet supported (URLs work)
312+ - Single mailbox per user account (multiple access supported)
313+
314+ ** Browser Compatibility:**
315+ - Modern browsers required (Chrome 90+, Firefox 88+, Safari 14+)
316+ - JavaScript must be enabled
317+ - Cookies must be enabled for authentication
318+
319+ Please report any issues on our [ GitHub Issues] ( https://github.com/G4brym/email-explorer/issues ) page.
320+
321+ ## Security
322+
323+ Email Explorer takes security seriously:
324+
325+ ** 🔐 Authentication Security**
326+ - Passwords hashed with Web Crypto API (SHA-256)
327+ - HttpOnly, Secure, SameSite cookies prevent XSS/CSRF
328+ - 30-day session expiry for automatic logout
329+ - Session tokens use cryptographic randomness
330+
331+ ** 🛡️ Data Protection**
332+ - All data stored in YOUR Cloudflare account
333+ - Email content rendered in sandboxed iframes
334+ - No third-party data sharing
335+ - Role-based access control (RBAC)
336+
337+ ** 🔒 Best Practices**
338+ - Always use HTTPS (automatic with Cloudflare)
339+ - Keep dependencies updated
340+ - Regular security audits via GitHub Dependabot
341+ - Comprehensive test coverage
342+
343+ ** ⚠️ Security Recommendations**
344+ - Use strong, unique passwords (8+ characters)
345+ - Enable Cloudflare's security features
346+ - Regularly review user access permissions
347+ - Log out from shared devices
348+
349+ ** Report Security Issues:**
350+ For security vulnerabilities, please email security issues privately rather than opening public issues.
124351
125352## Contributing
126353
127- Contributions are welcome! If you have a feature request, bug report, or want to contribute to the code, please feel free to:
354+ We welcome contributions from the community! Here's how you can help:
355+
356+ ** 🐛 Bug Reports**
357+ - Use the [ GitHub Issues] ( https://github.com/G4brym/email-explorer/issues ) page
358+ - Include reproduction steps
359+ - Specify your environment (browser, Cloudflare setup)
360+
361+ ** ✨ Feature Requests**
362+ - Check existing issues first
363+ - Explain the use case and benefit
364+ - Consider submitting a PR if you can implement it
128365
129- 1 . Fork the repository.
130- 2 . Create a new branch for your feature or fix.
131- 3 . Submit a Pull Request.
366+ ** 💻 Code Contributions**
367+ 1 . Fork the repository
368+ 2 . Create a feature branch (` git checkout -b feature/amazing-feature ` )
369+ 3 . Make your changes with tests
370+ 4 . Commit your changes (` git commit -m 'Add amazing feature' ` )
371+ 5 . Push to the branch (` git push origin feature/amazing-feature ` )
372+ 6 . Open a Pull Request
373+
374+ ** 📖 Documentation**
375+ - Help improve user guides
376+ - Fix typos or clarify instructions
377+ - Add examples and use cases
378+
379+ ** Development Setup:**
380+ ``` bash
381+ # Clone the repository
382+ git clone https://github.com/G4brym/email-explorer.git
383+ cd email-explorer
384+
385+ # Install dependencies
386+ pnpm install
387+
388+ # Run tests
389+ pnpm --filter email-explorer test
390+
391+ # Start development
392+ pnpm --filter email-explorer dev
393+ pnpm --filter dashboard dev
394+ ```
395+
396+ ## Support
397+
398+ - ** 📖 Documentation** : Check [ docs/features/] ( docs/features/ ) for user guides
399+ - ** 💬 Discussions** : Use GitHub Discussions for questions
400+ - ** 🐛 Issues** : Report bugs via GitHub Issues
401+ - ** 📧 Email** : For security issues only
132402
133403## License
134404
135405This project is licensed under the MIT License - see the [ LICENSE] ( LICENSE ) file for details.
406+
407+ ---
408+
409+ ** Made with ❤️ for the self-hosted community**
410+
411+ If you find Email Explorer useful, please consider giving it a ⭐ on GitHub!
0 commit comments