Files
crockery/DESIGN.md

41 lines
791 B
Markdown

# Crockery design
## Overview
We need:
* SMTP server
* Receive emails -> middlewares -> storage
* https://github.com/emersion/go-smtp ?
* IMAP server
* Receive logins
* HTTP server
* Serve autodiscovery bumpf
* ActiveSync protocol
* Storage
* Accounts
* Passwords!
* Emails
* TLS keys + certificates
* Search emails - some sort of inverted index necessary
* https://github.com/blevesearch/bleve ?
* Embedded database best. Ideally we have a single file to work with
* https://github.com/coreos/bbolt
* https://github.com/asdine/storm
## Database structure
```
config/
domain: "example.com"
domains/
example.com/
accounts/
foo@example.com/
config/
emails/
config/
key: []byte(...)
cert: []byte(...)
```