Dovel website repository.
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <title>dovel email</title>
- <meta charset="UTF-8">
- <meta name="author" content="Brian Lee Mayer">
- <meta name="description" content="Dovel is a simple and extensible SMTP server that let's you send and receive email using a self hosted instance with minimum configuration. Dovel is free and open source software written in Go.">
- <meta name="language" content="english">
- <meta name="keywords" content="email, dovel, blmayer, self host, software, smtp, web, interface">
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <meta name="color-scheme" content="light dark">
- <style>
- body {
- max-width: 43em;
- margin: 60px auto;
- padding: 20px;
- font-family: sans-serif;
- }
- pre {
- font-weight: bold;
- background: lightgray;
- padding: 8px;
- border-radius: 8px;
- }
- ol li {
- padding-bottom: 10px;
- }
- @media (prefers-color-scheme: dark) {
- pre {
- background: darkslategray;
- }
- </style>
- </head>
- <body>
- <center>
- <pre style="background:none">
- _________ ______
- ______ /________ _________ /
- _ __ /_ __ \_ | / / _ \_ /
- / /_/ / / /_/ /_ |/ // __/ /
- \__,_/ \____/_____/ \___//_/ ________
- | ~~ # |
- | --- |
- '--------'
- </pre>
- <i>Self host your email in 5 easy steps.</i>
- <p>
- <a href=https://goreportcard.com/report/dovel.email/server><img src=https://goreportcard.com/badge/dovel.email/server></a>
-  
- <a href=https://pkg.go.dev/dovel.email/server><img src=https://pkg.go.dev/badge/dovel.email/server.svg></a>
-  
- <a href=git.html><img src="https://img.shields.io/badge/git-repos-blue?logo=git"></a>
-  
- <a href="//hub.docker.com/r/bleemayer/dovel"><img alt="Docker Pulls" src="https://img.shields.io/docker/pulls/bleemayer/dovel?logo=docker&label=bleemayer%2Fdovel%20pulls%3A"></a>
- </p>
- </center>
- <h2>About</h2>
- Dovel is a SMTP server that sends and receives emails acording to a
- simple configuration file. It also comes with an optional web interface
- that you can use to browse your emails. It is designed to be simple and
- easy to use, and will remain so. Dovel is great because:
- <ul>
- <li>
- Is lightweight: Uses only a few MBs of RAM and loads
- pages super fast.
- </li>
- <li>Is easy to configure: Needs just one JSON file.</li>
- <li>Is easy to use: The design is simple and extensible.</li>
- <li>Supports DKIM</li>
- <li>Supports PGP using the WKD standard</li>
- </ul>
- This project is under the BSD-3-Clause license, its code can be found
- in our <a href=git.html>git repositories</a>.
- <h3>Roadmap</h3>
- Dovel is in early stages and in active development, this means there
- is a lot to be done. The major features planned are as follows:
- <ul>
- <li><s>Support DKIM.</s></li>
- <li><s>Multiple inboxes.</s></li>
- <li><s>PGP support.</s></li>
- <li><s>Multiple users.</s></li>
- <li>Create http and ssh clients.</li>
- </ul>
- <h2>Installation</h2>
- There are 2 ways of installing it: using docker or building the binary.
- To build and install the binary version you need <kbd>go</kbd>
- propperly installed, this guide works for MacOS, Linux and BSD systems.
- <ol>
- <li>
- Install dovel by running:
- <tt>go install dovel.email/server@v0.13.1</tt>.
- </li>
- <li>
- Configure dovel by creating the configuration file, an
- example is provided below. Running <kbd>server</kbd>
- is enough to start.
- </li>
- <li>
- Configure your MX record in your domain registrar to
- point to your server. This is needed to receive email.
- </li>
- <li>
- Configure other DNS records as you wish in your domain
- registrar such as PTR, SPF, DKIM or DMARC to improve
- sending emails. Dovel supports DKIM by passing the key
- path in the configuration file.
- </li>
- <li>
- Create the handlers you want for each domain. This is
- explained below.
- </li>
- </ol>
- <p>
- The docker version has similar steps, instead of 1. build the
- docker image. To run the container you need to give dovel a
- way to access config files, one option is to share the config
- folder using <kbd>-v</kbd> argument:
- </p>
- <kbd>docker run bleemayer/dovel -v CONFIG_FOLDER:/root/.config/dovel/</kbd>
- <h3>Configuring</h3>
- The following configuration is enought to receive emails: Dovel needs
- the file <kbd>~/.config/dovel/config.json</kbd> is order to work
- correctly, otherwise it will use default settings which may not
- suit you. The field <i>vaultFile</i> is optional for receiving emails.
- <pre>{
- "port": "8000",
- "domain": "dovel.email",
- "vaultFile": "users.json"
- }</pre>
- Now the hook must be placed: suppose your domain is <i>dovel.email</i>,
- emails addressed to <i>joe@dovel.email</i> will be handled by a hook
- named <kbd>receive-dovel.email</kbd> and emails sent by this domain are
- handled by <kbd>send-dovel.email</kbd> likewise.
- <p>
- So, to enable a domain, simply create the according script.
- To see all options please refer to the
- <a href=//pkg.go.dev/dovel.email/server> go docs</a>.
- </p>
- <h3>Hooks</h3>
- Dovel can handle email for different domains, so you can have multiple
- inboxes. To achieve this handler files must be created in the
- <kbd>~/.config/dovel/hooks/</kbd> folder. The program will run the
- corresponding hook passing the email as standard input.
- <p>
- Dovel has some usefull hooks in the
- <a href=hooks/index.html>hooks</a> repository:
- </p>
- <ul>
- <li>receive-example.domain</li>
- </ul>
- <h2>Using</h2>
- Using <kbd>dovel</kbd> email server is meant to be super easy: the server
- uses the configuration above, you can add the vault file in order to
- authenticate users that want to send emails. After creating the config
- file, simply run <kbd>server</kbd> to start the server.
- <h2>Contributing</h2>
- Sending bug reports, starting discussions and sending patches can be
- done easily by email, this project follows the git email convention,
- our git repositories can be found on <a href=git.html>our git</a>.
- <p>
- Financial support is also greatly appreciated, you can donate
- any amount by using this <a href=//ko-fi.com/blmayer>ko-fi</a>
- link. Thank you!
- </p>
- <hr>
- <footer>
- <small>
- This website is licensed under the MIT license.
- Copyright © 2022-24 Brian Mayer
- </small>
- </footer>
- </body>
- </html>