-public-inbox - shared mailboxes via git for public discussion
--------------------------------------------------------------
+public-inbox - an "archives first" approach to mailing lists
+------------------------------------------------------------
-public-inbox implements the sharing of an email inbox to complement or
-replace traditional mailing lists for public discussion. public-inbox
-is primarily intended as a Free, distributed (but not yet decentralized)
-public communications tool for users and developers of Free and Open
-Source Software. public-inbox should be easy-to-deploy and manage;
-encouraging software projects to run their own instances with minimal
-overhead.
+public-inbox implements the sharing of an email inbox via git to
+complement or replace traditional mailing lists. Readers may
+read via NNTP, IMAP, Atom feeds or HTML archives.
+
+public-inbox spawned around three main ideas:
+
+* Publicly accessible and archived communication is essential to
+ Free Software development.
+
+* Contributing to Free Software projects should not require the
+ use of non-Free services or software.
+
+* Graphical user interfaces should not be required for text-based
+ communication. Users may have broken graphics drivers, limited
+ eyesight, or be unable to afford modern hardware.
+
+public-inbox aims to be easy-to-deploy and manage; encouraging projects
+to run their own instances with minimal overhead.
Implementation
--------------
-public-inbox uses ssoma[1], Some Sort Of Mail Archiver which implements
-no policy of its own. By exposing an inbox via git, readers may follow
-the mailing list without subscribing and have easy access to historical
-messages.
-
-Traditional mailing lists use the "push" model. List servers deliver
-content via SMTP to other mail servers used by readers of the mailing
-list. For readers, this requires commitment to subscribe to the list
-and extra effort to unsubscribe. Readers may also have difficulty
-following discussions which started before they joined if archives do
-not expose Message-Id headers for responses. For list server admins,
-this also burdens them with bounce/failure messages for bad/invalid
-addresses.
-
-public-inbox uses the "pull" model. Readers import mail into an mbox,
-Maildir, or IMAP folder from the git repositories periodically. If a
-reader loses interest, they simply stop syncing. Since ssoma uses git,
-mirrors are easy-to-setup, and lists are easy-to-relocate to different
-mail addresses without losing/splitting archives. Readers only need
-to install ssoma, a command-line tool[1] currently implemented in Perl.
-
-Readers may also follow the list via Atom feed.
-
-[1] http://ssoma.public-inbox.org/
+
+public-inbox stores mail in git repositories as documented
+in https://public-inbox.org/public-inbox-v2-format.txt and
+https://public-inbox.org/public-inbox-v1-format.txt
+
+By storing (and optionally) exposing an inbox via git, it is
+fast and efficient to host and mirror public-inboxes.
+
+Traditional mailing lists use the "push" model. For readers,
+that requires commitment to subscribe and effort to unsubscribe.
+New readers may also have difficulty following existing
+discussions if archives do not expose Message-ID and References
+headers. List server admins are also burdened with delivery
+failures.
+
+public-inbox uses the "pull" model. Casual readers may
+follow the list via NNTP, IMAP, Atom feed or HTML archives.
+
+If a reader loses interest, they simply stop following.
+
+Since we use git, mirrors are easy-to-setup, and lists are
+easy-to-relocate to different mail addresses without losing
+or splitting archives.
+
+_Anybody_ may also setup a delivery-only mailing list server to
+replay a public-inbox git archive to subscribers via SMTP.
Features
--------
-* stores email in git, so readers have a full history of the mailing list
-* Atom feed allows casual readers to follow via feed reader
-* Mail user-agent (MUA) users may use Maildir, mbox(5) and/or IMAP locally
+
+* anybody may participate via plain-text email
+
+* stores email in git, readers may have a complete archive of the inbox
+
+* Atom feed, IMAP, NNTP allows casual readers to follow via local tools
+
* uses only well-documented and easy-to-implement data formats
-Requirements (Atom, read-only client)
--------------------------------------
-* any feed reader capable of following Atom feeds
-
-Requirements (server MDA)
--------------------------
-* git
-* MTA - postfix is recommended
-* Perl and several modules:
- - Email::Filter
- - XML::Atom::SimpleFeed
-* Ssoma - currently a Perl module
-* SpamAssassin (optional, recommended)
-* any HTTP server (optional, for serving Atom feed)
+Try it out now, see https://try.public-inbox.org/
+
+Requirements for reading:
+
+* any software capable of IMAP, NNTP or following Atom feeds
+
+Any basic web browser will do for the HTML archives.
+We primarily develop on w3m to maximize accessibility.
+
+Requirements (participant)
+--------------------------
+
+* any MUA which may send text-only emails ("git send-email" works!)
+ Users are strongly encouraged to use the "reply-all" feature of
+ their mailers to reduce the impact of a public-inbox as a
+ single point of failure.
+
+* The HTTP web interface exposes mboxrd files, and NNTP clients often
+ feature reply-by-email functionality
+
+* participants do not need to install public-inbox, only server admins
+
+Requirements (server)
+---------------------
+
+See https://public-inbox.org/INSTALL
Hacking
-------
-Source code is available via git:
- git clone git://bogomips.org/public-inbox
+AGPL source code is available via git:
+
+ git clone https://public-inbox.org/public-inbox.git
+ git clone https://repo.or.cz/public-inbox.git
+ torsocks git clone http://7fh6tueqddpjyxjmgtdiueylzoqt6pt7hec3pukyptlmohoowvhde4yd.onion/public-inbox.git
+ torsocks git clone http://4uok3hntl7oi7b4uf4rtfwefqeexfzil2w6kgk2jn5z2f764irre7byd.onion/public-inbox
See below for contact info.
Contact
-------
+
We are happy to see feedback of all types via plain-text email.
public-inbox discussion is self-hosting on public-inbox.org
Please send comments, user/developer discussion, patches, bug reports,
-and pull requests to our public-inbox.org address at:
+and pull requests to our public-inbox address at:
- public-inbox@public-inbox.org
+ meta@public-inbox.org
Please Cc: all recipients when replying as we do not require
subscription. This also makes it easier to rope in folks of
-tangentially related projects we depend on (e.g. git developers on
-git@vger.kernel.org).
+tangentially related projects we depend on (e.g. git developers
+on git@vger.kernel.org).
-You can subscribe via ssoma(1), LISTNAME is a name of your choosing:
+The archives are readable via IMAP, NNTP or HTTP:
- URL=git://git.public-inbox.org/public-inbox
- LISTNAME=public-inbox
+ nntps://news.public-inbox.org/inbox.comp.mail.public-inbox.meta
+ imaps://;AUTH=ANONYMOUS@public-inbox.org/inbox.comp.mail.public-inbox.meta.0
+ https://public-inbox.org/meta/
- # to initialize a maildir (this may be a new or existing maildir,
- # ssoma will not touch existing messages)
- # If you prefer mbox, use "ssoma add mbox ..." instead
- ssoma add $LISTNAME $URL maildir:/path/to/maildir/
+AUTH=ANONYMOUS is recommended for IMAP, but any username + password works
- # read with your favorite MUA (only using mutt as an example)
- mutt -f /path/to/maildir # (or /path/to/mbox)
+And as Tor hidden services:
- # to keep your mbox or maildir up-to-date, periodically run the following:
- ssoma sync $LISTNAME
+ http://4uok3hntl7oi7b4uf4rtfwefqeexfzil2w6kgk2jn5z2f764irre7byd.onion/meta/
+ nntp://4uok3hntl7oi7b4uf4rtfwefqeexfzil2w6kgk2jn5z2f764irre7byd.onion/inbox.comp.mail.public-inbox.meta
+ imap://;AUTH=ANONYMOUS@4uok3hntl7oi7b4uf4rtfwefqeexfzil2w6kgk2jn5z2f764irre7byd.onion/inbox.comp.mail.public-inbox.meta.0
- # your MUA may modify and delete messages from the maildir or mbox,
- # this does not affect ssoma functionality at all
+You may also clone all messages via git:
- # to sync all your ssoma subscriptions
- ssoma sync
+ git clone --mirror https://public-inbox.org/meta/
+ torsocks git clone --mirror http://4uok3hntl7oi7b4uf4rtfwefqeexfzil2w6kgk2jn5z2f764irre7byd.onion/meta/
Anti-Spam
---------
+
The maintainer of public-inbox has found SpamAssassin a good tool for
filtering his personal mail, and it will be the default spam filtering
tool in public-inbox.
-Readers may also use a custom mail-delivery-agent for delivery to enable
-spam filtering by having ssoma deliver to a command via pipe.
-
-There is unlikely to be any tool which is 100% accurate at classifying
-spam, so it is possible to remove messages using the ssoma-rm(1) tool
-in ssoma.
+See https://public-inbox.org/dc-dlvr-spam-flow.html for more info.
Content Filtering
-----------------
-To discourage phishing, web bugs (tracking), viruses and other nuisances,
-only plain-text content is allowed by default and non-text content is
-stripped. This saves I/O bandwidth and storage, which is important as
-entire mail archives are shared between clients.
+
+To discourage phishing, trackers, exploits and other nuisances,
+only plain-text emails are allowed and HTML is rejected by default.
+This improves accessibility, and saves bandwidth and storage
+as mail is archived forever.
As of the 2010s, successful online social networks and forums are the
ones which heavily restrict users formatting options; so public-inbox
Copyright
---------
-Copyright 2013, Eric Wong <normalperson@yhbt.net> and all contributors.
-License: AGPLv3 or later <http://www.gnu.org/licenses/agpl-3.0.txt>
+
+Copyright 2013-2021 all contributors <meta@public-inbox.org>
+License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
+along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+Additional permission under GNU GPL version 3 section 7:
+
+ If you modify this program, or any covered work, by linking or
+ combining it with the OpenSSL project's OpenSSL library (or a
+ modified version of that library), containing parts covered by the
+ terms of the OpenSSL or SSLeay licenses, the copyright holder(s)
+ grants you additional permission to convey the resulting work.
+ Corresponding Source for a non-source form of such a combination
+ shall include the source code for the parts of OpenSSL used as well
+ as that of the covered work.