=head2 EXAMPLE
[publicinbox "test"]
- mainrepo = /home/user/path/to/test.git
+ inboxdir = /home/user/path/to/test.git
; multiple addresses are supported
address = test@example.com
; address = alternate@example.com
url = http://example.com/test
newsgroup = inbox.test
+ ; backwards compatibility with public-inbox pre-1.2.0,
+ ; "inboxdir" takes precedence over "mainrepo"
+ mainrepo = /home/user/path/to/test.git
+
=head2 VARIABLES
=over 8
Default: none, required
-=item publicinbox.<name>.mainrepo
+=item publicinbox.<name>.inboxdir
The absolute path to the directory which hosts the
public-inbox. This must be specified once.
+This was previously known as "mainrepo", which remains supported,
+but "inboxdir" takes precedence.
+
Default: none, required
=item publicinbox.<name>.url
=item publicinbox.<name>.newsgroup
-The NNTP group name for use with L<public-inbox-nntpd(8)>. This
-may be any newsgroup name with hierarchies delimited by '.'.
+The NNTP group name for use with L<public-inbox-nntpd(1)>. This
+may be any newsgroup name with hierarchies delimited by C<.>.
For example, the newsgroup for L<mailto:meta@public-inbox.org>
is: C<inbox.comp.mail.public-inbox.meta>
-Omitting this for the given inbox will prevent the group from
-being read by L<public-inbox-nntpd(1)>
+It also configures the folder hierarchy used by L<public-inbox-imapd(1)>.
+
+Omitting this for a given inbox will prevent the inbox from
+being served by L<public-inbox-nntpd(1)> and/or L<public-inbox-imapd(1)>.
Default: none, optional
=item publicinbox.<name>.watch
-A location for L<public-inbox-watch(1)> to watch. Currently,
-only C<maildir:> paths are supported:
+See L<public-inbox-watch(1)>
- [publicinbox "test"]
- watch = maildir:/path/to/maildirs/.INBOX.test/
+=item publicinbox.<name>.watchheader
-Default: none; only for L<public-inbox-watch(1)> users
+See L<public-inbox-watch(1)>
-=item publicinbox.<name>.watchheader
+=item publicinbox.<name>.listid
- [publicinbox "test"]
- watchheader = List-Id:<test.example.com>
+The L<rfc2919|https://tools.ietf.org/html/rfc2919> header without
+angle brackets for L<public-inbox-mda(1)> deliveries and
+L<public-inbox-watch(1)>.
-If specified, L<public-inbox-watch(1)> will only process mail matching
-the given header. Multiple values are not currently supported.
+For public-inbox-watch users, this is a shortcut for specifying
+C<publicinbox.$NAME.watchheader=List-Id:E<lt>foo.example.comE<gt>>
-Default: none; only for L<public-inbox-watch(1)> users
+For public-inbox-mda users, this may be used to avoid recipient
+matching via C<ORIGINAL_RECIPIENT> environment variable.
+
+This may be specified multiple times for merging multiple mailing
+lists into a single public-inbox, only one C<List-Id> header
+needs to match.
+
+Default: none
+
+=item publicinbox.<name>.imapmirror
+
+This may be the full IMAP URL of an independently-run IMAP mirror.
+
+Default: none
=item publicinbox.<name>.nntpmirror
This may be the full NNTP URL of an independently-run mirror.
For example, the https://public-inbox.org/meta/ inbox is
mirrored by Gmane at
-C<nntp://news.gmane.org/gmane.mail.public-inbox.general>
+C<nntp://news.gmane.io/gmane.mail.public-inbox.general>
Default: none
Default: C<full>
+=item publicinbox.<name>.boost
+
+Control indexing order for L<public-inbox-extindex(1)>, with ties
+broken by config file order. This only affects indexing and does
+not affect messages which are already indexed.
+
+Default: C<0>
+
+=item publicinbox.<name>.indexSequentialShard
+
+See L<public-inbox-index(1)/publicInbox.indexSequentialShard>
+
=item publicinbox.<name>.httpbackendmax
If a digit, the maximum number of parallel
A list of comma-delimited email addresses may be specified.
This can be useful for dedicated inboxes for bot emails, but
-discussion happens on a seperate mailing list/inbox.
+discussion happens on a separate mailing list/inbox.
Mirrors of existing centralized mailing lists may use ":list"
here to redirect mail only to the configured inbox address.
=item publicinboxwatch.spamcheck
-This may be set to C<spamc> to enable the use of SpamAssassin
-L<spamc(1)> for filtering spam before it is imported into git
-history. Other spam filtering backends may be supported in
-the future.
-
-Default: none
+See L<public-inbox-watch(1)>
=item publicinboxwatch.watchspam
-This may be set to C<spamc> to enable the use of SpamAssassin
-L<spamc(1)> for filtering spam before it is imported into git
-history. Other spam filtering backends may be supported in
-the future. This requires L<public-inbox-watch(1)>, but affects
-all configured public-inboxes in PI_CONFIG.
+See L<public-inbox-watch(1)>
+
+=item publicinbox.imapserver
+
+Set this to point to the hostname(s) of the L<public-inbox-imapd(1)>
+instance. This is used to advertise the existence of the IMAP
+endpoint in the L<PublicInbox::WWW> HTML interface.
Default: none
=item publicinbox.nntpserver
-Set this to point to the address of the L<public-inbox-nntpd(1)>
-instance. This is used to advertise the existence of the NNTP
-presnce in the L<PublicInbox::WWW> HTML interface.
-
-Multiple values are allowed for servers with multiple
-addresses or mirrors.
+Same as C<publicinbox.imapserver>, but for the hostname(s) of the
+L<public-inbox-nntpd(1)> instance.
Default: none
See L<public-inbox-edit(1)>
+=item publicinbox.indexMaxSize
+=item publicinbox.indexBatchSize
+=item publicinbox.indexSequentialShard
+
+See L<public-inbox-index(1)>
+
=item publicinbox.wwwlisting
Enable a HTML listing style when the root path of the URL '/' is accessed.
=item * match=domain
- Only show inboxes with URLs which belong to the domain of the HTTP request
-=for TODO comment
-
-support showing cgit listing
+=for comment
+TODO support showing cgit listing
=back
Default: C<match=domain>
+=item publicinbox.<name>.obfuscate
+
+Whether to obfuscate email addresses in the L<PublicInbox::WWW> HTML
+interface.
+
+Default: false
+
+=item publicinbox.noObfuscate
+
+A space-delimited list of well-known addresses and domains that should
+not be obfuscated when C<publicinbox.$NAME.obfuscate> is true (e.g.,
+C<public@example.com> and C<@example.com>). This may be specified
+more than once, in which case the values are merged.
+
+Default: none
+
=back
=head2 NAMED LIMITER (PSGI)
the default limiter.
C<RLIMIT_*> keys may be set to enforce resource limits for
-a particular limiter.
+a particular limiter (L<BSD::Resource(3pm)> is required).
Default named-limiters are prefixed with "-". Currently,
the "-cgit" named limiter is reserved for instances spawning
; big inboxes which require lots of memory to clone:
[publicinbox "big1"]
- mainrepo = /path/to/big1
+ inboxdir = /path/to/big1
address = big1@example.com
httpbackendmax = big
[publicinbox "big2"]
- mainrepo = /path/to/big2
+ inboxdir = /path/to/big2
address = big2@example.com
httpbackendmax = big
; tiny inboxes which are easily cloned:
[publicinbox "tiny1"]
- mainrepo = /path/to/tiny1
+ inboxdir = /path/to/tiny1
address = tiny1@example.com
[publicinbox "tiny2"]
- mainrepo = /path/to/tiny2
+ inboxdir = /path/to/tiny2
address = tiny2@example.com
[publicinboxlimiter "big"]
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://hjrcffqmbrq6wope.onion/meta/>
+The mail archives are hosted at L<https://public-inbox.org/meta/> and
+L<http://4uok3hntl7oi7b4uf4rtfwefqeexfzil2w6kgk2jn5z2f764irre7byd.onion/meta/>
=head1 COPYRIGHT
-Copyright 2016-2019 all contributors L<mailto:meta@public-inbox.org>
+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>