about summary refs log tree commit homepage
path: root/INSTALL
blob: 11d844cf1c9e8c3b4de293d5de158f19fa9b16bc (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
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

It should also be possible to use public-inbox with only IMAP
(or even POP(!)) access to a mailbox.

standard MakeMaker installation (Perl)
--------------------------------------

	perl Makefile.PL
	make
	make test
	make install # root permissions may be needed

Requirements
------------

* git
* Perl and several modules:    (Debian package name)
  - Date::Parse                libtimedate-perl
  - Email::MIME                libemail-mime-perl
  - Email::MIME::ContentType   libemail-mime-contenttype-perl
  - Encode::MIME::Header       perl

Optional components:

* MTA - postfix is recommended (for public-inbox-mda)
* SpamAssassin (spamc/spamd)   (for public-inbox-watch/public-inbox-mda)

Optional Perl modules:

  - Plack[1]                   libplack-perl
  - URI::Escape[1]             liburi-perl
  - Search::Xapian[2][3]       libsearch-xapian-perl
  - IO::Compress::Gzip[3]      perl-modules (or libio-compress-perl)
  - DBI[3]                     libdbi-perl
  - DBD::SQLite[2][3]          libdbd-sqlite3-perl
  - Danga::Socket[4]           libdanga-socket-perl
  - Net::Server[5]             libnet-server-perl
  - Filesys::Notify::Simple[6] libfilesys-notify-simple-perl
  - Inline::C[7]               libinline-c-perl
  - Plack::Middleware::ReverseProxy[8] libplack-middleware-reverseproxy-perl
  - Plack::Middleware::Deflater[8] libplack-middleware-deflater-perl

[1] - Optional, needed for serving/generating Atom and HTML pages
[2] - Optional, only required for NNTP server
[3] - Optional, needed for gzipped mbox support over HTTP
[4] - Optional, needed for bundled HTTP and NNTP servers
[5] - Optional, needed for standalone daemonization of HTTP+NNTP servers
[6] - Optional, needed for public-inbox-watch Maildir watcher
[7] - Optional, allows speeds up spawning on Linux (see public-inbox-daemon(8))
[8] - Optional, recommended for PSGI interface

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.

Optional Perl modules (for developers):

  - XML::Feed[9]               libxml-feed-perl
  - IPC::Run[10]               libipc-run-perl

[9] - Optional, for testing Atom feeds
[10] - Optional, for some tests (we hope to drop this dependency someday)

Copyright
---------

Copyright 2013-2018 all contributors <meta@public-inbox.org>
License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>