about summary refs log tree commit homepage
path: root/INSTALL
blob: d57696e7bcc69a70295f52428853f5edd7171a34 (plain)
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
public-inbox (server-side) installation
---------------------------------------

This is for folks who want to setup their own public-inbox instance.
Clients should see https://ssoma.public-inbox.org/INSTALL.html instead
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

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:

  - Plack                      deb: libplack-perl
                               rpm: perl-Plack, perl-Plack-Test,
                                    perl-Plack-Middleware-ReverseProxy,
                                    perl-Plack-Middleware-Deflater
                               (for HTML/Atom generation)

  - URI::Escape                deb: liburi-perl
                               rpm: perl-URI
                               (for HTML/Atom generation)

  - 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)


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.

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-2018 all contributors <meta@public-inbox.org>
License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>