Add is-addressbook and is-calendar settings.
[jelmer/calypso.git] / README
1 ==========================
2  Calypso - CalDAV Server
3 ==========================
4
5 The Calypso Project is a free and open-source CalDAV calendar server.
6
7 Initial setup
8 -------------
9 Calypso runs as a regular user, all data are stored in ~/.config/calypso.
10 Either generate SSL keys, or use the default self-signed keys, then:
11
12 $ mkdir -p ~/.config/calypso/calendars
13 $ chmod og-rwx ~/.config/calypso
14 $ touch ~/.config/calypso/htpasswd
15 $ cat > ~/.config/calypso/config << EOF
16 [server]
17 certificate=/etc/ssl/certs/ssl-cert-snakeoil.pem
18 key=/etc/ssl/private/ssl-cert-snakeoil.pem
19
20 [acl]
21 type=htpasswd
22 encryption=sha1
23 filename=$HOME/.config/calypso/htpasswd
24 EOF
25
26 Running calypso
27 ---------------
28
29 Then run calypso:
30
31 $ python ./calypso.py
32
33 To capture logs, you can run in the foreground with debugging:
34
35 $ python ./calypso.py -fg >calypso.log 2>&1
36
37
38 Creating users and calendars
39 ----------------------------
40
41 To add a new user:
42
43 $ htpasswd -s $HOME/.config/calypso/htpasswd USER
44
45 To add a new database:
46
47 $ mkdir -p ~/.config/calypso/calendars/private/test
48 $ cd ~/.config/calypso/calendars/private/test
49 $ git init
50 $ cat > .calypso-collection << EOF
51 [collection]
52 is-calendar = 1
53 EOF
54 $ git add .calypso-collection
55 $ git commit -m'initialize new calendar'
56
57 The new calendar should now be visible as https://USER:PASSWORD@localhost:5233/private/test.
58
59 You can add files to the directory at any time; calypso will check the
60 directory mtime at each operation and update its internal state from
61 that on disk automatically when the directory changes.
62
63 Importing files
64 ---------------
65
66 Given a set of files with VCALENDAR or VCARD entries, you can import them with:
67
68 $ calypso --import private/test <filenames...>
69
70 This will update any changed entries and add any new ones.
71
72 Kerberos via GSSAPI support
73 ---------------------------
74 For Kerberos authentication generate a keytab on your KDC and put the
75 exported keytab on your calypso server into */etc/krb.keytab* so it
76 looks like:
77
78   # ktutil -k /etc/krb5.keytab list
79   /etc/krb5.keytab:
80
81   Vno  Type                     Principal                         Aliases
82     1  aes256-cts-hmac-sha1-96  HTTP/foo.example.com@EXAMPLE.COM
83     1  des3-cbc-sha1            HTTP/foo.example.com@EXAMPLE.COM
84     1  arcfour-hmac-md5         HTTP/foo.example.com@EXAMPLE.COM
85
86 the put the service name to use into ~/.config/calypso/config:
87
88   [server]
89   servicename=HTTP@foo.example.com
90
91 and install the pykerberos module. You should then be able to authenticate
92 via Kerberos using GSSAPI.