root/doc/INSTALL.txt

Revision 303:6f57b7328cb8, 6.0 KB (checked in by Anselm Lingnau <anselm@…>, 9 months ago)

The Great Renaming: Change all command names to 'pl-*' and directory to '.pl'.
The idea behind this is to emphasise that the software is called ?*Project*
Lancelot? as opposed to plain ?Lancelot?. There is apparently a KDE tool that
goes by the name of ?Lancelot?, and we want to make clear that this is separate
and different. Also, Project Lancelot has been around for a lot longer!

Line 
1= Lancelot Installation =
2
3== Abstract ==
4
5This document explains how to install Project Lancelot on your
6computer.
7
8== Getting and unpacking the distribution ==
9
10Project Lancelot is best installed on your mail server. This is
11because it is integrated into your mail system so that incoming
12messages that are to do with lists managed by Project Lancelot are
13diverted to a Project Lancelot program, which handles the posting,
14subscribing, etc. that the messages ask for.
15
16First of all, you have to obtain the software, e.g., from the
17[http://lancelot.anselms.net/download/ Project Lancelot download site].
18Change to a suitable directory on your system and unpack the TAR.GZ
19archive:
20{{{
21  $ wget http://lancelot.anselms.net/download/lancelot-current.tar.gz
22  $ tar xvzf lancelot-current.tar.gz
23}}}
24This will create a directory called ''lancelot-''VERSION, which
25contains the actual Project Lancelot code, documentation, etc.
26
27Project Lancelot is essentially a set of Perl modules, and can be
28''compiled'' like other Perl modules, using
29{{{
30  $ perl Makefile.PL
31  $ make test
32}}}
33(the tests that come with the package are scanty, though).
34
35You will probably have to become ''root'' to be able to install
36Project Lancelot to wherever Perl-related stuff installed on your
37system:
38{{{
39  # make install_site
40}}}
41This will usually put the Perl modules, executable programs, man
42pages, etc. somewhere below ''/usr/local''. You can select an
43alternative destination directory by using something like
44{{{
45  $ perl Makefile.PL PREFIX=/opt/lancelot
46}}}
47when creating the package Makefile.
48
49
50== Mail server issues ==
51
52Project Lancelot can work together with a wide variety of mail server
53programs (MTAs). If you get Project Lancelot to run with a MTA not
54listed here and have something useful to tell us (and other Project
55Lancelot users), feel free to let us know!
56
57=== Generic Sendmail-like ===
58
59The easiest way to create mailing lists using Project Lancelot, on a
60MTA that handles mail redirection the way Sendmail does (such as
61Sendmail itself, Exim, or Postfix), is by using the /etc/aliases file
62(called /etc/mail/aliases on some systems) to direct mail to "list
63addresses" to the ''pl-incoming'' program. This is best done using the
64''address extension'' facility available in recent versions of
65Sendmail (and the others). An alias like
66{{{
67  list: "|/usr/local/bin/pl-incoming list@example.com"
68}}}
69is used to handle mail to any address of the form
70''list+SOMETHING@example.com'', like ''list+subscribe@example.com''
71etc. Note that the address extension facility may have to be enabled
72in your MTA, e.g., by using the '''recipient_delimiter''' parameter in
73Postfix.
74
75=== Postfix ===
76
77Project Lancelot can be installed for Postfix as per the ''generic
78Sendmail-like'' instructions above; however, there is a more
79convenient method if you are in a position to set aside a whole
80subdomain to your mailing lists (such as ''lists.example.com''). This
81works as follows:
82
83First create a special user for your Project Lancelot lists, such as
84''lancelot'':
85{{{
86  # useradd -m lancelot
87}}}
88The user does not require login permission; i.e., no password must be
89set.
90
91Then change ''/etc/postfix/master.cf'' to add a "transport" for
92Project Lancelot as follows:
93{{{
94  lancelot unix - n n - - pipe
95    flags=DRh user=lancelot
96    argv=/usr/local/bin/pl-incoming ${user}@${nexthop}
97}}}
98And direct all mail to your mailing list subdomain to that transport
99by entering
100{{{
101  lists.example.com    lancelot:
102}}}
103into your "transport table" (usually in ''/etc/postfix/transport'').
104Don't forget to do
105{{{
106  # postmap hash:/etc/postfix/transport
107}}}
108(or whatever is suitable for your system).
109
110You may also want to ensure that messages sent to more than one
111list on your system are passed to individual instances of
112''pl-incoming'', by adding the following lines to
113''/etc/postfix/main.cf'':
114{{{
115  lancelot_destination_concurrency_limit = 1
116  lancelot_destination_recipient_limit = 1
117}}}
118Also make sure that your '''recipient_delimiter''' is set to something
119sensible such as "+" ("-" will also do but then you will not be able
120to use "-" within mailing list names). All the addresses used by
121Project Lancelot mailing lists will then look like
122''list+SOMETHING@example.com''.
123
124You can now add mailing lists as the ''lancelot'' user:
125{{{
126  # /bin/su - lancelot
127  lancelot$ pl-init test@lists.example.com admin@example.com
128}}}
129This requires no further per-list configuration of your mail server,
130except that your '''mail.delimiter''' parameter should be set to match
131your Postfix '''recipient_delimiter'''. The most convenient method of
132ensuring this is to add something like "mail.delimiter = +" to your
133''/etc/lancelot/defaults.conf'' file.
134
135=== Other MTAs ===
136
137If you get Project Lancelot to run with another MTA such as Exim or
138Qmail, do let us know how so we can add this information here.
139
140== pl-janitor and cron ==
141
142The pl-janitor(1) program is essential for automatic bounce
143processing. You will want to run this from cron at periodic intervals.
144Add a cron job like
145{{{
146  33 */6 * * * lancelot /usr/local/bin/pl-janitor /home/lancelot/.pl
147}}}
148(where ''/home/lancelot/.pl'' is the directory where the mailing lists
149live). pl-janitor(1) picks up all mailing lists in the directories
150passed on the command line. You may also pass the names of mailing
151lists directly but the directory method is usually more convenient.
152
153You should be able to get by with one pl-janitor(1) instance per user
154who is managing mailing lists; individual users should add a line
155similar to the one above to their personal crontabs using the
156crontab(1) command but omit the first ''lancelot'' which is only
157necessary in a system-wide crontab file. See crontab(5) for details.
158
159One good method, if you're using the ''lancelot'' user for system-wide
160mailing lists as suggested above, is to add a user-specific crontab
161for ''lancelot'' by logging in as that user and executing ''crontab
162-e''.
163
164The period at which pl-janitor(1) runs is related to your bounce
165parameter settings; if you use the standard setup then running
166pl-janitor(1) once per day would probably be quite sufficient, but
167four times (as above) isn't wrong, either.
Note: See TracBrowser for help on using the browser.