diff options
Diffstat (limited to 'INSTALL')
-rw-r--r-- | INSTALL | 122 |
1 files changed, 73 insertions, 49 deletions
@@ -1,25 +1,35 @@ -public-inbox (server-side) installation ---------------------------------------- +public-inbox / lei installation +------------------------------- -This is for folks who want to setup their own public-inbox instance. -Clients should use normal git-clone/git-fetch, IMAP or NNTP clients -if they want to import mail into their personal inboxes. +This is for people who want to run public-inbox on their server or +lei as a command-line tool. Any HTTP, IMAP, NNTP, or POP3 client can +access public-inbox servers, as can git-{clone,fetch} on the HTTP(S) +endpoint. -As of 2022, public-inbox is packaged by several OS distributions, +Since our marketing sucks, ease of installation is an important goal +for this project and we only depend on distro-provided packages. + +As of 2024, public-inbox is packaged by several OS distributions, listed in alphabetical order: Debian, GNU Guix, NixOS, and Void Linux. public-inbox is developed on Debian GNU/Linux systems and will never depend on packages outside of the "main" component of -the "stable" distribution, currently Debian 10.x ("buster"), -but older versions of Debian remain supported. +the "oldstable" distribution, currently Debian 11.x ("bullseye"), +but older versions of Debian remain supported (as are newer ones). -Most packages are available in other GNU/Linux distributions -and FreeBSD. CentOS 7.x users will likely want newer git and -Xapian packages for better performance and v2 inbox support: +Most packages are available in other GNU/Linux distributions, +Alpine Linux, FreeBSD, NetBSD, OpenBSD, and DragonflyBSD. +CentOS 7.x users will likely want newer git and Xapian for +better performance and v2 inbox support: https://public-inbox.org/meta/20210421151308.yz5hzkgm75klunpe@nitro.local/ -TODO: this still needs to be documented better, -also see the scripts/ and sa_config/ directories in the source tree +As of 2.0, install/deps.perl makes it easier to install target +dependencies needed for certain features. See install/README in +the source tree for more info. + +Also see sa_config/ directories in the source tree for recommended +SpamAssassin configuration examples if using public-inbox-mda or +public-inbox-watch. Requirements ------------ @@ -43,61 +53,59 @@ Beyond that, there is one non-standard Perl package required: rpm: perl-URI (for HTML/Atom generation) -Plack and Date::Parse are optional as of public-inbox v1.3.0, -but required for older releases: - -* Plack deb: libplack-perl - pkg: p5-Plack - rpm: perl-Plack, perl-Plack-Test, - (for HTML/Atom generation) - -- Date::Parse deb: libtimedate-perl - pkg: p5-TimeDate - rpm: perl-TimeDate - (for broken, mostly historical emails) - Where "deb" indicates package names for Debian-derived distributions, -"pkg" is for the FreeBSD package (maybe other common BSDs, too), and -"rpm" is for RPM-based distributions (only known to work on Fedora). +"pkg" is for the FreeBSD package (and some other common BSDs, too), +"pkgin" for NetBSD, "apk" for Alpine Linux and "rpm" is for RPM-based +distributions (only known to work on Fedora). -Numerous optional modules are likely to be useful as well: +Most users will likely also want the following: - DBD::SQLite deb: libdbd-sqlite3-perl pkg: p5-DBD-SQLite rpm: perl-DBD-SQLite (for v2, IMAP, NNTP, or gzipped mboxes) -- Search::Xapian or Xapian(.pm) deb: libsearch-xapian-perl - pkg: p5-Search-Xapian OR p5-Xapian +- Xapian(.pm) (or Search::Xapian) deb: libsearch-xapian-perl + pkg: p5-Xapian (FreeBSD, NetBSD) + xapian-bindings-perl (OpenBSD) rpm: perl-Search-Xapian - (HTTP and IMAP search) + (required for lei; HTTP and IMAP search) + +Other modules might be useful as well, depending on your use case and +preferences: + +- Plack deb: libplack-perl + pkg: p5-Plack + rpm: perl-Plack, perl-Plack-Test, + (for WWW interface, public-inbox-httpd(1)) - Inline::C deb: libinline-c-perl - pkg: pkg-Inline-C + pkg: p5-Inline-C rpm: perl-Inline (or perl-Inline-C) - (speeds up process spawning on Linux, + (required for lei on *BSD; + speeds up process spawning on Linux, see public-inbox-daemon(8)) - Email::Address::XS deb: libemail-address-xs-perl - pkg: pkg-Email-Address-XS + pkg: p5-Email-Address-XS (correct parsing of tricky email - addresses, phrases and comments, - required for IMAP) + addresses, phrases and comments) - Parse::RecDescent deb: libparse-recdescent-perl pkg: p5-Parse-RecDescent rpm: perl-ParseRecDescent - (optional, for public-inbox-imapd(1)) + (for public-inbox-imapd(1)) - Mail::IMAPClient deb: libmail-imapclient-perl pkg: p5-Mail-IMAPClient rpm: perl-Mail-IMAPClient - (optional for lei and public-inbox-watch) + (only for lei and public-inbox-watch + when reading from IMAP) - BSD::Resource deb: libbsd-resource-perl pkg: p5-BSD-Resource rpm: perl-BSD-Resource - (optional, for PSGI limiters + (only for PSGI limiters, see public-inbox-config(5)) - Plack::Middleware::ReverseProxy deb: libplack-middleware-reverseproxy-perl @@ -109,32 +117,43 @@ Numerous optional modules are likely to be useful as well: * highlight deb: libhighlight-perl (for syntax highlighting with coderepo) -* xapian-compact (tool) deb: xapian-tools +* xapian-tools deb: xapian-tools pkg: xapian-core + pkgin: xapian rpm: xapian-core - (optional, for public-inbox-compact(1)) + (for public-inbox-compact(1) and + public-inbox-cindex(1)) + +* Xapian development files deb: libxapian-dev + pkg: xapian-core + pkgin: xapian + apk: xapian-core-dev + rpm: xapian-core-devel / xapian14-core-libs + (for public-inbox-cindex(1) and future + performance enhancements) * curl (tool) deb, pkg, rpm: curl - (for HTTP(S) externals with curl) + (for lei HTTP(S) externals with curl and + public-inbox-clone(1)) - Linux::Inotify2 deb: liblinux-inotify2-perl rpm: perl-Linux-Inotify2 (for lei, public-inbox-watch and -imapd - on Linux) + on Linux; not required as of 2.0)) - IO::KQueue pkg: p5-IO-KQueue (for lei, public-inbox-watch and -imapd - on *BSDs) + on *BSDs only) - Net::Server deb: libnet-server-perl - pkg: pkg-Net-Server + pkg: p5-Net-Server rpm: perl-Net-Server (for HTTP/IMAP/NNTP background daemons, not needed as systemd services or foreground servers) The following module is typically pulled in by dependencies listed -above, so there is no need to explicitly install them: +above, so there is no need to explicitly install it: - DBI deb: libdbi-perl pkg: p5-DBI @@ -155,6 +174,11 @@ Uncommonly needed modules (see HACKING for development-only modules): pkg: p5-Crypt-CBC (for PublicInbox::Unsubscribe (rarely used)) +- Date::Parse deb: libtimedate-perl + pkg: p5-TimeDate + rpm: perl-TimeDate + (for broken, mostly historical emails) + standard MakeMaker installation (Perl) -------------------------------------- @@ -200,11 +224,11 @@ library. Debian-based distros put them in "libperl5.$MINOR" or "perl-modules-5.$MINOR"; and FreeBSD puts them in "perl5". RPM-based distros split them out into separate packages: +* autodie rpm: perl-autodie * Digest::SHA rpm: perl-Digest-SHA * Data::Dumper rpm: perl-Data-Dumper -* Encode rpm: perl-Encode * IO::Compress rpm: perl-IO-Compress -* Storable rpm: perl-Storable +* Sys::Syslog rpm: perl-Sys-Syslog * Text::ParseWords rpm: perl-Text-Parsewords Copyright |