Wrote more readme..
[licom.git] / ReadMe
1  Lightweight Contact Manager - LiCoM
2 -===================================-
3
4 Requirements:
5
6 - Webserver with CGI support (Apache, http://httpd.apache.org/, with
7   mod_auth_ldap works best)
8 - LDAP server (OpenLDAP will do, http://www.openldap.org/)
9 - Perl (Version 5.6 or later)
10
11
12 Installation:
13
14 Please read these instructions, they include non-obvious hints.
15
16 - Install and configure the LDAP-Server. The root-node for each User must be of
17   the type (aka. objectClass) ``inetOrgPerson''. Also, make sure the ``uid''
18   Field is set. LDAP-entries without an uid-field are considered to be
19   contact-entries. For a sample layout see ``The big picture'' below.
20
21 - Install and configure Apache. These is a sample config in the samples
22   directory which will guide you. It's very important that the REMOTE_USER
23   environment variable is set to the full DN by mod_auth_ldap. Look for
24   ``AuthLDAPRemoteUserIsDN'' in Apache's manual.
25   You will have to set a passwort to connect to the LDAP server, unless you
26   allow anonymous logins. Make sure the passwort is not world-readable.
27
28 - Copy the ``licom.cgi'' script into the directory you just set up. Make sure
29   it's executable by the weberser-user.
30
31 - Copy the directory ``lib/LiCoM'' to an appropriate directory.
32   ``perl -V:installsitelib'' may give you an idea what an appropriate directory
33   might be. You may not want to install the modules globally. In this case copy
34   the entire ``lib'' directory into the same directory as the CGI script. It
35   will look in a subdirectory ``lib'' for it's modules.
36
37 - Create a config at ``/etc/licom/licom.conf''. Again, the samples directory is
38   you friend. Also: there's probably a password in this file. Make sure it's
39   not world-readable. The webserver will need read-permissions though.
40
41 - To install the licom-mutt.pl script you will need to do something fancy, I
42   guess.. I'll explain it as soon as I know for sure..
43
44 Okay, that's about it. You may stop reading now if you dislike reading
45 documentation ;)
46
47
48 Motivation:
49
50 LiCoM is a contact manager I started writing because my family, my friends and
51 myself were not very comfortable with the many existing address book scripts.
52 The demands were:
53 - High compatibility with existing e-mail readers
54 - Read and write operations
55 - Export to vCards
56 - Print lists of groups and/or all contacts
57 - Multi-user capable
58
59 These requirements are tried to be met with the following approach:
60 - Data is kept in an LDAP database (the overall layout is shown in "The big
61   picture")
62 - The LDAP-server is accessed through perl modules which prodide a high-level
63   interface to the database.
64 - On top of these modules a CGI-script has been written.
65
66
67 The big picture:
68
69     [dc=org]
70      |
71      `->[dc=verplant]
72          |
73          `->[ou=addresses]
74              |
75              +->[cn=Forster Florian]
76              |   |
77              |   +->[cn=Test Person]
78              |   +->[cn=Someone Else]
79              |   :  ...
80              |   `->[cn=Last Person]
81              |
82              +->[cn=Another User]
83              |   |
84              |   +->[cn=Still More Entries]
85              :   :
86