]> Sergey Matveev's repositories - public-inbox.git/blobdiff - Documentation/public-inbox-config.pod
treewide: update to v3 Tor onions
[public-inbox.git] / Documentation / public-inbox-config.pod
index d6ecd086996936419560587fede6daafac7ef93e..05d9ca6266cd4ca3fd1b1fe4509c59455d43ab4a 100644 (file)
@@ -17,13 +17,17 @@ all public-inboxes used by a particular user.
 =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
@@ -38,11 +42,14 @@ informational purposes.
 
 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
@@ -56,7 +63,7 @@ Default: none, optional
 =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 '.'.
+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>
 
@@ -67,30 +74,60 @@ 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)>.
+
+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>.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
 
+=item publicinbox.<name>.indexlevel
+
+The indexing level for L<public-inbox-index(1)>
+
+C<basic> only requires L<DBD::SQLite(3pm)> and provides all
+NNTP functionality along with thread-awareness in the WWW
+interface.
+
+C<medium> requires L<Search::Xapian(3pm)> to provide full-text
+term search functionality in the WWW UI.
+
+C<full> also includes positional information used by Xapian to
+allow for searching for phrases using quoted text.
+(e.g. C<"looking for a complete sentence">)
+
+Default: C<full>
+
+=item publicinbox.<name>.indexSequentialShard
+
+See L<public-inbox-index(1)/publicInbox.indexSequentialShard>
+
 =item publicinbox.<name>.httpbackendmax
 
 If a digit, the maximum number of parallel
@@ -122,7 +159,7 @@ interface are displayed.
 
 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.
@@ -152,31 +189,20 @@ Default: spamc
 
 =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.
-
-Default: none
+See L<public-inbox-watch(1)>
 
 =item publicinbox.nntpserver
 
-Set this to point to the address of the L<public-inbox-nntpd(1)>
+Set this to point to the hostname 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.
+endpoint in the L<PublicInbox::WWW> HTML interface.
 
-Multiple values are allowed for servers with multiple
-addresses or mirrors.
+Multiple values are allowed for instances with multiple hostnames
+or mirrors.
 
 Default: none
 
@@ -188,6 +214,14 @@ be treated as the default value.
 
 Default: 25
 
+=item publicinbox.<name>.hide
+
+A comma-delimited list of listings to hide the inbox from.
+
+Valid values are currently C<www> and C<manifest>.
+
+Default: none
+
 =item coderepo.<nick>.dir
 
 The path to a git repository for "publicinbox.<name>.coderepo"
@@ -215,7 +249,94 @@ A path to the C<cgit.cgi> executable.  The L<PublicInbox::WWW>
 interface can spawn cgit as a fallback if the publicinbox.cgitrc
 directive is configured.
 
-Default: /usr/lib/cgit/cgit.cgi
+Default: /var/www/htdocs/cgit/cgit.cgi or /usr/lib/cgit/cgit.cgi
+
+=item publicinbox.cgitdata
+
+A path to the data directory used by cgit for storing static files.
+Typically guessed based the location of C<cgit.cgi> (from
+C<publicinbox.cgitbin>, but may be overridden.
+
+Default: basename of C<publicinbox.cgitbin>, /var/www/htdocs/cgit/
+or /usr/share/cgit/
+
+=item publicinbox.mailEditor
+
+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.
+Valid values are:
+
+=over 8
+
+=item * all
+- Show all inboxes
+
+=item * 404
+- Return a 404 page.  This is useful to allow customization with
+L<Plack::App::Cascade(3pm)>
+
+=item * match=domain
+- Only show inboxes with URLs which belong to the domain of the HTTP request
+
+=for comment
+TODO support showing cgit listing
+
+=back
+
+Default: C<404>
+
+=item publicinbox.grokmanifest
+
+Controls the generation of a grokmirror-compatible gzipped JSON file
+at the top-level of the PSGI interface.  You generally do not need to
+change this from the default.
+
+Valid values are:
+
+=over 8
+
+=item * match=domain
+- Only include inboxes with URLs which belong to the domain of
+the HTTP request.  This is compatible with virtual hosting where
+several domains come from the same host.
+
+=item * all
+- All inboxes are present in C<manifest.js.gz>, regardless of domain.
+Only use this if you're serving HTTP requests in a domain-agnostic manner.
+
+=item * 404
+- C<manifest.js.gz> will only contain an empty JSON array.
+This does NOT affect C<$INBOX_URL/manifest.js.gz>, which will
+always contain all git repos used by the inbox at C<$INBOX_URL>
+
+=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
 
@@ -229,7 +350,7 @@ limiter with a low max value; while smaller inboxes can use
 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
@@ -261,20 +382,20 @@ RLIMIT_CPU, and RLIMIT_DATA for you operating system.
 
        ; 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"]
@@ -301,16 +422,17 @@ Used to override the default "~/.public-inbox/config" value.
 
 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-2018 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>
 
 =head1 SEE ALSO
 
 L<git(1)>, L<git-config(1)>, L<public-inbox-daemon(8)>,
-L<public-inbox-mda(1)>, L<public-inbox-watch(1)>
+L<public-inbox-mda(1)>, L<public-inbox-watch(1)>,
+L<grokmirror|https://git.kernel.org/pub/scm/utils/grokmirror/grokmirror.git>