public-inbox.git  about / heads / tags
an "archives first" approach to mailing lists
blob 35917ccc2fb78a67235297f6216e2b432f41f4ce 3906 bytes (raw)
$ git show HEAD:Documentation/public-inbox-overview.pod	# shows this blob on the CLI

  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
 
=head1 NAME

public-inbox-overview - an overview of public-inbox

=head1 DESCRIPTION

public-inbox consists of many pieces which may be used
independently or in conjunction of each other for:

=over 4

=item 1

Mirroring existing public-inboxes.

=item 2

Mirroring mailing lists.

=item 3

Hosting standalone inboxes.

=back

=head2 Mirroring existing public-inboxes

Mirroring existing public-inboxes is the easiest way to get
started.  Your mirror will remain dependent on the REMOTE_URL
you are mirroring and you only need to use two new commands in
addition to common L<git(1)> commands.

Instructions are different depending on whether the inbox
is L<public-inbox-v1-format(5)> or L<public-inbox-v2-format(5)>.
See the "Archives are clonable:" part of the WWW interface
of a given inbox for cloning instructions specific to
that inbox.  The instructions are roughly:

  # for v1 inboxes:
  git clone --mirror URL INBOX_DIR

  # for v2 inboxes (each epoch needs to be cloned):
  git clone --mirror URL/EPOCH INBOX_DIR/git/EPOCH.git

  # The following should create the necessary entry in
  # ~/.public-inbox/config, use "-V2" only for v2 inboxes:
  public-inbox-init [-V2] NAME INBOX_DIR MY_URL LIST_ADDRESS

  # Optional but strongly recommended for hosting HTTP
  # (and required for NNTP)
  # enable overview (requires DBD::SQLite) and, if Xapian is
  # available, search:
  public-inbox-index INBOX_DIR

  # Periodically fetch the repo using git-fetch(1)
  # for v1 inboxes:
  git --git-dir=INBOX_DIR fetch

  # for v2 (in most cases, only the newest epoch needs to be fetched):
  git --git-dir=INBOX_DIR/git/EPOCH.git fetch

  # index new messages after fetching:
  public-inbox-index INBOX_DIR

See L</"Serving public-inboxes"> below for info on how to expose
your mirror to other readers.

=head2 Mirroring mailing lists

Mirroring mailing lists may be done by any reader
of a mailing list using L<public-inbox-watch(1)>.

	# This will create a new v2 inbox:
	public-inbox-init -V2 NAME INBOX_DIR MY_URL LIST_ADDRESS

Then, see the L<public-inbox-watch(1)> manual for configuring
C<watch>, C<watchheader>, C<listid> and the optional C<spamcheck>
and C<watchspam> entries.

You will need to leave L<public-inbox-watch(1)> running to
keep the mailbox up-to-date as messages are delivered to
the mailing list.

Running L<public-inbox-index(1)> to create search indices
is recommended.  L<public-inbox-watch(1)> will automatically
maintain the indices if they were created by
L<public-inbox-index(1)>

	public-inbox-index INBOX_DIR

Instead of using L<public-inbox-watch(1)>, using
L<public-inbox-mda(1)> with the C<--no-precheck> option and
relying on the C<listid> directive in L<public-inbox-config(5)>
is also an option.

=head2 Hosting standalone inboxes

Using L<public-inbox-init(1)> to initialize the inbox as in the
other methods is recommended.  See L<public-inbox-mda(1)> for
more details; but this also requires MTA-specific knowledge.

=head2 Serving public-inboxes

Since public-inboxes are git repositories, they may be served to
remote clients via L<git-daemon(1)> as well as specialized HTTP
and NNTP daemons distributed with public-inbox.

See L<public-inbox-httpd(1)> and L<public-inbox-nntpd(1)>
for more information on using these daemons.

Hosting a public-inbox over HTTP or NNTP will never require
write access to any files in the inbox directory.

Users familiar with PSGI and L<Plack> may also use
L<PublicInbox::WWW> with the preferred server instead of
L<public-inbox-httpd(1)>

=head1 CONTACT

Feedback welcome via plain-text mail to L<mailto:meta@public-inbox.org>

The mail archives are hosted at L<https://public-inbox.org/meta/> and
L<http://4uok3hntl7oi7b4uf4rtfwefqeexfzil2w6kgk2jn5z2f764irre7byd.onion/meta/>

=head1 COPYRIGHT

Copyright 2016-2021 all contributors L<mailto:meta@public-inbox.org>

License: AGPL-3.0+ L<https://www.gnu.org/licenses/agpl-3.0.txt>

git clone https://public-inbox.org/public-inbox.git
git clone http://7fh6tueqddpjyxjmgtdiueylzoqt6pt7hec3pukyptlmohoowvhde4yd.onion/public-inbox.git