.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "PUBLIC-INBOX-OVERVIEW 7" .TH PUBLIC-INBOX-OVERVIEW 7 "1993-10-02" "public-inbox.git" "public-inbox user manual" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" public\-inbox\-overview \- an overview of public\-inbox .SH "DESCRIPTION" .IX Header "DESCRIPTION" public-inbox consists of many pieces which may be used independently or in conjunction of each other for: .IP "1." 4 Mirroring existing public-inboxes. .IP "2." 4 Mirroring mailing lists. .IP "3." 4 Hosting standalone inboxes. .SS "Mirroring existing public-inboxes" .IX Subsection "Mirroring existing public-inboxes" Mirroring existing public-inboxes is the easiest way to get started. Your mirror will remain dependent on the \s-1REMOTE_URL\s0 you are mirroring and you only need to use two new commands in addition to common \fBgit\fR\|(1) commands. .PP Instructions are different depending on whether the inbox is \fBpublic\-inbox\-v1\-format\fR\|(5) or \fBpublic\-inbox\-v2\-format\fR\|(5). See the \*(L"Archives are clonable:\*(R" part of the \s-1WWW\s0 interface of a given inbox for cloning instructions specific to that inbox. The instructions are roughly: .PP .Vb 2 \& # 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 Search::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 .Ve .PP See \*(L"Serving public-inboxes\*(R" below for info on how to expose your mirror to other readers. .SS "Mirroring mailing lists" .IX Subsection "Mirroring mailing lists" Mirroring mailing lists may be done by any reader of a mailing list using \fBpublic\-inbox\-watch\fR\|(1). .PP .Vb 2 \& # This will create a new v2 inbox: \& public\-inbox\-init \-V2 NAME INBOX_DIR MY_URL LIST_ADDRESS .Ve .PP Then, see the \fBpublic\-inbox\-watch\fR\|(1) manual for configuring \&\f(CW\*(C`watch\*(C'\fR, \f(CW\*(C`watchheader\*(C'\fR, \f(CW\*(C`listid\*(C'\fR and the optional \f(CW\*(C`spamcheck\*(C'\fR and \f(CW\*(C`watchspam\*(C'\fR entries. .PP You will need to leave \fBpublic\-inbox\-watch\fR\|(1) running to keep the mailbox up-to-date as messages are delivered to the mailing list. .PP Running \fBpublic\-inbox\-index\fR\|(1) to create search indices is recommended. \fBpublic\-inbox\-watch\fR\|(1) will automatically maintain the indices if they were created by \&\fBpublic\-inbox\-index\fR\|(1) .PP .Vb 1 \& public\-inbox\-index INBOX_DIR .Ve .PP Instead of using \fBpublic\-inbox\-watch\fR\|(1), using \&\fBpublic\-inbox\-mda\fR\|(1) with the \f(CW\*(C`\-\-no\-precheck\*(C'\fR option and relying on the \f(CW\*(C`listid\*(C'\fR directive in \fBpublic\-inbox\-config\fR\|(5) is also an option. .SS "Hosting standalone inboxes" .IX Subsection "Hosting standalone inboxes" Using \fBpublic\-inbox\-init\fR\|(1) to initialize the inbox as in the other methods is recommended. See \fBpublic\-inbox\-mda\fR\|(1) for more details; but this also requires MTA-specific knowledge. .SS "Serving public-inboxes" .IX Subsection "Serving public-inboxes" Since public-inboxes are git repositories, they may be served to remote clients via \fBgit\-daemon\fR\|(1) as well as specialized \s-1HTTP\s0 and \s-1NNTP\s0 daemons distributed with public-inbox. .PP See \fBpublic\-inbox\-httpd\fR\|(1) and \fBpublic\-inbox\-nntpd\fR\|(1) for more information on using these daemons. .PP Hosting a public-inbox over \s-1HTTP\s0 or \s-1NNTP\s0 will never require write access to any files in the inbox directory. .PP Users familiar with \s-1PSGI\s0 and Plack may also use PublicInbox::WWW with the preferred server instead of \&\fBpublic\-inbox\-httpd\fR\|(1) .SH "CONTACT" .IX Header "CONTACT" Feedback welcome via plain-text mail to .PP The mail archives are hosted at and .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright 2016\-2021 all contributors .PP License: \s-1AGPL\-3.0+\s0