Initial commit
This commit is contained in:
78
README.md
Normal file
78
README.md
Normal file
@@ -0,0 +1,78 @@
|
||||
# arcline-email
|
||||
|
||||
A self-hosted mail server written in Go. Handles inbound and outbound SMTP, IMAP access, DKIM signing, and SPF/DMARC verification — no third-party relay required.
|
||||
|
||||
## Status
|
||||
|
||||
Early development. Not production-ready.
|
||||
|
||||
## Goals
|
||||
|
||||
- Full SMTP server (inbound on port 25, submission on 587/465)
|
||||
- IMAP server (143/993) for client access
|
||||
- Maildir-based message storage
|
||||
- Username/password authentication with SASL
|
||||
- TLS on all listeners (Let's Encrypt or bring-your-own cert)
|
||||
- DKIM signing for outbound mail
|
||||
- SPF and DMARC verification for inbound mail
|
||||
- Outbound routing via MX DNS lookup
|
||||
- Admin API for managing domains, mailboxes, and aliases
|
||||
|
||||
## Non-Goals (for now)
|
||||
|
||||
- Webmail UI
|
||||
- Anti-spam scoring engine (may integrate rspamd via milter later)
|
||||
- Multi-server clustering
|
||||
|
||||
## Tech Stack
|
||||
|
||||
- **Language:** Go 1.22+
|
||||
- **SMTP:** `emersion/go-smtp`
|
||||
- **IMAP:** `emersion/go-imap`
|
||||
- **Mail parsing:** `emersion/go-message`
|
||||
- **SASL:** `emersion/go-sasl`
|
||||
- **Storage:** Maildir (filesystem)
|
||||
- **Config:** TOML
|
||||
|
||||
## Project Layout
|
||||
|
||||
```
|
||||
arcline-email/
|
||||
├── cmd/
|
||||
│ └── arcline-email/ — main entry point
|
||||
├── internal/
|
||||
│ ├── smtp/ — SMTP server (inbound + submission)
|
||||
│ ├── imap/ — IMAP server
|
||||
│ ├── storage/ — Maildir storage layer
|
||||
│ ├── auth/ — user authentication
|
||||
│ ├── dkim/ — DKIM signing and verification
|
||||
│ ├── spf/ — SPF checking
|
||||
│ ├── dmarc/ — DMARC policy enforcement
|
||||
│ └── admin/ — admin API
|
||||
├── config/ — config parsing and validation
|
||||
├── docs/ — protocol notes, architecture docs
|
||||
├── todo.md
|
||||
├── CONTRIBUTING.md
|
||||
├── LICENSE
|
||||
└── README.md
|
||||
```
|
||||
|
||||
## Building
|
||||
|
||||
```sh
|
||||
go build ./cmd/arcline-email
|
||||
```
|
||||
|
||||
## Running
|
||||
|
||||
```sh
|
||||
./arcline-email --config /etc/arcline-email/config.toml
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
See `docs/config.md` (coming soon).
|
||||
|
||||
## License
|
||||
|
||||
MIT. See [LICENSE](LICENSE).
|
||||
Reference in New Issue
Block a user