]> Sergey Matveev's repositories - public-inbox.git/blob - README
init: use Import::run_die instead of system()
[public-inbox.git] / README
1 public-inbox - an "archives first" approach to mailing lists
2 ------------------------------------------------------------
3
4 public-inbox implements the sharing of an email inbox via git to
5 complement or replace traditional mailing lists.  Readers may
6 read via NNTP, Atom feeds or HTML archives.
7
8 public-inbox spawned around three main ideas:
9
10 * Publicly accessible and archived communication is essential to
11   Free Software development.
12
13 * Contributing to Free Software projects should not require the
14   use of non-Free services or software.
15
16 * Graphical user interfaces should not be required for text-based
17   communication.
18
19 public-inbox aims to be easy-to-deploy and manage; encouraging projects
20 to run their own instances with minimal overhead.
21
22 Implementation
23 --------------
24
25 public-inbox stores mail in git repositories as documented
26 in https://public-inbox.org/public-inbox-v2-format.txt and
27 https://public-inbox.org/public-inbox-v1-format.txt
28
29 By storing (and optionally) exposing an inbox via git, it is
30 fast and efficient to host and mirror public-inboxes.
31
32 Traditional mailing lists use the "push" model.  For readers,
33 that requires commitment to subscribe and effort to unsubscribe.
34 New readers may also have difficulty following existing
35 discussions if archives do not expose Message-ID and References
36 headers.  List server admins are also burdened with delivery
37 failures.
38
39 public-inbox uses the "pull" model.  Casual readers may
40 follow the list via NNTP, Atom feed or HTML archives.
41
42 If a reader loses interest, they simply stop following.
43
44 Since we use git, mirrors are easy-to-setup, and lists are
45 easy-to-relocate to different mail addresses without losing
46 or splitting archives.
47
48 _Anybody_ may also setup a delivery-only mailing list server to
49 replay a public-inbox git archive to subscribers via SMTP.
50
51 Features
52 --------
53
54 * anybody may participate via plain-text email
55
56 * stores email in git, readers may have a complete archive of the inbox
57
58 * Atom feed and NNTP allows casual readers to follow via feed reader
59
60 * uses only well-documented and easy-to-implement data formats
61
62 Try it out now, see https://try.public-inbox.org/
63
64 Requirements for reading:
65
66 * any software capable of NNTP or following Atom feeds
67
68 Any basic web browser will do for the HTML archives.
69 We primarily develop on w3m to maximize accessibility.
70
71 Requirements (participant)
72 --------------------------
73
74 * any MUA which may send text-only emails ("git send-email" works!)
75   Users are strongly encouraged to use the "reply-all" feature of
76   their mailers to reduce the impact of a public-inbox as a
77   single point of failure.
78
79 * The HTTP web interface exposes mboxrd files, and NNTP clients often
80   feature reply-by-email functionality
81
82 * participants do not need to install public-inbox, only server admins
83
84 Requirements (server)
85 ---------------------
86
87 See https://public-inbox.org/INSTALL
88
89 Hacking
90 -------
91
92 AGPL source code is available via git:
93
94         git clone https://public-inbox.org/public-inbox.git
95         git clone https://repo.or.cz/public-inbox.git
96         torsocks git clone http://hjrcffqmbrq6wope.onion/public-inbox
97
98 See below for contact info.
99
100 Contact
101 -------
102
103 We are happy to see feedback of all types via plain-text email.
104 public-inbox discussion is self-hosting on public-inbox.org
105 Please send comments, user/developer discussion, patches, bug reports,
106 and pull requests to our public-inbox address at:
107
108         meta@public-inbox.org
109
110 Please Cc: all recipients when replying as we do not require
111 subscription.  This also makes it easier to rope in folks of
112 tangentially related projects we depend on (e.g. git developers
113 on git@vger.kernel.org).
114
115 The archives are readable via NNTP or HTTP:
116
117         nntp://news.public-inbox.org/inbox.comp.mail.public-inbox.meta
118         https://public-inbox.org/meta/
119
120 And as Tor hidden services:
121
122         http://hjrcffqmbrq6wope.onion/meta/
123         nntp://hjrcffqmbrq6wope.onion/inbox.comp.mail.public-inbox.meta
124
125 You may also clone all messages via git:
126
127         git clone --mirror https://public-inbox.org/meta/
128         torsocks git clone --mirror http://hjrcffqmbrq6wope.onion/meta/
129
130 Anti-Spam
131 ---------
132
133 The maintainer of public-inbox has found SpamAssassin a good tool for
134 filtering his personal mail, and it will be the default spam filtering
135 tool in public-inbox.
136
137 See https://public-inbox.org/dc-dlvr-spam-flow.html for more info.
138
139 Content Filtering
140 -----------------
141
142 To discourage phishing, trackers, exploits and other nuisances,
143 only plain-text emails are allowed and HTML is rejected by default.
144 This improves accessibility, and saves bandwidth and storage
145 as mail is archived forever.
146
147 As of the 2010s, successful online social networks and forums are the
148 ones which heavily restrict users formatting options; so public-inbox
149 aims to preserve the focus on content, and not presentation.
150
151 Copyright
152 ---------
153
154 Copyright 2013-2019 all contributors <meta@public-inbox.org>
155 License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
156
157 This program is free software: you can redistribute it and/or modify
158 it under the terms of the GNU Affero General Public License as published by
159 the Free Software Foundation, either version 3 of the License, or
160 (at your option) any later version.
161
162 This program is distributed in the hope that it will be useful,
163 but WITHOUT ANY WARRANTY; without even the implied warranty of
164 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
165 GNU Affero General Public License for more details.
166
167 You should have received a copy of the GNU Affero General Public License
168 along with this program.  If not, see <https://www.gnu.org/licenses/>.
169
170 Additional permission under GNU GPL version 3 section 7:
171
172     If you modify this program, or any covered work, by linking or
173     combining it with the OpenSSL project's OpenSSL library (or a
174     modified version of that library), containing parts covered by the
175     terms of the OpenSSL or SSLeay licenses, the copyright holder(s)
176     grants you additional permission to convey the resulting work.
177     Corresponding Source for a non-source form of such a combination
178     shall include the source code for the parts of OpenSSL used as well
179     as that of the covered work.