-
Notifications
You must be signed in to change notification settings - Fork 48
/
index.html
397 lines (317 loc) · 20.3 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
<!DOCTYPE html>
<html class="no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width">
<title>Mail-in-a-Box</title>
<meta name="og:title" content="Mail-in-a-Box" />
<meta name="description" content="Take back control of your email with this easy-to-deploy mail server in a box." />
<meta name="og:description" content="Take back control of your email with this easy-to-deploy mail server in a box." />
<meta property="og:site_name" content="Mail-in-a-Box">
<meta name="author" content="Joshua Tauberer" />
<meta name="og:image" content="https://mailinabox.email/static/logo.png" />
<meta name="twitter:card" content="summary_large_image" />
<link rel="vcs-git" href="https://github.com/mail-in-a-box/mailinabox.email" title="code for Mail-in-a-Box website" />
<link rel="icon" type="image/png" href="/static/logo_small.png">
<link rel="apple-touch-icon" type="image/png" href="/static/logo_small.png">
<link rel="stylesheet" href="static/vendor/bootstrap/css/bootstrap.min.css" />
<link rel="stylesheet" href="static/fontello/css/fontello.css">
<style>
@import url(static/vendor/google-fonts.css);
body {
font-family: Raleway, sans-serif;
font-size: 16px;
}
header {
margin: 2em 0 1em 0;
}
h1 {
margin-top: 1px;
font-family: Ubuntu, sans-serif;
font-size: 45px;
color: black;
}
h1 span {
position: relative;
top: 1px;
color: #444;
}
h2 {
margin-top: 1.9em;
font-family: Ubuntu, Arial, sans-serif;
font-weight: 300;
font-size: 20px;
padding-bottom: .25em;
border-bottom: 1px solid #DDD;
margin-bottom: 1em;
color: black;
}
a {
color: #24A;
text-decoration: underline;
}
p#deck {
font-size: 18px;
margin-top: .5em;
margin-bottom: 0;
}
p, pre { margin-bottom: 1.33em; }
.pre-wrap {
/* copy of bootstrap css for <pre>, except doubling bottom margin from 10 to 20px */
display: block;
padding: 9.5px;
margin: 0 0 20px;
font-size: 13px;
line-height: 1.42857143;
word-break: break-all;
word-wrap: break-word;
color: #333;
background-color: #f5f5f5;
border: 1px solid #ccc;
border-radius: 4px;
}
.pre-wrap pre {
padding: 0;
margin: 0;
border: none;
font-family: 'Source Code Pro', monospace;
color: black;
font-size: 15px;
}
#statsrow > div {
padding-bottom: 1em;
}
#statsrow p {
margin-bottom: .25em;
}
#install-stats {
display: none;
margin-top: 9.5px;
padding-top: 9.5px;
width: 90%;
font-size: 80%;
line-height: 120%;
color: #666;
}
#install-stats .heading {
position: absolute;
margin-top: -1.2em;
}
#screenshots {
}
#screenshots > div {
margin-bottom: 2em;
}
#screenshots > div > div {
margin-bottom: .5em;
font-weight: bold;
text-align: center;
}
#screenshots img {
border: 1px solid #999;
}
#sidebar {
font-size: 14px;
}
#sidebar a {
color: #C52;
text-decoration: none;
}
#sidebar a:hover {
text-decoration: underline;
}
#sidebar i {
display: inline-block;
margin-right: 6px;
width: 20px;
}
#sidebar i.icon-th-list, #sidebar i.icon-chat {
font-size: 88%;
}
@media all and (max-width: 768px) {
#sidebar {
border-left: 1px solid #AAA;
}
#sidebar p {
display: inline-block;
margin: 0 1em .5em 0;
}
#sidebar i {
margin-right: 2px;
}
}
</style>
</head>
<body>
<a href="https://github.com/mail-in-a-box/mailinabox"><img style="position: absolute; top: 0; right: 0;" src="https://github.com/usecue/fork-me-on-github-svg-ribbons/raw/master/images/forkme_right_red_aa0000.svg" alt="Fork me on GitHub"></a>
<div class="container">
<header>
<div style="float: left; margin-right: 1em"><img src="static/logo.png" height="58"/></div>
<h1 style="float: left">Mail<span>-</span>in<span>-</span>a<span>-</span>Box</h1>
<div class="clearfix"> </div>
<p id="deck">Take back control of your email with this easy-to-deploy mail server in a box.</p>
</header>
<div class="row">
<div id="sidebar" class="col-sm-3 order-2">
<h2>quick links</h2>
<p><a href="guide.html"><i class="icon-th-list"></i>setup guide</a></p>
<p><a href="https://discourse.mailinabox.email/"><i class="icon-chat"></i>discussion forum</a></p>
<p style="margin-bottom: 2px"><a href="/slack"><i class="icon-slack"></i> chat room</a></p>
<hr>
<p><a href="maintenance.html"><i class="icon-back-in-time"></i>maintenance guide</a></p>
<p><a href="advanced-configuration.html"><i class="icon-th-list"></i>advanced tips</a></p>
<hr>
<p><a href="https://github.com/mail-in-a-box/mailinabox"><i class="icon-github"></i>github repository</a></p>
<p><a rel="me" href="https://fosstodon.org/@MailInABox" title="Mastodon">@[email protected]</a></p>
<p><a href="https://twitter.com/mailinabox"><i class="icon-twitter"></i>@Mailinabox</a></p>
<p><a href="https://github.com/mail-in-a-box/mailinabox/blob/main/CODE_OF_CONDUCT.md">Code of Conduct</a></p>
</div>
<div class="col-sm-9 col-lg-8">
<h2>What is it?</h2>
<p>Mail-in-a-Box lets you become your own mail service provider in a few easy steps. It’s sort of like making your own gmail, but one you control from top to bottom.</p>
<p>Technically, Mail-in-a-Box turns a fresh cloud computer into a working mail server. But you don’t need to be a technology expert to set it up.</p>
<p>Here’s how you can get a Mail-in-a-Box running:</p>
<div style="width: 420px; margin: 0 auto;">
<p style="line-height: 125%; font-style: italic;">Note: The video is a bit old. You now must select a server running Ubuntu 22.04 x64. The other steps remain almost entirely the same, so you can still use this video for reference.</p>
<iframe width="420" height="315" src="https://www.youtube-nocookie.com/embed/9WOmkoEYMIg" frameborder="0" allowfullscreen></iframe>
<p style="line-height: 125%; margin-top: 1em;">
Or check out <a href="https://www.youtube.com/watch?v=bzxNb_fcqnA">a more recent instruction video</a> made by a user.
</p>
</div>
<h2>Status</h2>
<div id="statsrow" class="row">
<div class="col-sm-6 col-md-4">
<p><strong>Current Version</strong></p>
<p>v69b / July 23, 2024</p>
<p>– <a href="guide.html">install</a> <em>start here!</em></p>
<p style="border: 1px solid #44A; padding: .5em;">
Upgrading from version 5x or earlier? You will have to move to Ubuntu 22.04. Please <a href="https://discourse.mailinabox.email/t/version-60-for-ubuntu-22-04-is-released/9558">read the release announcement</a> for important details about upgrading.
</p>
<p>– <a href="https://github.com/mail-in-a-box/mailinabox/blob/v69b/CHANGELOG.md#changelog">release notes</a></p>
<p>– <a href="maintenance.html#upgrade">upgrade instructions</a></p>
</div>
<div class="col-sm-6 col-md-8">
<p style="margin-bottom: .25em"><strong>Need Help?</strong></p>
<ol>
<li>Check the <a href="maintenance.html">maintenance guide</a>.</li>
<li>Ask on <a href="https://discourse.mailinabox.email/">the forum</a>. Other users may be able to help.</li>
<li>Found a bug? <a href="https://github.com/mail-in-a-box/mailinabox/issues">Open an issue</a> on github.</li>
<li>Or try our <a href="/slack">Slack chatroom</a>.</li>
</ol>
</div>
</div>
<p style="margin-bottom: .25em"><strong>Download Stats</strong></p>
<div id="install-stats">
<div class="heading"><span></span> installs last month. Installs per month since our launch in August 2014:</div>
</div>
<h2>What’s inside the box?</h2>
<p>Each Mail-in-a-Box provides webmail and an IMAP/SMTP server for use with mobile devices and desktop mail software. It also includes contacts and calendar synchronization.</p>
<div id="screenshots" class="row">
<div class="col-sm-4">
<div>Roundcube Webmail</div>
<a href="static/roundcube.png"><img src="static/roundcube.png" class="img-fluid"></a>
</div>
<div class="col-sm-4">
<div>Nextcloud Contacts</div>
<a href="static/nextcloud_contacts.png"><img src="static/nextcloud_contacts.png" class="img-fluid"></a>
</div>
<div class="col-sm-4">
<div>A Control Panel</div>
<a href="static/control_panel.png"><img src="static/control_panel.png" class="img-fluid"></a>
</div>
</div>
<p>The box also includes other standard mail functionality like spam protection (spam filtering and <a href="https://postgrey.schweikert.ch/">greylisting</a>), mail filter rules, email client autoconfiguration, and automated backups to Amazon S3 and other services.</p>
<p>The box also includes automatic DNS configuration when you let it become your nameserver so that it can set important DNS records for mail deliverability and security including <a href="https://en.wikipedia.org/wiki/Sender_Policy_Framework">SPF</a>, <a href="https://en.wikipedia.org/wiki/DomainKeys_Identified_Mail">DKIM</a>, <a href="https://en.wikipedia.org/wiki/DMARC">DMARC</a>, and <a href="https://tools.ietf.org/html/rfc8461">MTA-STS</a>. When enabled, <a href="https://en.wikipedia.org/wiki/DNSSEC">DNSSEC</a> (with <a href="https://en.wikipedia.org/wiki/DNS-based_Authentication_of_Named_Entities">DANE TLSA</a>) provides a higher level of protection against active attacks with other mail servers also running DANE TLSA. TLS certificates are automatically provisioned from <a href="https://letsencrypt.org">Let’s Encrypt</a>. (For more see our <a href="https://github.com/mail-in-a-box/mailinabox/blob/main/security.md">security practices</a>.)</p>
<p>Your box can host mail for multiple users and multiple domain names. It also supports simple static website hosting (since the box is serving HTTP anyway), or you can host a website elsewhere (just add custom DNS records in your Mail-in-a-Box's control panel).</p>
<p>Mail-in-a-Box includes a web-based control panel where you can add mail accounts, mail aliases, and custom DNS records and set up backups. The control panel displays comprehensive status checks for DNS records and system activity/monitoring and supports TOTP-based two-factor authentication for login. Control panel functionality can also be accessed over the RESTful HTTP API (<a href="api-docs.html">API documentation</a>).</p>
<p>Note that while we want everything to “just work,” we can’t control the rest of the Internet. Other mail services might block or spam-filter email sent from your Mail-in-a-Box. This is a challenge faced by everyone who runs their own mail server, with or without Mail-in-a-Box. See our discussion forum for tips about that.</p>
<h2>How do I get it?</h2>
<p>The <a href="guide.html">setup guide</a> walks you through getting your own box set up. Users report it taking just a few hours to get to a fully operational system. And see the video above!</p>
<div class="alert alert-warning">
<strong>Legal note!</strong> Mail-in-a-Box is made available per the <a href="https://github.com/mail-in-a-box/mailinabox/blob/main/LICENSE">CC0 public domain dedication</a>. By running Mail-in-a-Box, you will invoke scripts that use Let’s Encrypt to provision TLS certificates per the <a href="https://letsencrypt.org/repository/" target="_blank">Let’s Encrypt Subscriber Agreement(s) & Terms of Services</a>. Please be sure you accept the terms in both documents before beginning.
</div>
<p>If you are an expert and have a domain name and a <u>completely fresh</u> Ubuntu 22.04 machine (note that containers and modified images are not supported) running in the cloud, you basically just run on that machine:</p>
<div class="pre-wrap">
<pre>curl -s https://mailinabox.email/setup.sh | sudo bash</pre>
</div>
<p>You will be asked to enter the email address you want and a few other configuration questions. The script will install (and uninstall!) and configure a few dozen Ubuntu packages and the Mail-in-a-Box control panel. Consult the <a href="guide.html">setup guide</a> for complete details. See the <a href="https://github.com/mail-in-a-box/mailinabox">README</a> on github for advanced instructions.</p>
<p>Please note that the goal of this project is to provide a simple, turn-key solution. There are basically no configuration options and you can’t tweak the machine’s configuration files after installation. If you are looking for something more advanced, try <a href="https://www.iredmail.org/">iRedMail</a> or <a href="https://github.com/tonioo/modoboa">Modoboa</a>.</p>
<p class="text-danger small" style="margin-top: 2em;">Note: Mail-in-a-Box’s maintainers work on Mail-in-a-Box in their limited free time. Your mileage may vary.</p>
<h2>Why build this?</h2>
<p>Mass electronic surveillance by governments revealed over the last several years has spurred a new movement to <a href="https://redecentralize.org/">re-decentralize the web</a>, a movement to empower individuals to be their own service providers again.</p>
<p>Although the core protocol of email, <a href="https://www.faqs.org/rfcs/rfc821.html">SMTP</a>, is inherently decentralized, in practice email has become highly centralized because it is so damn difficult to implement the dozens of modern protocols that surround it. Mail-in-a-Box takes care of all of that, and no more.</p>
<p>This is important not just for privacy, but for the ability for the web to evolve and improve as it always has: through the ability of everyone to see how it works, tinker, and propose innovative changes.</p>
<h2>Help</h2>
<p>If you need <strong>help</strong>, please check the <a href="maintenance.html">maintenance guide</a> and then <a href="https://discourse.mailinabox.email/">ask on the forum</a>. If you think you have found a problem in Mail-in-a-Box or don’t get a response on the forum, then <a href="https://github.com/mail-in-a-box/mailinabox/issues">open an issue on github</a>.</p>
<p>We will post announcements and security advisories to our Fediverse/Mastodon account <a rel="me" href="https://fosstodon.org/@MailInABox" title="Mastodon">@[email protected]</a>, our Twitter account <a href="https://twitter.com/mailinabox">@mailinabox</a>, the <a href="https://discourse.mailinabox.email/c/announcements">announcements section</a> of the discussion forum, and our Slack chat (see above).</p>
<p><strong>Do not tweet or toot us questions</strong>: Always start on the <a href="https://discourse.mailinabox.email/">forum</a> so others can benefit from seeing your question too. Our social media is for announcements only.</p>
<p><strong>Reporting spam/fraud/abuse</strong>: Mail-in-a-Box actually isn’t a mail service at all. It is more like a cooking recipe for how to create a mail service — therefore, we have no way to know who is following the recipe and have no control over people baking our cake to hide a poison. Like cake, there are many recipes for creating email servers besides Mail-in-a-Box (<a href="https://products.office.com/en-us/exchange/email">Microsoft Exchange Server</a> being one of the most popular), and we are just unlucky when sometimes someone with bad intentions choses ours. In other words, we don’t control how people use Mail-in-a-Box and have no technical or legal means to disable other people’s services. You may want to check out the <a href="https://discourse.mailinabox.email/">Mail-in-a-Box discussion forum</a> and coordinate with anyone that has reported a similar situation recently.</p>
<h2>Development</h2>
<p>Mail-in-a-Box is based on Ubuntu 22.04 LTS 64-bit and uses very-well-documented shell scripts and a Python management daemon to configure the system. Take a look at the <a href="static/architecture.svg">system architecture diagram</a> and <a href="https://github.com/mail-in-a-box/mailinabox/blob/main/security.md">security practices</a>.</p>
<p>Development takes place on github at <a href="https://github.com/mail-in-a-box/mailinabox">https://github.com/mail-in-a-box/mailinabox</a>.</p>
<p>Note that the goals of this project are to . . .</p>
<ul>
<li>Make deploying a good mail server easy.</li>
<li>Promote <a href="https://redecentralize.org/">decentralization</a>, innovation, and privacy on the web.</li>
<li>Have automated, auditable, and <a href="https://web.archive.org/web/20180920115541/https://sharknet.us/2014/02/01/automated-configuration-management-challenges-with-idempotency/">idempotent</a> system configuration.</li>
<li><strong>Not</strong> make a totally unhackable, NSA-proof server (but see our <a href="https://github.com/mail-in-a-box/mailinabox/blob/main/security.md">security practices</a>).</li>
<li><strong>Not</strong> make something customizable by power users.</li>
</ul>
<p>Additionally, this project has a <a href="https://github.com/mail-in-a-box/mailinabox/blob/main/CODE_OF_CONDUCT.md">Code of Conduct</a>, which supersedes the goals above. Please review it when joining our community.</p>
<p>Mail-in-a-Box is dedicated to the public domain using <a href="https://creativecommons.org/publicdomain/zero/1.0/">CC0</a>.</p>
<p><a href="https://razor.occams.info">Joshua Tauberer</a> (<a href="https://github.com/JoshData">@JoshData</a>) began this project in 2013 and is the primary maintainer. Thank you to all of the contributors!</p>
<h2>Acknowledgements</h2>
<p>This project was inspired in part by the <a href="https://sealedabstract.com/code/nsa-proof-your-e-mail-in-2-hours/">"NSA-proof your email in 2 hours"</a> blog post by Drew Crawford, <a href="https://github.com/al3x/sovereign">Sovereign</a> by Alex Payne, and conversations with <a href="https://twitter.com/shevski" target="_blank">@shevski</a>, <a href="https://github.com/konklone" target="_blank">@konklone</a>, and <a href="https://github.com/gregelin" target="_blank">@GregElin</a>.</p>
<p>Mail-in-a-Box is similar to <a href="https://www.iredmail.org/">iRedMail</a> and <a href="https://github.com/tonioo/modoboa">Modoboa</a>.</p>
<p>Mail-in-a-Box is based on <a href="https://www.postfix.org/">Postfix</a>, <a href="https://dovecot.org/">Dovecot</a>, <a href="https://roundcube.net/">Roundcube</a>, <a href="https://nextcloud.com/">Nextcloud</a>, <a href="https://spamassassin.apache.org/">Apache SpamAssassin</a>, <a href="https://postgrey.schweikert.ch/">Postgrey</a>, <a href="https://nginx.org/">Nginx</a>, and other open source software.</p>
<div style="height: 100px"> </div>
</div>
</div>
</div>
</div>
<script src="static/vendor/jquery.js"> </script>
<script src="static/vendor/bootstrap/js/bootstrap.min.js"></script>
<script src="static/vendor/d3.js"></script> <!-- activity stats -->
<script>
$(function() {
// Create the activity chart.
$.getJSON("install-stats.json", function(data) {
// make a d3 chart
$("#install-stats").show();
var w = $("#install-stats").width();
var h = 2*$("#install-stats .heading").height();
// data is daily data, but that's a lot of data points now, so bin by month.
var data2 = [];
for (var i = 0; i < data.length; i++) {
if (/^2022-09-/.test(data[i][0])) continue; // lost most of the data this month when I migrated my box
if (i == 0 || /-01$/.test(data[i][0])) data2.push(0);
data2[data2.length-1] += data[i][1];
}
data2.pop(); // drop the last bin because it is (probably) incomplete
data = data2;
$("#install-stats .heading span").text(data2[data2.length-1].toLocaleString());
var chart = d3.select("#install-stats").append("svg")
.attr("width", w)
.attr("height", h);
// axes
var x = d3.scale.linear()
.domain([0, data.length])
.range([0, w]);
var y = d3.scale.linear()
.domain([0, d3.max(data)])
.range([0, h]);
// bars
chart.selectAll("rect")
.data(data)
.enter().append("rect")
.attr("x", function(d, i) { return x(i); })
.attr("y", 0)
.attr("width", parseInt(w / data.length)-1)
.attr("height", function(d) { return y(d); } )
.attr("fill", "#E0E0E0")
})
})
</script>
</body>
</html>