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
130
131
132
133
134
135
136
137
138
| | public-inbox (server-side) installation
---------------------------------------
This is for folks who want to setup their own public-inbox instance.
Clients should use normal git-clone/git-fetch, or NNTP clients
if they want to import mail into their personal inboxes.
TODO: this still needs to be documented better,
also see the scripts/ and sa_config/ directories in the source tree
Requirements
------------
public-inbox requires a number of other packages to access its full
functionality. The core tools are, of course:
* Git
* Perl
* SQLite (needed for Xapian use)
To accept incoming mail into a public inbox, you'll likely want:
* MTA - postfix is recommended (for public-inbox-mda)
* SpamAssassin (spamc/spamd) (for public-inbox-watch/public-inbox-mda)
Beyond that, there is a long list of Perl modules required, starting with:
* Date::Parse deb: libdatetime-perl
rpm: perl-Time-ParseDate
* Email::MIME deb: libemail-mime-perl
rpm: perl-Email-MIME
* Email::MIME::ContentType deb: libemail-mime-contenttype-perl
rpm: perl-Email-MIME-ContentType
* Encode::MIME::Header deb: libencode-perl
rpm: perl-Encode
* Plack deb: libplack-perl
rpm: perl-Plack, perl-Plack-Test,
(for HTML/Atom generation)
* URI::Escape deb: liburi-perl
rpm: perl-URI
(for HTML/Atom generation)
Where "deb" indicates package names for Debian-derived distributions and
"rpm" is for RPM-based distributions (only known to work on Fedora).
Numerous optional modules are likely to be useful as well:
- Socket6 deb: libsocket6-perl
rpm: perl-Socket6
(for IPv6 support)
- Search::Xapian deb: libsearch-xapian-perl
rpm: perl-Search-Xapian
(for NNTP service or gzipped mbox over HTTP)
- IO::Compress::Gzip deb: perl-modules (or libio-compress-perl)
rpm: perl-PerlIO-gzip
(for gzipped mbox over HTTP)
- DBI deb: libdbi-perl
rpm: perl-DBI
(for gzipped mbox over HTTP)
- DBD::SQLite deb: libdbd-sqlite3-perl
rpm: perl-DBD-SQLite
(for NNTP service or gzipped mbox over HTTP)
- Danga::Socket deb: libdanga-socket-perl
rpm: perl-Danga-Socket
(for bundled HTTP and NNTP servers)
- Net::Server deb: libnet-server-perl
rpm: perl-Net-Server
(for HTTP/NNTP servers as standalone daemons)
- Filesys::Notify::Simple deb: libfilesys-notify-simple-perl
rpm: perl-Filesys-Notify-Simple
(for public-inbox-watch)
- Inline::C[7] deb: libinline-c-perl
(speeds up spawning on Linux
(see public-inbox-daemon(8))
- Plack::Middleware::ReverseProxy
deb: libplack-middleware-reverseproxy-perl
rpm: perl-Plack-Middleware-ReverseProxy
(ensures redirects are correct when running
behind nginx or Varnish)
- Plack::Middleware::Deflater
deb: libplack-middleware-deflater-perl
rpm: perl-Plack-Middleware-Deflater
(saves bandwidth on responses)
On Fedora systems, you'll probably also end up wanting
perl-Test-HTTP-Server-Simple, perl-Devel-Peek, and perl-IPC-Run to run the
test suite. On Debian systems, libxml-feed-perl and libipc-run-perl
will aid in running the test suite (XML::Feed and IPC::Run respectively,
on CPAN).
standard MakeMaker installation (Perl)
--------------------------------------
Once the dependencies are installed, you should be able to build and
install the system (into /usr/local) with:
perl Makefile.PL
make
make test
make install # root permissions may be needed
When installing Search::Xapian, make sure the underlying Xapian
installation is not affected by an index corruption bug:
https://bugs.debian.org/808610
For Debian 8.x (jessie), this means using Debian 8.5 or later.
public-inbox will never store unregeneratable data in Xapian
or any other search database we might use; Xapian corruption
will not destroy critical data.
See the public-inbox-overview(7) man page for the next steps once the
installation is complete.
Copyright
---------
Copyright 2013-2019 all contributors <meta@public-inbox.org>
License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
|