X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=Documentation%2Fpublic-inbox-config.pod;h=53926ef4f8aed567a4d9b80fd58b832208bf5f60;hb=95bdac7f09c69036efed537a4d03d5bdd2ae4eb6;hp=23ebcc5fc6c1655e478ba8800f314a4f32741c99;hpb=218d723d6e52d3ff5627bd55ae418ac6d2763dc6;p=public-inbox.git diff --git a/Documentation/public-inbox-config.pod b/Documentation/public-inbox-config.pod index 23ebcc5f..53926ef4 100644 --- a/Documentation/public-inbox-config.pod +++ b/Documentation/public-inbox-config.pod @@ -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..mainrepo +=item publicinbox..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..url @@ -80,17 +87,67 @@ Default: none; only for L users [publicinbox "test"] watchheader = List-Id: +If specified, L will only process mail matching +the given header. Multiple values are not currently supported. + Default: none; only for L users +=item publicinbox..listid + +The L header without +angle brackets for L deliveries and +L. + +For public-inbox-watch users, this is a shortcut for specifying +C> + +For public-inbox-mda users, this may be used to avoid recipient +matching via C environment variable. + +This may be specified multiple times for merging multiple mailing +lists into a single public-inbox, only one C header +needs to match. + +Default: none + =item publicinbox..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 +C Default: none +=item publicinbox..indexlevel + +The indexing level for L + +C only requires L and provides all +NNTP functionality along with thread-awareness in the WWW +interface. + +C requires L to provide full-text +term search functionality in the WWW UI. + +C 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 + +=item publicinbox..httpbackendmax + +If a digit, the maximum number of parallel +L processes to allow for cloning this +particular inbox. + +If an alphanumeric value starting with a lowercase alphabetic +character is specified, the inbox will use a L +which can be shared by multiple inboxes. + +Default: 32 (using a default limiter shared by all inboxes) + =item publicinbox..coderepo The nickname of a "coderepo" section associated with the inbox. @@ -100,6 +157,25 @@ link to the line numbers of blobs. Default: none +=item publicinbox..replyto + +May be used to control how reply instructions in the PSGI +interface are displayed. + +":none=dead inbox" may be specified to denote an inactive list +("dead inbox" may be replaced with another phrase). + +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 separate mailing list/inbox. + +Mirrors of existing centralized mailing lists may use ":list" +here to redirect mail only to the configured inbox address. +The use of ":list" is discouraged for new mailing lists, as it +leads to centralization. + +Default: :all + =item publicinbox.css The local path name of a CSS file for the PSGI web interface. @@ -126,26 +202,30 @@ L for filtering spam before it is imported into git history. Other spam filtering backends may be supported in the future. +This requires L, but affects all configured +public-inboxes in PI_CONFIG. + Default: none =item publicinboxwatch.watchspam -This may be set to C to enable the use of SpamAssassin -L for filtering spam before it is imported into git -history. Other spam filtering backends may be supported in -the future. This requires L, but affects -all configured public-inboxes in PI_CONFIG. +A Maildir to watch for confirmed spam messages to appear in. +Messages which appear in this folder with the (S)een Maildir flag +will be hidden from all configured inboxes based on Message-ID +and content matching. -Default: none +Messages without the (S)een Maildir flag are not considered for hiding. + +Default: none; only for L users =item publicinbox.nntpserver -Set this to point to the address of the L +Set this to point to the hostname of the L instance. This is used to advertise the existence of the NNTP -presnce in the L HTML interface. +endpoint in the L 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 @@ -157,18 +237,179 @@ be treated as the default value. Default: 25 -=item coderepo..dir +=item publicinbox..hide + +A comma-delimited list of listings to hide the inbox from. + +Valid values are currently C and C. + +Default: none + +=item coderepo..dir The path to a git repository for "publicinbox..coderepo" -=item coderepo..cgitUrl +=item coderepo..cgitUrl The URL of the cgit instance associated with the coderepo. Default: none +=item publicinbox.cgitrc + +A path to a L file. "repo.url" directives in the cgitrc +will be mapped to the nickname of a coderepo (without trailing slash), +and "repo.path" directives map to "coderepo..dir". +Use of this directive allows admins of existing cgit installations +to skip declaring coderepo sections and map inboxes directly to +code repositories known to cgit. + +Macro expansion (e.g. C<$HTTP_HOST>) is not yet supported. + +=item publicinbox.cgitbin + +A path to the C executable. The L +interface can spawn cgit as a fallback if the publicinbox.cgitrc +directive is configured. + +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 (from +C, but may be overridden. + +Default: basename of C, /var/www/htdocs/cgit/ +or /usr/share/cgit/ + +=item publicinbox.mailEditor + +See L + +=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 + +=item * match=domain +- Only show inboxes with URLs which belong to the domain of the HTTP request + +=for TODO comment + +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, regardless of domain. +Only use this if you're serving HTTP requests in a domain-agnostic manner. + +=item * 404 +- C 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 + +=back + +=head2 NAMED LIMITER (PSGI) + +Named limiters are useful for preventing large inboxes from +monopolizing (or overloading) the server. Since serving git +clones (via L can be memory-intensive for +large inboxes, it makes sense to put large inboxes on a named +limiter with a low max value; while smaller inboxes can use +the default limiter. + +C keys may be set to enforce resource limits for +a particular limiter. + +Default named-limiters are prefixed with "-". Currently, +the "-cgit" named limiter is reserved for instances spawning +cgit via C + +=over 8 + +=item publicinboxlimiter..max + +The maximum number of parallel processes for the given limiter. + +=item publicinboxlimiter..rlimitCore + +=item publicinboxlimiter..rlimitCPU + +=item publicinboxlimiter..rlimitData + +The maximum core size, CPU time, or data size processes run with the +given limiter will use. This may be comma-separated to distinguish +soft and hard limits. The word "INFINITY" is accepted as the +RLIM_INFINITY constant (if supported by your OS). + +See L for more info on the behavior of RLIMIT_CORE, +RLIMIT_CPU, and RLIMIT_DATA for you operating system. + +=back + +=head3 EXAMPLE WITH NAMED LIMITERS + + ; big inboxes which require lots of memory to clone: + [publicinbox "big1"] + inboxdir = /path/to/big1 + address = big1@example.com + httpbackendmax = big + [publicinbox "big2"] + inboxdir = /path/to/big2 + address = big2@example.com + httpbackendmax = big + + ; tiny inboxes which are easily cloned: + [publicinbox "tiny1"] + inboxdir = /path/to/tiny1 + address = tiny1@example.com + [publicinbox "tiny2"] + inboxdir = /path/to/tiny2 + address = tiny2@example.com + + [publicinboxlimiter "big"] + max = 4 + +In the above example, the "big1" and "big2" are limited to four +parallel L processes between them. + +However, "tiny1" and "tiny2" will share the default limiter +which means there can be 32 L processes +between them. + =head1 ENVIRONMENT =over 8 @@ -188,11 +429,12 @@ and L =head1 COPYRIGHT -Copyright 2016-2018 all contributors L +Copyright 2016-2020 all contributors L License: AGPL-3.0+ L =head1 SEE ALSO L, L, L, -L, L +L, L, +L