list

site

Dovel website repository.

git clone https://dovel.email/site

index.html

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <title>dovel email</title>
  5. <meta charset="UTF-8">
  6. <meta name="author" content="Brian Lee Mayer">
  7. <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.">
  8. <meta name="language" content="english">
  9. <meta name="keywords" content="email, dovel, blmayer, self host, software, smtp, web, interface">
  10. <meta name="viewport" content="width=device-width, initial-scale=1">
  11. <meta name="color-scheme" content="light dark">
  12. <style>
  13. body {
  14. max-width: 43em;
  15. margin: 60px auto;
  16. padding: 20px;
  17. font-family: sans-serif;
  18. }
  19. pre {
  20. font-weight: bold;
  21. background: lightgray;
  22. padding: 8px;
  23. border-radius: 8px;
  24. }
  25. ol li {
  26. padding-bottom: 10px;
  27. }
  28. @media (prefers-color-scheme: dark) {
  29. pre {
  30. background: darkslategray;
  31. }
  32. </style>
  33. </head>
  34. <body>
  35. <center>
  36. <pre style="background:none">
  37. _________ ______
  38. ______ /________ _________ /
  39. _ __ /_ __ \_ | / / _ \_ /
  40. / /_/ / / /_/ /_ |/ // __/ /
  41. \__,_/ \____/_____/ \___//_/ ________
  42. | ~~ # |
  43. | --- |
  44. '--------'
  45. </pre>
  46. <i>Self host your email in 5 easy steps.</i>
  47. <p>
  48. <a href=https://goreportcard.com/report/dovel.email/server><img src=https://goreportcard.com/badge/dovel.email/server></a>
  49. &emsp;
  50. <a href=https://pkg.go.dev/dovel.email/server><img src=https://pkg.go.dev/badge/dovel.email/server.svg></a>
  51. &emsp;
  52. <a href=git.html><img src="https://img.shields.io/badge/git-repos-blue?logo=git"></a>
  53. &emsp;
  54. <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>
  55. </p>
  56. </center>
  57. <h2>About</h2>
  58. Dovel is a SMTP server that sends and receives emails acording to a
  59. simple configuration file. It also comes with an optional web interface
  60. that you can use to browse your emails. It is designed to be simple and
  61. easy to use, and will remain so. Dovel is great because:
  62. <ul>
  63. <li>
  64. Is lightweight: Uses only a few MBs of RAM and loads
  65. pages super fast.
  66. </li>
  67. <li>Is easy to configure: Needs just one JSON file.</li>
  68. <li>Is easy to use: The design is simple and extensible.</li>
  69. <li>Supports DKIM</li>
  70. <li>Supports PGP using the WKD standard</li>
  71. </ul>
  72. This project is under the BSD-3-Clause license, its code can be found
  73. in our <a href=git.html>git repositories</a>.
  74. <h3>On the press</h3>
  75. Dovel is on the curated directory of Open source projects in <a href=https://respectlytics.com>Respectlytics</a>.
  76. <h3>Roadmap</h3>
  77. Dovel is in early stages and in active development, this means there
  78. is a lot to be done. The major features planned are as follows:
  79. <ul>
  80. <li><s>Support DKIM.</s></li>
  81. <li><s>Multiple inboxes.</s></li>
  82. <li><s>PGP support.</s></li>
  83. <li><s>Multiple users.</s></li>
  84. <li>Create http and ssh clients.</li>
  85. </ul>
  86. <h2>Installation</h2>
  87. There are 2 ways of installing it: using docker or building the binary.
  88. To build and install the binary version you need <kbd>go</kbd>
  89. propperly installed, this guide works for MacOS, Linux and BSD systems.
  90. <ol>
  91. <li>
  92. Install dovel by running:
  93. <tt>go install dovel.email/server@v0.13.1</tt>.
  94. </li>
  95. <li>
  96. Configure dovel by creating the configuration file, an
  97. example is provided below. Running <kbd>server</kbd>
  98. is enough to start.
  99. </li>
  100. <li>
  101. Configure your MX record in your domain registrar to
  102. point to your server. This is needed to receive email.
  103. </li>
  104. <li>
  105. Configure other DNS records as you wish in your domain
  106. registrar such as PTR, SPF, DKIM or DMARC to improve
  107. sending emails. Dovel supports DKIM by passing the key
  108. path in the configuration file.
  109. </li>
  110. <li>
  111. Create the handlers you want for each domain. This is
  112. explained below.
  113. </li>
  114. </ol>
  115. <p>
  116. The docker version has similar steps, instead of 1. build the
  117. docker image. To run the container you need to give dovel a
  118. way to access config files, one option is to share the config
  119. folder using <kbd>-v</kbd> argument:
  120. </p>
  121. <kbd>docker run bleemayer/dovel -v CONFIG_FOLDER:/root/.config/dovel/</kbd>
  122. <h3>Configuring</h3>
  123. The following configuration is enought to receive emails: Dovel needs
  124. the file <kbd>~/.config/dovel/config.json</kbd> is order to work
  125. correctly, otherwise it will use default settings which may not
  126. suit you. The field <i>vaultFile</i> is optional for receiving emails.
  127. <pre>{
  128. "port": "8000",
  129. "domain": "dovel.email",
  130. "vaultFile": "users.json"
  131. }</pre>
  132. Now the hook must be placed: suppose your domain is <i>dovel.email</i>,
  133. emails addressed to <i>joe@dovel.email</i> will be handled by a hook
  134. named <kbd>receive-dovel.email</kbd> and emails sent by this domain are
  135. handled by <kbd>send-dovel.email</kbd> likewise.
  136. <p>
  137. So, to enable a domain, simply create the according script.
  138. To see all options please refer to the
  139. <a href=//pkg.go.dev/dovel.email/server> go docs</a>.
  140. </p>
  141. <h3>Hooks</h3>
  142. Dovel can handle email for different domains, so you can have multiple
  143. inboxes. To achieve this handler files must be created in the
  144. <kbd>~/.config/dovel/hooks/</kbd> folder. The program will run the
  145. corresponding hook passing the email as standard input.
  146. <p>
  147. Dovel has some usefull hooks in the
  148. <a href=hooks/index.html>hooks</a> repository:
  149. </p>
  150. <ul>
  151. <li>receive-example.domain</li>
  152. </ul>
  153. <h2>Using</h2>
  154. Using <kbd>dovel</kbd> email server is meant to be super easy: the server
  155. uses the configuration above, you can add the vault file in order to
  156. authenticate users that want to send emails. After creating the config
  157. file, simply run <kbd>server</kbd> to start the server.
  158. <h2>Contributing</h2>
  159. Sending bug reports, starting discussions and sending patches can be
  160. done easily by email, this project follows the git email convention,
  161. our git repositories can be found on <a href=git.html>our git</a>.
  162. <p>
  163. Financial support is also greatly appreciated, you can donate
  164. any amount by using this <a href=//ko-fi.com/blmayer>ko-fi</a>
  165. link. Thank you!
  166. </p>
  167. <hr>
  168. <footer>
  169. <small>
  170. This website is licensed under the MIT license.
  171. Copyright © 2022-26 Brian Mayer
  172. </small>
  173. </footer>
  174. </body>
  175. </html>