Removed website which is now in DAViCal Project/Website
1
docs/website/.gitignore
vendored
@ -1 +0,0 @@
|
||||
wiki
|
||||
@ -1,132 +0,0 @@
|
||||
<?php
|
||||
$title = "Administration";
|
||||
include("inc/page-header.php");
|
||||
?>
|
||||
<h1>Administration Functions</h1>
|
||||
<p>The administration of this application should be fairly simple. You can administer:</p>
|
||||
<ul>
|
||||
<li>Principals (Users, Resources or Groups)</li>
|
||||
<li>Membership of groups</li>
|
||||
<li>Privileges granted by a principal or collection to another principal</li>
|
||||
|
||||
</ul>
|
||||
<p><i>There is no ability to view and / or maintain calendars or events from within this administrative interface.</i></p>
|
||||
<p>To do that you will need to use a CalDAV capable calendaring application such as Evolution, Sunbird, Thunderbird
|
||||
(with the Lightning extension), Mulberry, Apple iCal, an iPhone or something else.</p>
|
||||
|
||||
<h2>Users, Resources and Groups</h2>
|
||||
<p>These are the things which may have collections of calendar resources (i.e. calendars).</p>
|
||||
<p>In the lists of principals you can click on any principal to see the full detail
|
||||
for that record.</p>
|
||||
<p>The primary differences between the types of principal are as follows:</p>
|
||||
<ul>
|
||||
<li>Users will probably have calendars, and are likely to also log on to the system.</li>
|
||||
|
||||
<li>Resources do have calendars, but they will not usually log on.</li>
|
||||
<li>Groups provide an intermediate linking to minimise administration overhead. They might not have calendars, and they will not usually log on.</li>
|
||||
</ul>
|
||||
<p>These differences are more conceptual than actual, however: in the DAV specification they are really all 'principals' and all equal.</p>
|
||||
|
||||
<h2>Groups</h2>
|
||||
<p>Groups exist to simplify the maintenance of privileges. Rather than assigning a write privilege
|
||||
to each individual with write access, you can create a group with the members being the people
|
||||
needing write access, and assign the write privilege to that group.</p>
|
||||
<p>In this way as people come and go you can maintain the members of the group and it is easier to see
|
||||
who has the desired level of access. If the needed level of access changes, you can change the grant
|
||||
to the individual group, rather than to each member of the group</p>
|
||||
|
||||
<h2>Privileges</h2>
|
||||
<p>The basic DAV permissions are as follows:</p>
|
||||
<p>read, write-properties, write-content, unlock, read-acl, read-current-user-privilege-set, write-acl, bind & unbind</p>
|
||||
|
||||
<p>There are also a couple of useful aggregates of those, which are:</p>
|
||||
<ul>
|
||||
<li> write - aggregate of write-properties, write-content, bind & unbind</li>
|
||||
<li> all - aggregate of all permissions</li>
|
||||
</ul>
|
||||
<p>Since none of those covered publication of Free/Busy information, CalDAV introduced an additional <em>read-free-busy</em></p>
|
||||
<p>Unfortunately that didn't cover all of the possibilities of scheduling privileges, so the
|
||||
CalDAV Scheduling Extensions to WebDAV has added several further permissions:</p>
|
||||
<p>schedule-deliver-invite, schedule-deliver-reply, schedule-query-freebusy, schedule-send-invite,
|
||||
schedule-send-reply, schedule-send-freebusy
|
||||
</p>
|
||||
<p>Two more aggregate permissions are also added with this RFC:</p>
|
||||
<ul>
|
||||
<li> CALDAV:schedule-deliver - CALDAV:schedule-deliver-invite, CALDAV:schedule-deliver-reply and CALDAV:schedule-query-freebusy</li>
|
||||
<li> CALDAV:schedule-send - CALDAV:schedule-send-invite, CALDAV:schedule-send-reply and CALDAV:schedule-send-freebusy</li>
|
||||
</ul>
|
||||
<p>That's all way too complicated, even if it does need to be there under the covers. Mostly you just need to know
|
||||
about <em>read</em>, <em>write</em> & <em>free-busy</em></p>
|
||||
|
||||
<h2>Some Examples</h2>
|
||||
|
||||
<h3>Several people administer a set of resources</h3>
|
||||
<p>Suppose you have some resources, R1, R2 and R3 and you want to centralise the booking
|
||||
of the resources through an administrative assistant, A1. When A1 is away you want to
|
||||
have a backup person, so you also want A2 to be able to do that.</p>
|
||||
<p>In a case like this you should create an intermediate group "G" and make each
|
||||
of the people you want to be able to administer those resources members of that
|
||||
group.</p>
|
||||
<p>Each of the resources should be set up to grant default privileges to everyone
|
||||
to see the full schedule (<em>read</em> privilege), and the resources should be
|
||||
set up to grant <em>write</em> (or possibly <em>all</em>) privileges to the group "G".</p>
|
||||
<p>In this case you might only set up a single principal for the resources, and have
|
||||
multiple calendars, one for each resource.</p>
|
||||
<pre>
|
||||
A1 ==>> is a member of ==> G
|
||||
A2 ==>> is a member of ==> G
|
||||
R1 ==>> grants write privilege to ==> G
|
||||
R2 ==>> grants write privilege to ==> G
|
||||
R3 ==>> grants write privilege to ==> G
|
||||
P1 is a different principal with no specifically granted privilege
|
||||
</pre>
|
||||
<p>P1 will be able to see all of the scheduled events for R1, R2 and R3, but will
|
||||
not be able to create, delete or modify them. A1 and A2 will be able to see,
|
||||
create and modify all the events.</p>
|
||||
|
||||
<h4>An administrative assistant has full access to a managers calendar</h4>
|
||||
<p>In this case the manager will simply grant the desired specific privileges to their assistant.</p>
|
||||
|
||||
<h4>A team wish to see each others calendars</h4>
|
||||
<p>In this case you should create a group "G", which all team members are
|
||||
members of, and each team member will grant whatever privileges they wish to that group.</p>
|
||||
<pre>
|
||||
P1 ==>> is a member of ==> G
|
||||
P1 ==>> grants read privilege to ==> G
|
||||
P2 ==>> is a member of ==> G
|
||||
P2 ==>> grants read privilege to ==> G
|
||||
P3 ==>> is a member of ==> G
|
||||
P3 ==>> grants write privilege to ==> G
|
||||
P4 ==>> is a member of ==> G
|
||||
P4 ==>> grants read-free-busy privilege to ==> G
|
||||
</pre>
|
||||
|
||||
<h4>A team can modify each others calendars</h4>
|
||||
<p>Similar to above, you should create a group "G", which all team members are
|
||||
members of, and each team member will grant <em>write</em> privileges to that group.</p>
|
||||
<pre>
|
||||
P1 ==>> is a member of ==> G
|
||||
P1 ==>> grants write privilege to ==> G
|
||||
P2 ==>> is a member of ==> G
|
||||
P2 ==>> grants write privilege to ==> G
|
||||
P3 ==>> is a member of ==> G
|
||||
P3 ==>> grants write privilege to ==> G
|
||||
P4 ==>> is a member of ==> G
|
||||
P4 ==>> grants write privilege to ==> G
|
||||
</pre>
|
||||
|
||||
<p>Also see the Permissions page on the DAViCal Wiki: <a href="http://wiki.davical.org/w/Permissions" title="The Permissions page on the DAViCal Wiki">http://wiki.davical.org/w/Permissions</a>.</p>
|
||||
|
||||
<h1>Configuring Calendar Clients for DAViCal</h1>
|
||||
<p>The <a href="clients.php">DAViCal client setup page on sourceforge</a> has information on how
|
||||
to configure Evolution, Mozilla Calendar (Sunbird & Lightning) and Mulberry to use remotely hosted calendars.</p>
|
||||
<p>The administrative interface has no facility for viewing or modifying calendar data.</p>
|
||||
|
||||
<h1>Configuring DAViCal</h1>
|
||||
<p>If you can read this then things must be mostly working already.</p>
|
||||
<p>The <a href="installation.php">DAViCal installation page</a> on sourceforge has
|
||||
some further information on how to install and configure this application.</p>
|
||||
|
||||
|
||||
<?php
|
||||
include("inc/page-footer.php");
|
||||
@ -1,55 +0,0 @@
|
||||
<?php
|
||||
$title = "DAViCal Background";
|
||||
include("inc/page-header.php");
|
||||
?>
|
||||
<h1>Background</h1>
|
||||
<p>The CalDAV specification has been under development for a few years now, and at the same time we
|
||||
have seen increasing pressure from people and organisations in the open source world to provide a
|
||||
solution to their shared calendaring problems.
|
||||
</p>
|
||||
<p>In evaluating the possibilities for shared calendaring, there are a number of possible approaches, but
|
||||
we have elected to follow the path of implementing CalDAV because we believe it is a good specification
|
||||
and that it will in due course gain client implementations and provide the richest user
|
||||
experience through those client implementations.</p>
|
||||
|
||||
<h1>Goals</h1>
|
||||
<p>CalDAV is a client-server protocol specific to managing and reporting on <em>collections</em> of <em>calendar resources</em>.</p>
|
||||
<p>As such, our intentions in developing this application are as follows:</p>
|
||||
<ul>
|
||||
<li>Simplicity of Prerequisites</li>
|
||||
<li>Simplicity of Setup</li>
|
||||
<li>Simplicity of Operation</li>
|
||||
<li>Web-based Administration</li>
|
||||
</ul>
|
||||
|
||||
<h2>Simplicity of Prerequisites</h2>
|
||||
<p>We have chosen to write this in PHP because we believe that PHP is a widely available web scripting language.</p>
|
||||
<p>We have chosen to use the Apache web server because it is also widely available. This is not necessarily a requirement,
|
||||
but no testing has been undertaken in other PHP environments to date.</p>
|
||||
<p>We have chosen to use the PostgreSQL database, because it is a free, open-source database, which operates on a very wide set of
|
||||
operating environments, and which is <em>fully</em> ACID compliant.</p>
|
||||
|
||||
<h2>Simplicity of Setup</h2>
|
||||
<p>For the greatest ease use you should consider installing DAViCal on the <a href="http://www.debian.org/">Debian GNU/Linux</a>
|
||||
distribution from the readily available, signed packages.</p>
|
||||
<p>We expect to increase the level of automation and simplicity for the Debian target release in particular, although other
|
||||
distributions might also become easier at the same time. We do expect slightly greater installation complexity in the first
|
||||
few releases as we come to understand the particular problems people experience.</p>
|
||||
|
||||
<h2>Simplicity of Operation</h2>
|
||||
<p>In general DAViCal should not need significant maintenance to keep it operating.</p>
|
||||
<p>Administrative functionality will be kept as simple as possible, within the target of supporting
|
||||
organisations of up to several hundred staff.</p>
|
||||
<p>The server-side smarts in DAViCal are intended to be fairly minimal in order to support CalDAV
|
||||
only in a manner sufficient to inter-operate with clients, and with the focus primarily
|
||||
on the storage of calendar resources.</p>
|
||||
|
||||
<h2>Web-based Administration</h2>
|
||||
<p>General administration of the system should be through a web-based application.</p>
|
||||
<p>Calendars will not be made available in a web-based view in initial releases. It is unlikely that calendars will ever be
|
||||
maintainable through a web-based client, although the server should support the use of web-based client software which
|
||||
works using the CalDAV protocol.</p>
|
||||
|
||||
|
||||
<?php
|
||||
include("inc/page-footer.php");
|
||||
@ -1,68 +0,0 @@
|
||||
<?php
|
||||
$title = "Client Configuration";
|
||||
$two_panes = true;
|
||||
include("inc/page-header.php");
|
||||
|
||||
$dir = "clients";
|
||||
$clients = array();
|
||||
$screenshots = array();
|
||||
$icons = array();
|
||||
$details = array();
|
||||
if ( is_dir($dir)) {
|
||||
if ( $dh = opendir($dir) ) {
|
||||
while (($file = readdir($dh)) !== false ) {
|
||||
if ( preg_match( '#^([^/]+)-([^/-]+)\.([^/.-]+[^~])$#', $file, $matches ) ) {
|
||||
switch ( $matches[2] ) {
|
||||
case 'details':
|
||||
$details[$matches[1]] = $file;
|
||||
$clients[] = $matches[1];
|
||||
break;
|
||||
|
||||
case 'icon': $icons[$matches[1]] = $file; break;
|
||||
case 'screenshot': $screenshots[$matches[1]] = $file; break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
closedir($dh);
|
||||
}
|
||||
}
|
||||
|
||||
$client_page = "Interoperability";
|
||||
if ( isset( $_GET['client'] ) ) {
|
||||
if ( isset( $details[$_GET['client']] ) ) {
|
||||
$client_page = $_GET['client'];
|
||||
}
|
||||
}
|
||||
|
||||
$style = ($client_page == "Interoperability" ? ' class="selected"' : '' );
|
||||
printf( '<p%s><a%s href="clients.php?client=Interoperability">Interoperability</a></p>', $style, $style );
|
||||
|
||||
sort($clients);
|
||||
foreach( $clients AS $k => $v ) {
|
||||
if ( $v == "Interoperability" ) continue;
|
||||
if ( $v == "Other" ) continue;
|
||||
$style = (strcmp($client_page,$v) == 0 ? ' class="selected"' : '' );
|
||||
printf( '<p%s><a%s href="clients.php?client=%s">', $style, $style, urlencode($v) );
|
||||
if ( isset($icons[$v]) ) {
|
||||
printf( '<img src="clients/%s" alt="%s" /><br />', urlencode($icons[$v]), urlencode($v) );
|
||||
}
|
||||
echo "$v</a></p>\n";
|
||||
}
|
||||
|
||||
$style = ($client_page == "Other" ? ' class="selected"' : '' );
|
||||
printf( '<p%s><a%s href="clients.php?client=Other">Other</a></p>', $style, $style );
|
||||
|
||||
include("inc/page-middle.php");
|
||||
|
||||
include("clients/".$details[$client_page]);
|
||||
|
||||
if ( isset($screenshots[$client_page]) ) {
|
||||
printf( '</div><p><img src="clients/%s"></p>', urlencode($screenshots[$client_page]) );
|
||||
$tags_to_be_closed = "</div>\n";
|
||||
}
|
||||
|
||||
include("inc/page-footer.php");
|
||||
?>
|
||||
@ -1,23 +0,0 @@
|
||||
<h1>Chandler</h1>
|
||||
<p>The <a href="http://www.osafoundation.org/">Open Source Applications Foundation</a> are developing <a href="http://cosmo.osafoundation.org/">Cosmo</a>, which is a CalDAV server
|
||||
written in Java and <a href="http://chandler.osafoundation.org/">Chandler</a>, which is a CalDAV capable mail and calendaring application
|
||||
written in Python.</p>
|
||||
|
||||
<p>Basic setup is as follows:</p>
|
||||
|
||||
<ol>
|
||||
<li>Select "Subscribe" from the "Share" menu (or in older builds it was in the "Collection" menu).</li>
|
||||
<li>Enter a URL like: "http://calendar.example.net/caldav.php/username/calendar/" (click "Subscribe") <img src="clients/Chandler-dialog1.png" /> <br /> </li>
|
||||
<li>You will then be prompted for a username/password with in an expanded dialog. Enter these and click "Subscribe" again. <img src="clients/Chandler-dialog2.png" /> <br /> </li>
|
||||
<li>You should now have a new calendar showing.</li>
|
||||
</ol>
|
||||
|
||||
<h2>Caveats</h2>
|
||||
<p>Chandler describes itself as 'an experimentally usable calendar', and it certainly feels that
|
||||
way. It also will only synchronise to the CalDAV server either when you press the "Sync"
|
||||
button or with a default frequency of quarter-hourly. This is quite different to the other clients I
|
||||
have used which all aggressively push new and changed items to the server as soon as possible,
|
||||
but which may be lazy about fetching updates.</p>
|
||||
|
||||
<p>Operation with DAViCal seems generally fine although Chandler does not correctly display the account
|
||||
information correctly, even if it seems to remember it internally.</p>
|
||||
|
Before Width: | Height: | Size: 4.2 KiB |
|
Before Width: | Height: | Size: 5.5 KiB |
|
Before Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 16 KiB |
@ -1,25 +0,0 @@
|
||||
<h1>Evolution</h1>
|
||||
<p><a href="http://www.gnome.org/projects/evolution/">Evolution</a> is available in most Linux distributions. The CalDAV support was supposedly written
|
||||
in a frenzy of hacking one day when the draft specification was at around revision 8. As a result there
|
||||
was little in the way of a repository available to test against until recently.</p>
|
||||
|
||||
<ol>
|
||||
<li>Select "File" then "New" then "Calendar" from the menus.</li>
|
||||
<li>Choose a type of "CalDAV", enter a name, and a URL such as <code>caldav://server.domain.name/caldav.php/username/calendar/</code>, enter your user name for DAViCal and click "OK".<img src="clients/Evolution-dialog1.png" /> <br /> </li>
|
||||
<li>You should now be prompted for a password for that username. Enter the password and your calendar should now show.</li>
|
||||
</ol>
|
||||
|
||||
<h2>Caveats</h2>
|
||||
<p>If you have problems with Evolution, you will need to quit evolution, remove the cache file which will be in ~/.evolution/cache/calendar/ and
|
||||
restart. If you still have problems try doing that, but killing evolution-data-server in addition.
|
||||
</p>
|
||||
<p>Sometimes Evolution writes error messages into the cache file, so if you have ongoing problems you may want to
|
||||
take a look inside that.</p>
|
||||
<p>There are some quirks with Evolution's handling of CalDAV too, prior to 2.12.0, so perhaps take a look at the following
|
||||
bugs (fixed in 2.12.0):</p>
|
||||
<ul>
|
||||
<li><a href="http://bugzilla.gnome.org/show_bug.cgi?id=355659">New appointments disappear for 1 minute, and then reappear</a></li>
|
||||
<li><a href="http://bugzilla.gnome.org/show_bug.cgi?id=354855">Support Response with Relative URLs</a></li>
|
||||
</ul>
|
||||
<p>There may also be bugs in Evolution's handling of SSL with CalDAV - I couldn't get it to work reliably.</p>
|
||||
|
||||
|
Before Width: | Height: | Size: 7.7 KiB |
|
Before Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 19 KiB |
@ -1,34 +0,0 @@
|
||||
<h1>Cross-client Interoperability Considerations</h1>
|
||||
<p>If you intend to have users accessing the DAViCal CalDAV Server with more than one client
|
||||
then you should attempt to structure the URLs which they use to access the system in the way
|
||||
that Mulberry does it.</p>
|
||||
<p>Basically, Mulberry breaks the URL into three parts:</p>
|
||||
|
||||
<ul>
|
||||
<li>The host name</li>
|
||||
<li>The root path</li>
|
||||
<li>Calendar namespace</li>
|
||||
</ul>
|
||||
|
||||
<p>The host name is, of course, up to you. The 'root path' should be
|
||||
<code>/caldav.php/</code> and anything following that is the calendar
|
||||
namespace.</p>
|
||||
|
||||
<p>Within the calendar namespace DAViCal uses the first element of the
|
||||
path as the user or 'princpal' name, so that a client connecting at the
|
||||
root path can see all of the (accessible) users and resources available
|
||||
to them (Mulberry displays this hierarchy) with any calendars below that.</p>
|
||||
|
||||
<p>This means that in Evolution, Lightning and other software wanting a
|
||||
'calendar' URL you should specify a URL which is something like:</p>
|
||||
<pre>
|
||||
http://calendar.example.net/caldav.php/username/calendar/
|
||||
</pre>
|
||||
|
||||
<p>DAViCal creates two collections automatically when a user is created. In
|
||||
recent versions these are called 'calendar' and 'addressbook'. Some software
|
||||
also makes it easy to create more calendars and addressbooks, or you can create
|
||||
more through DAViCal's web interface, also.</p>
|
||||
|
||||
<p>In older versions of DAViCal (pre 0.9.9.5) the default calendar was named 'home'
|
||||
and there was no default addressbook.</p>
|
||||
@ -1,23 +0,0 @@
|
||||
<h1>Sunbird / Lightning (Mozilla Calendar)</h1>
|
||||
<p>The <a href="http://www.mozilla.org/projects/calendar/">Mozilla Calendar</a> project offers their calendar under two different names:
|
||||
<em><a href="http://www.mozilla.org/projects/calendar/sunbird/">Sunbird</a></em> is a standalone calendar
|
||||
application, and <em><a href="http://www.mozilla.org/projects/calendar/lightning/">Lightning</a></em> is a Thunderbird extension.
|
||||
The two are essentially the same, as far as DAViCal is
|
||||
concerned, and these instructions should work for either of them.</p>
|
||||
|
||||
<ol>
|
||||
<li>Select "New Calendar" from the "File" menu.</li>
|
||||
<li>Choose "On the Network" (click "Next")<img src="clients/Mozilla-dialog1.png" /> <br /> </li>
|
||||
<li>Choose a format of "CalDAV" and enter a URL like: "http://calendar.example.net/caldav.php/username/calendar/" (click "Next")<img src="clients/Mozilla-dialog2.png" /> <br /> </li>
|
||||
<li>Give the calendar an appropriate display name, and choose a colour for events on this calendar. (click "Next")<img src="clients/Mozilla-dialog3.png" /> <br /> </li>
|
||||
<li>click "Finish"</li>
|
||||
</ol>
|
||||
|
||||
<h2>Caveats</h2>
|
||||
<p>At version 0.3 the Mozilla calendar does not automatically refresh the calendar view, so if someone else has
|
||||
added a meeting you will have to manually refresh the view to see that.</p>
|
||||
<p>It is early days yet for the Mozilla calendar in it's current incarnation so no doubt there are other quirks
|
||||
with Mozilla's handling of CalDAV too, so perhaps take a look at their bugzilla.</p>
|
||||
<p>As at version 0.3, you should be aware of this <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=360076">bug with empty CalDAV calendars</a> which can be
|
||||
confusing. Add your calendar, create an event and then re-start the program before saying that things
|
||||
are not working!</p>
|
||||
|
Before Width: | Height: | Size: 6.3 KiB |
|
Before Width: | Height: | Size: 6.2 KiB |
|
Before Width: | Height: | Size: 5.3 KiB |
|
Before Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 13 KiB |
@ -1,29 +0,0 @@
|
||||
<h1>Mulberry</h1>
|
||||
<p><a href="http://www.mulberrymail.com/">Mulberry</a> is the most well-behaved of the applications I have been
|
||||
able to use. It does have some bugs, however, and a particular annoyance around it's use of non-standard names
|
||||
for time zones. Mulberry is the only client I have used so far which can issue a MKCALENDAR command or which
|
||||
will display a hierarchy of calendars from a single configured URL, dicovering the calendars through recursive
|
||||
PROPFIND requests.</p>
|
||||
|
||||
<ol>
|
||||
<li>Select "Preferences" from the "File" menu.</li>
|
||||
<li>Choose the "Accounts" tab</li>
|
||||
<li>Select "New" from the "Account" drop-down and a "Create New Account" dialog will appear.</li>
|
||||
<li>Enter a name for the account, choose "CalDAV Calendar" for the type and click "OK"</li>
|
||||
<li>In the "Server" field enter the domain name of your CalDAV server, such as "calendar.example.net"</li>
|
||||
<li>In the "Authentication" pane of the "Accounts" tab, enter your username.<img src="clients/Mulberry-dialog1.png" /> <br /> </li>
|
||||
<li>In the "Options" pane of the "Accounts" tab, enter the path, which should be "/caldav.php/"<img src="clients/Mulberry-dialog2.png" /> <br /> </li>
|
||||
<li>"OK" the preferences dialog</li>
|
||||
<li>A list of the users and resources which you are allowed to access should appear. Some may contain calendars.</li>
|
||||
<li>If you don't already have a calendar for your own user, ensure your username is highlighted and choose "Create" from the "Calendar" menu.</li>
|
||||
<li>Once you have a calendar created, you need to <em>subscribe to it. One way is to right-click on it and choose 'Subscribe'.</em></li>
|
||||
</ol>
|
||||
|
||||
<h2>Caveats</h2>
|
||||
<p>Note that Mulberry has a complex user interface. When I wrote this I went back into Mulberry and initially
|
||||
thought that DAViCal had regressed somewhat and that these instructions didn't exactly work... :-) It turned out
|
||||
that these instructions worked <em>just fine</em> when I followed them to the letter the next day. Go figure.
|
||||
I think I need to record some screenshots of this one...</p>
|
||||
<p>If you're using Mulberry on Linux you probably have really crappy fonts purporting to be Helvetica, Times
|
||||
and Courier - go into File -> Preferences -> Fonts and change them to something nicer as soon as
|
||||
possible. Apple paid a lot of money to license those fonts, but few Linux users or distributors do.</p>
|
||||
|
Before Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 38 KiB |
@ -1,29 +0,0 @@
|
||||
<h1>Other Client Software</h1>
|
||||
|
||||
<p>I would love to have more client software available to test DAViCal
|
||||
against, but so far these are the only ones I have access to.</p>
|
||||
|
||||
<p>If you want to point me at more free software that supports CalDAV, or
|
||||
send me free copies of such proprietary software, then I will add it to
|
||||
the list as well as make DAViCal work with it.</p>
|
||||
|
||||
<p>In the general CalDAV terminology, client software will want to know
|
||||
several facts about the CalDAV server. Some (like iCal and iOS) will try
|
||||
and discover these facts for themselves, and others (like Lightning and
|
||||
Evolution) will require you to enter some information. When they ask for
|
||||
that information they will be asking for the following things:</p>
|
||||
<ol>
|
||||
<li>Where is the user's "home" collection?</li>
|
||||
<li>Where is the user's "calendar" collection?</li>
|
||||
<li>What is the server's domain name</li>
|
||||
</ol>
|
||||
|
||||
<p>Typically the answers, in DAViCal's case, are:</p>
|
||||
<ol>
|
||||
<li>.../caldav.php/username/</li>
|
||||
<li>.../caldav.php/username/calendar/ (although in older versions the default calendar was called 'home' rather than 'calendar')</li>
|
||||
<li>I can't help here - whatever you called it, I guess!</li>
|
||||
</ol>
|
||||
|
||||
<p>There could well be a wider range of information about many and varied client
|
||||
software on the <a href="http://wiki.davical.org/" title="The DAViCal CalDAV Server Wiki">DAViCal Wiki</a> as well.
|
||||
@ -1,23 +0,0 @@
|
||||
<h1>iCal</h1>
|
||||
<p><a href="http://www.apple.com/macosx/what-is-macosx/mail-ical-address-book.html">iCal</a>, from version 3.0 (released with OS 10.5) is generally well-behaved
|
||||
and will discover your own calendars when configured. It will not allow you to manipulate other calendars on
|
||||
the same server, however, unless you use different credentials to access them.</p>
|
||||
|
||||
<ol>
|
||||
<li>Open the "Preferences" dialog.</li>
|
||||
<li>Choose the "Accounts" tab</li>
|
||||
<li>Click on the "+" and a new panel will appear.</li>
|
||||
<li>Enter a "Description" for the account.</li>
|
||||
<li>The "Username" and "Password" are the relevant ones for your CalDAV server.</li>
|
||||
<li>Open the "Server Options" area and set your account URL to point to http://host.../caldav.php/username/.<img src="clients/iCal-dialog.png" /> <br /> </li>
|
||||
<li>Click "Add" to confirm the new account</li>
|
||||
<li>Your own calendars will be automatically discovered.</li>
|
||||
<li>If you don't already have a calendar for your own user, go to the calendar view and long-click on the "+" will display a menu letting you create a new one.</li>
|
||||
</ol>
|
||||
|
||||
<h2>Caveats</h2>
|
||||
<p>DAViCal does not fully support the draft scheduling extensions to CalDAV, so you will not see the full functionality
|
||||
of iCal.</p>
|
||||
<p>iCal does not let you browse the calendar hierarchy to find other calendars you could view, so you will not
|
||||
see the full functionality of DAViCal either.</p>
|
||||
|
||||
|
Before Width: | Height: | Size: 59 KiB |
|
Before Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 201 KiB |
|
Before Width: | Height: | Size: 77 KiB |
|
Before Width: | Height: | Size: 31 KiB |
|
Before Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 48 KiB |
@ -1,38 +0,0 @@
|
||||
<h1>iPhone</h1>
|
||||
<p>The Apple <a href="http://www.apple.com/iphone/">iPhone</a>, from OS version 3.0 is generally well-behaved
|
||||
and will discover your own calendars when configured. It will not allow you to manipulate other calendars on
|
||||
the same server, however, unless you use different credentials to access them.</p>
|
||||
|
||||
<ol>
|
||||
<li>Open "Settings", "Mail, Contacts, Calendars" and choose "Add Account".</li>
|
||||
<li>Choose "Other" and "Add CalDAV Account".</li>
|
||||
<li>Fill in the fields with your server name, username & password. The description can be anything.</li>
|
||||
<li>Press the "Next" button at top-right.</li>
|
||||
<li>At this point you may get an error message about SSL connection not available. You should choose "Cancel", to get to the advanced settings slightly quicker.</li>
|
||||
<li>Open the "Advanced Settings" area and choose whether SSL is on or off, and enter the port number (80 is standard for http & 443 is standard for https, but the iPhone wants to use 8008 & 8443 for these)</li>
|
||||
<li>In the "Account URL" change "/principals/users/username" to "/caldav.php/username"</li>
|
||||
<li>Click on the "Caldav" top left to return to the basic settings and click on "Next" top right.</li></ol>
|
||||
|
||||
<h2>Other Settings</h2>
|
||||
<p>You may want to go into some of the other settings under "Mail, Contacts, Calendars" and set some of the other settings, including:</p>
|
||||
<ul>
|
||||
<li>Fetch New Data</li>
|
||||
<li>Time Zone Support</li>
|
||||
<li>Default Calendar</li>
|
||||
</ul>
|
||||
<p>
|
||||
All of these should be obvious. You can choose the calendar which an event goes into
|
||||
when you create the event, but if you want to move it to a different calendar you will
|
||||
need to do it with a different client - it's not an option in Apple's one.
|
||||
</p>
|
||||
<p>Similarly, in the events the repeat frequencies are fairly limited, but the calendar
|
||||
does support the more arcane possibilities which you could create with a different
|
||||
client application.</p>
|
||||
|
||||
<h2>Screenshots</h2>
|
||||
<table border="none" cellpadding="2" cellspacing="2">
|
||||
<tr><td><img src="clients/iPhone-1.png" alt="Screenshot of setting up an account on an iPhone" /></td><td><img src="clients/iPhone-2.png" alt="Screenshot of setting up an account with adanced settings on an iPhone" /></td></tr>
|
||||
<tr><td>Adding an Account</td><td>“Advanced Settings” will appear if service discovery is unavailable.</td></tr>
|
||||
<tr><td><img src="clients/iPhone-3.png" alt="Screenshot of the advanced settings on an iPhone" /></td><td><img src="clients/iPhone-4.png" alt="Screenshot of common advanced settings on an iPhone" /></td></tr>
|
||||
<tr><td>Security, port, and path</td><td>Typical settings for non-SSL, port 80 and 443 for SSL</td></tr>
|
||||
</table>
|
||||
|
Before Width: | Height: | Size: 154 KiB |
|
Before Width: | Height: | Size: 108 KiB |
|
Before Width: | Height: | Size: 98 KiB |
|
Before Width: | Height: | Size: 766 B |
@ -1,71 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://web.resource.org/cc/"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="260"
|
||||
height="260"
|
||||
id="svg2"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.45.1"
|
||||
sodipodi:docbase="/home/andrew/projects/rscds/docs/website/images"
|
||||
sodipodi:docname="davical_logo.svg"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape"
|
||||
version="1.0">
|
||||
<defs
|
||||
id="defs4" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
gridtolerance="10000"
|
||||
guidetolerance="10"
|
||||
objecttolerance="10"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="1.4"
|
||||
inkscape:cx="186.53159"
|
||||
inkscape:cy="91.978333"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
inkscape:window-width="1400"
|
||||
inkscape:window-height="964"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="16"
|
||||
showborder="false"
|
||||
inkscape:showpageshadow="false"
|
||||
borderlayer="false"
|
||||
width="260px"
|
||||
height="260px" />
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-333.14285,-376.93362)">
|
||||
<path
|
||||
style="fill:#be1e1d;fill-opacity:1"
|
||||
d="M 334.57142,507.3622 L 334.57142,378.36219 L 463.57143,378.36219 L 592.57143,378.36219 L 592.57143,507.3622 L 592.57143,636.3622 L 463.57143,636.3622 L 334.57142,636.3622 L 334.57142,507.3622 z M 499.07185,622.75672 C 493.14746,602.90175 491.11905,597.99114 498.48322,597.01403 C 507.24637,595.85129 525.17483,590.84119 534.28074,585.38063 C 566.45385,566.08721 565.06199,527.45277 530.8205,489.3318 C 520.30676,477.62687 499.58375,463.01844 493.4933,463.01844 C 488.00762,463.01844 488.7541,464.57337 499.89503,476.35329 C 521.19885,498.87894 530.98513,534.27071 519.83094,548.45095 C 514.45191,556.46282 506.31071,558.78045 498.47771,560.07317 C 490.60793,561.37196 493.04847,560.11522 496.57729,547.42275 C 498.46643,540.62789 499.53226,534.58866 498.9458,534.00221 C 498.35936,533.41576 492.20868,539.12467 485.27761,546.68871 C 472.55212,560.57632 457.47861,571.42543 446.43861,575.25393 C 434.06007,579.5466 434.24777,580.29465 444.83131,584.55313 C 454.96059,588.62884 474.11695,600.68066 485.81632,613.82099 C 497.03872,626.42559 500.95411,629.06504 499.07185,622.75672 z M 439.38392,551.88512 C 439.38392,550.87509 436.76538,547.84533 433.56495,545.15235 C 417.05209,531.25767 405.11831,506.40967 405.11831,485.92195 C 405.11831,473.56527 405.56997,472.24178 411.97143,465.84032 C 417.1953,460.8506 423.25402,458.50295 430.8847,456.60205 C 436.75783,455.13896 436.10686,455.38507 432.58119,469.31727 C 430.851,476.15434 429.63739,482.16255 430.2375,482.76265 C 430.83762,483.36275 436.43374,478.21237 442.67336,471.31738 C 454.55344,458.18947 472.30744,444.41296 482.71986,441.4887 C 494.33412,438.22691 494.1929,436.12455 482.71986,432.15975 C 472.21322,428.52892 455.88897,416.68407 443.39131,403.04508 C 436.72951,395.7749 430.78413,390.32133 430.17941,390.92609 C 429.57466,391.53084 430.49125,397.47232 432.21628,404.12939 C 436.00979,418.769 436.12299,420.10756 432.83314,420.44191 C 428.50642,420.88164 414.60168,422.82606 404.64067,426.7561 C 362.70116,443.3031 360.55918,487.03575 399.64191,528.8153 C 415.53528,545.80537 439.38392,559.64927 439.38392,551.88512 z "
|
||||
id="path2170"
|
||||
sodipodi:nodetypes="ccccccccccsssssczssssssccsscssssssssssssc"
|
||||
inkscape:export-filename="/home/andrew/projects/rscds/docs/website/images/davical_logo.ico"
|
||||
inkscape:export-xdpi="11.25"
|
||||
inkscape:export-ydpi="11.25" />
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 4.2 KiB |
|
Before Width: | Height: | Size: 541 B |
|
Before Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 3.3 KiB |
@ -1,20 +0,0 @@
|
||||
<?php
|
||||
|
||||
echo $tags_to_be_closed;
|
||||
|
||||
?>
|
||||
|
||||
<div id="footer">
|
||||
<br />
|
||||
<p class="left" style="vertical-align: text-top;">
|
||||
|
||||
<a href="http://validator.w3.org/check?uri=referer" class="flink">XHTML</a> | <a href="http://jigsaw.w3.org/css-validator/check/referer" class="flink">CSS</a>
|
||||
</p>
|
||||
<p class="right">
|
||||
Copyright 2007-2014 | Andrew McMillan
|
||||
</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@ -1,45 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||
<title>DAViCal<?php
|
||||
if ( isset($title) ) {
|
||||
echo " - ". $title;
|
||||
}
|
||||
else {
|
||||
echo " CalDAV Server";
|
||||
}
|
||||
?></title>
|
||||
<link rel="stylesheet" type="text/css" href="style.css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="pageContainer">
|
||||
<div id="header">
|
||||
<div id="title"><?php
|
||||
if ( isset($title) ) {
|
||||
echo $title;
|
||||
}
|
||||
else {
|
||||
echo "DAViCal CalDAV Server";
|
||||
}
|
||||
?></div>
|
||||
<div id="subTitle">A CalDAV Store</div>
|
||||
<div id="headerLinks">
|
||||
<a href="index.php" class="hlink">Home</a> |
|
||||
<a href="installation.php" class="hlink">Installation</a> |
|
||||
<a href="clients.php" class="hlink">Client Config</a> |
|
||||
<a href="administration.php" class="hlink">Administration</a> |
|
||||
<a href="background.php" class="hlink">Background</a> |
|
||||
<a href="http://wiki.davical.org/w/Main_Page" class="hlink">DAViCal Wiki</a> |
|
||||
<a href="https://gitlab.com/davical-project/davical" class="hlink">DAViCal on GitLab</a>
|
||||
</div>
|
||||
</div>
|
||||
<div id="pageContent">
|
||||
<?php
|
||||
$tags_to_be_closed = "</div>\n";
|
||||
if ( isset($two_panes) && $two_panes ) {
|
||||
$tags_to_be_closed .= $tags_to_be_closed;
|
||||
echo '<div id="leftSide">';
|
||||
}
|
||||
?>
|
||||
<hr />
|
||||
@ -1,3 +0,0 @@
|
||||
</div>
|
||||
<div id="rightSide">
|
||||
<hr />
|
||||
@ -1,80 +0,0 @@
|
||||
<?php
|
||||
$title = "DAViCal Home";
|
||||
include("inc/page-header.php");
|
||||
?>
|
||||
<h1>About DAViCal</h1>
|
||||
<p>DAViCal is a server for calendar sharing. It is an implementation
|
||||
of the CalDAV protocol which is designed for storing calendaring
|
||||
resources (in iCalendar format) on a remote shared server. </p>
|
||||
<p>An increasing number of calendar clients support
|
||||
the maintenance of shared remote calendars through CalDAV, including Mozilla Calendar
|
||||
(Sunbird/Lightning), Evolution, Mulberry, Chandler, and various other closed-source products
|
||||
such as Apple's iCal and iOS. </p>
|
||||
<h2>Features</h2>
|
||||
<p>DAViCal:<ul>
|
||||
<li>is <a href="http://www.gnu.org/philosophy/open-source-misses-the-point.html">Free Software</a> licensed under the <a href="http://www.gnu.org/licenses/gpl.html">General Public License</a>.</li>
|
||||
<li>uses an SQL database for storage of event data</li>
|
||||
<li>supports backward-compatible access via WebDAV in read-only or read-write mode (not recommended)</li>
|
||||
<li>is committed to inter-operation with the widest possible CalDAV client software.</li>
|
||||
</ul></p>
|
||||
|
||||
<p>DAViCal supports basic delegation of read/write access among calendar users, multiple users or clients reading
|
||||
and writing the same calendar entries over time, and scheduling of meetings with free/busy time displayed. </p>
|
||||
|
||||
<h1>Overview of Installation and Use</h1>
|
||||
<h2>Prerequisites</h2>
|
||||
<p>To install and use DAViCal you will need:<ul>
|
||||
<li>a PostgreSQL database server</li>
|
||||
<li>a web server which can run PHP version 5</li>
|
||||
</ul></p>
|
||||
<p>We use <a href="http://www.debian.org/">Debian GNU/Linux</a> for this, but other people use various different
|
||||
versions of Linux, FreeBSD, Mac OSX and even Microsoft Windows. We definitely do not recommend using Windows
|
||||
for this unless you are completely hobbled by silly internal IT policies and have to do so.</p>
|
||||
|
||||
<h2>Getting and Installing DAViCal</h2>
|
||||
<p>Start by looking on the <a href="installation.php">DAViCal
|
||||
Installation Page</a> for instructions on places to download, and
|
||||
detailed instructions as to what to do when you have it.</p>
|
||||
<p>There is a lot of information on the wiki about <a href="http://wiki.davical.org/w/Configuration">DAViCal configuration settings</a> but in most cases the configuration
|
||||
will need very few of these settings.</p>
|
||||
|
||||
<h2>Using DAViCal</h2>
|
||||
<p>Read here about <a href="clients.php">how to configure various CalDAV Clients with DAViCal</a>. There is also
|
||||
a page on the wiki which will sometimes have newer information.</p>
|
||||
|
||||
<h2>Getting Help</h2>
|
||||
<p>Specifically: help on DAViCal!</p>
|
||||
<p>The <em>best</em> place to go for help on DAViCal is the <a href="http://wiki.davical.org/w/Main_Page">DAViCal Wiki</a>.</p>
|
||||
<p>If you can't find your answer there, then the IRC channel #davical on <a href="irc://irc.oftc.net/#davical">irc.oftc.net</a> is
|
||||
a great next port of call. Many problems can be solved quickly with a short on-line chat.</p>
|
||||
<p>Almost as good as the IRC channel is the <a href="https://lists.sourceforge.net/mailman/listinfo/davical-general">DAViCal General Mailing List</a>.</p>
|
||||
|
||||
<h1>Credits</h1>
|
||||
<p>The DAViCal CalDAV Server was conceived and written by <a href="http://andrew.mcmillan.net.nz/">Andrew McMillan</a>.</p>
|
||||
<p>Many people have contributed to DAViCal, through providing translations of the interface, reporting bugs and
|
||||
sending patches for things here and there. Some more notable contributors include:</p><ul>
|
||||
<li>Maxime Delorme (CSS, LDAP, French translations)</li>
|
||||
<li>Andrew Ruthven (Various enhancements)</li>
|
||||
<li>Rob Ostenson (LDAP & Scheduling contributions)</li>
|
||||
<li>Leho Kraav (RSS feeds)</li>
|
||||
</ul>
|
||||
|
||||
<h1>Contributing to DAViCal</h1>
|
||||
<p><img src="images/larger.png" alt="DAViCal Logo" height="160" width="160" align="right" class="gone">As of Spring, 2014, DAViCal has transitioned to a <a href="http://wiki.davical.org/w/Community_Support">community support model</a>. We welcome contributions from interested people. You don't need to be able to write code - there are lots of
|
||||
small tasks around the project that can be done.
|
||||
CalDAV server:</p>
|
||||
<p>Here are some things you could do that will help us to concentrate on making DAViCal better:<ul>
|
||||
<li>writing documentation</li>
|
||||
<li>helping people on IRC or on the mailing list</li>
|
||||
<li>translating the DAViCal interface to another language</li>
|
||||
<li>managing the release process</li>
|
||||
<li>reviewing and tidying the Wiki updates</li>
|
||||
<li>writing and reviewing patches</li>
|
||||
<li>designing future functionality</li>
|
||||
<li>thinking of more interesting ways to contribute to DAViCal!</li>
|
||||
</ul>
|
||||
|
||||
<p>Can you think of more?</p>
|
||||
|
||||
<?php
|
||||
include("inc/page-footer.php");
|
||||
@ -1,295 +0,0 @@
|
||||
<?php
|
||||
$title = "Installation";
|
||||
include("inc/page-header.php");
|
||||
?>
|
||||
<h1>Before Starting</h1>
|
||||
|
||||
<h2>Debian Users</h2>
|
||||
<p>Recent Debian (and Ubuntu) releases have DAViCal 1.1.1 and AWL 0.53
|
||||
(a library referenced by DAViCal) available in their repositories,
|
||||
and you can use apt-get or similar tools to download and install
|
||||
DAViCal. Once you have done that, you should be able to proceed to
|
||||
the Database Setup section, below.</p>
|
||||
|
||||
<h2>Other Linux Users</h2>
|
||||
<p>The <a href="http://wiki.davical.org">DAViCal wiki</a> contains
|
||||
information on installation on other versions of Linux. Please feel
|
||||
free to contribute your experiences, using the mailing list if you
|
||||
don't have a wiki account.</p>
|
||||
|
||||
<p>In many cases, you will need to download the latest versions of
|
||||
the <code>DAViCal</code> and <code>awl</code> packages from
|
||||
the <a href="https://gitlab.com/groups/davical-project">repository on
|
||||
GitLab</a>. More details on this are on
|
||||
the <a href="http://davical.dhits.nl/index.php?title=Downloading">Downloading
|
||||
page on the wiki</a>.</p>
|
||||
|
||||
<p>We would like to hear from non-Debian users regarding things which
|
||||
might have been missed, or things you have learned about the system,
|
||||
so please write about your installation experiences on the Wiki, or
|
||||
post a message on the mailing list.</p>
|
||||
|
||||
<h2>Non-Linux Users</h2>
|
||||
<p>We would really like to hear from you. As far as we can see there
|
||||
is no reason why this can't all work on FreeBSD, Microsoft Windows,
|
||||
VMS, Mac OS or whatever else, as long as the pre-requisites are able
|
||||
to be installed.</p>
|
||||
|
||||
<p>For Unix and unix-like operating systems the "Other Linux Users"
|
||||
instructions are likely to be reasonably close to what you need. For
|
||||
other systems everything will need some adjustment, and in particular
|
||||
some of the path name and shell expectations coded into the database
|
||||
creation scripts are likely to need love.</p>
|
||||
<p>We're available to answer questions, anyway :-)</p>
|
||||
|
||||
<h1>Pre-requisites</h1>
|
||||
|
||||
<p>DAViCal depends on a number of things. Firstly, it depends
|
||||
on Andrew's Web Libraries (AWL) which is a set of useful
|
||||
PHP functions and objects written by Andrew McMillan over
|
||||
a number of years.</p>
|
||||
|
||||
<p>The following other software is also needed:</p>
|
||||
<ul>
|
||||
<li>A webserver which can run PHP (however most of this documentation assumes Apache 2.2 or later)</li>
|
||||
<li>PHP: 5.1 or greater</li>
|
||||
<li>PostgreSQL: 8.1 or greater</li>
|
||||
</ul>
|
||||
|
||||
<p>The PostgreSQL database may be installed on a server other
|
||||
than the web server, and that kind of situation is recommended
|
||||
if you want to increase the security or scalability of your
|
||||
installation.</p>
|
||||
|
||||
<p>Since the CalDAV store takes over a significant amount of path
|
||||
hierarchy, it can be easier in its own virtual
|
||||
host. If you want it to operate within the web root of some
|
||||
other application there are instructions on the Wiki about doing this,
|
||||
as well as other fancy tricks such as configuring URL rewriting in
|
||||
order to shorten the path.</p>
|
||||
|
||||
|
||||
<h1>Database Setup</h1>
|
||||
|
||||
<h2>Connecting to the Database</h2>
|
||||
|
||||
<p>Before your database has been created, you should edit your pg_hba.conf
|
||||
file (in /etc/postgresql/8.x/main/pg_hba.conf on Debian or derivatives) in
|
||||
order to grant access to the database for the 'davical_dba' user that will
|
||||
be created to 'own' the database and tables, and also for the 'davical_app'
|
||||
user which will be created for the web application fo connect as.</p>
|
||||
|
||||
<p>In a simple installation, where you do not have untrusted
|
||||
users on your database server, and your database is on the same
|
||||
computer as the web server, the following lines (at the very <em>top</em>
|
||||
of the pg_hba.conf file) should be enough:</p>
|
||||
|
||||
<pre>
|
||||
local davical davical_app trust
|
||||
local davical davical_dba trust
|
||||
</pre>
|
||||
|
||||
<p>This means that anyone on the local computer (including the
|
||||
web application) will have rights to connect to the DAViCal
|
||||
database as the 'davical_app' or 'davical_dba' user. It will not allow remote access,
|
||||
or access as any user other than 'davical_app' or 'davical_dba'.</p>
|
||||
|
||||
<p>If you want to connect to the database over TCP/IP from your webserver
|
||||
on '192.168.59.231' (e.g. rather than unix sockets which will only work for
|
||||
access from the local machine), the lines in the pg_hba.conf file should look
|
||||
something like:</p>
|
||||
|
||||
<pre>
|
||||
host davical davical_app 192.168.59.231/32 trust
|
||||
host davical davical_dba 192.168.59.231/32 trust
|
||||
</pre>
|
||||
|
||||
<p>If you want greater security, or if you want to have the
|
||||
database on a different server, you should read the
|
||||
<a href="http://www.postgresql.org/docs/8.4/interactive/client-authentication.html">PostgreSQL documentation on pg_hba.conf</a>
|
||||
for the version you are using.</p>
|
||||
|
||||
<p>Once you have changed the pg_hba.conf file you will need to
|
||||
reload or restart the PostgreSQL process for the change to come
|
||||
into effect.</p>
|
||||
|
||||
<h2>Creating and Building the Database</h2>
|
||||
|
||||
<p>To create the database itself, run the script:</p>
|
||||
<pre>
|
||||
dba/create-database.sh
|
||||
</pre>
|
||||
<p>Note that this script calls the AWL database scripts as part
|
||||
of itself and it expects them to be located in /usr/share/awl/dba
|
||||
which might be a reasonable place, but it might not be where you
|
||||
have put them.</p>
|
||||
|
||||
<p>This script expects to be running as a user who has rights to create a new database, so you
|
||||
may need to do this as the "postgres" user, for example:</p>
|
||||
<pre>
|
||||
su postgres -c /usr/share/davical/dba/create-database.sh
|
||||
</pre>
|
||||
|
||||
<h1>Apache Configuration</h1>
|
||||
<h2>Relative to an existing DocumentRoot</h2>
|
||||
|
||||
<p>You can create a symlink from an existing web root directory to the
|
||||
/usr/share/davical/htdocs directory, such as:</p>
|
||||
|
||||
<pre>
|
||||
cd /my/apache/docroot
|
||||
ln -s /usr/share/davical/htdocs davical
|
||||
</pre>
|
||||
|
||||
You will need to change your global PHP configuration to include the
|
||||
directory '/usr/share/awl/inc' in the 'include_path' setting, along with
|
||||
any other directories already needed by other applications.
|
||||
|
||||
You will also need to ensure that 'magic_quotes_gpc' is off.
|
||||
|
||||
<h2>Using a Virtual Host</h2>
|
||||
|
||||
<p>Your Apache instance needs to be configured for Virtual Hosts. If
|
||||
this is not already the case you may want to read some documentation
|
||||
about that, and you most likely will want to ensure that any existing
|
||||
site becomes the **default** virtual host, with DAViCal only being a
|
||||
single virtual host.</p>
|
||||
|
||||
<p>I use a Virtual Host stanza like this:</p>
|
||||
<pre>
|
||||
# Virtual Host def for Debian packaged DAViCal
|
||||
<VirtualHost 123.4.56.78 >
|
||||
DocumentRoot /usr/share/davical/htdocs
|
||||
DirectoryIndex index.php index.html
|
||||
ServerName davical.example.net
|
||||
ServerAlias calendar.example.net
|
||||
Alias /images/ /usr/share/davical/htdocs/images/
|
||||
<Directory /usr/share/davical/htdocs/>
|
||||
AllowOverride None
|
||||
Order allow,deny
|
||||
Allow from all
|
||||
</Directory>
|
||||
AcceptPathInfo On
|
||||
#
|
||||
# You probably don't need to enable any of these sorts of things other than in exceptional
|
||||
# circumstances. Apart from the include path (which DAViCal will discover if it is anywhere
|
||||
# 'normal') they are the default in newer PHP versions.
|
||||
#
|
||||
# php_value include_path /usr/share/awl/inc
|
||||
# php_value magic_quotes_gpc 0
|
||||
# php_value register_globals 0
|
||||
# php_value error_reporting "E_ALL & ~E_NOTICE"
|
||||
# php_value default_charset "utf-8"
|
||||
</VirtualHost>
|
||||
</pre>
|
||||
|
||||
<p>Replace 123.4.56.78 with your own IP address, of course (you can
|
||||
use a name, but your webserver may fail on restart if DNS happens
|
||||
to be borked at that time).</p>
|
||||
|
||||
<p>The various paths and names need to be changed to reflect your
|
||||
own installation, although those are the recommended locations
|
||||
for the various pieces of the code (and are standard if you
|
||||
installed from a package.</p>
|
||||
|
||||
<p>Once your VHost is installed an working correctly, you should be
|
||||
able to browse to that address and see a page telling you that
|
||||
you need to configure DAViCal.</p>
|
||||
|
||||
<p>On Debian systems (or derivatives such as Ubuntu), when you are
|
||||
using Apache 2, you should put this definition in the /etc/apache2/sites-available
|
||||
directory and you can use the 'a2ensite' command to enable it.</p>
|
||||
|
||||
|
||||
<h1>DAViCal Configuration</h1>
|
||||
|
||||
<p>The DAViCal configuration generally resides in /etc/davical/<domain>-conf.php
|
||||
and is a regular PHP file which sets (or overrides) some specific variables.</p>
|
||||
|
||||
<pre>
|
||||
<?php
|
||||
// $c->domain_name = "calendar.example.net";
|
||||
// $c->sysabbr = 'DAViCal';
|
||||
// $c->admin_email = 'admin@example.net';
|
||||
// $c->system_name = "Example DAViCal Server";
|
||||
// $c->enable_row_linking = true;
|
||||
|
||||
$c->pg_connect[] = 'dbname=davical port=5432 user=davical_app';
|
||||
|
||||
</pre>
|
||||
|
||||
<p>See the wiki for the full list of <a href="http://wiki.davical.org/w/Configuration_settings">DAViCal configuration settings</a>.</p>
|
||||
|
||||
<p>Multiple values may be specified for the PostgreSQL connect string,
|
||||
so that you can (e.g.) use PGPool to cache the database connection
|
||||
but fall back to a raw database connection if it is not running.</p>
|
||||
|
||||
<p>You should set the 'domain_name' and 'admin_email' as they are used
|
||||
within the system for constructing URLs, and for notifying some
|
||||
kinds of events.</p>
|
||||
|
||||
<p>If you are in a non-English locale, you can set the default_locale
|
||||
configuration to one of the supported locales.</p>
|
||||
|
||||
<h1>Supported Locales</h1>
|
||||
<p>At present the following locales are supported:</p>
|
||||
<ul>
|
||||
<li>English</li>
|
||||
<li>German / Deutsch</li>
|
||||
<li>Spanish / Español</li>
|
||||
<li>French / Français</li>
|
||||
<li>Russian / Русский</li>
|
||||
<li>Netherlands / Nederlands</li>
|
||||
<li>Polish / Polski</li>
|
||||
<li>Hungarian / Magyar</li>
|
||||
<li>Japanese / 日本語</li>
|
||||
<li>Italian / Italiano</li>
|
||||
<li>Swedish / Svenska</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<p>If you want locale support you probably know more about configuring it than me, but
|
||||
at this stage it should be noted that all translations are UTF-8, and pages are
|
||||
served as UTF-8, so you will need to ensure that the UTF-8 versions of these locales
|
||||
are supported on your system.</p>
|
||||
|
||||
|
||||
<h1>Completed?</h1>
|
||||
|
||||
<p>If all is going well you should now be able to browse to the admin
|
||||
pages and log in as 'admin' (the password is the bit after the '**'
|
||||
in the 'password' field of the 'usr' table so:</p>
|
||||
<pre>
|
||||
psql davical -c 'select username, password from usr;'
|
||||
</pre>
|
||||
|
||||
<p>should show you a list. Note that once you change a password it
|
||||
won't be readable in this way - only the initial configuration
|
||||
leaves passwords readable like this for security reasons.</p>
|
||||
|
||||
<p>Check the '/setup.php' page in your installation and if everything
|
||||
is working then you should be ready to configure a client
|
||||
to use your new DAViCal installation, and the docs for that are elsewhere.</p>
|
||||
|
||||
<p>If you had to do something else that is not covered here, or if you have any other notes
|
||||
you want to add to help others through the installation process, please write something up
|
||||
about your experiences in the Wiki, including distribution specific notes, to pages somewhere under here:
|
||||
<a href="http://wiki.davical.org/w/Installation_Stuff">http://wiki.davical.org/w/Installation_Stuff</a></p>
|
||||
|
||||
|
||||
<h1>Upgrades</h1>
|
||||
|
||||
<p>Whenever you upgrade the DAViCal application to a new version you will need to
|
||||
run dba/update-davical-database which will apply any pending database patches, as well as
|
||||
enabling new translations, loading database views and functions, and setting application
|
||||
permissions to database tables.</p>
|
||||
|
||||
<p>When the database is created all the tables are owned by a 'davical_dba' user which
|
||||
you will also want to add access for in your pg_hba.conf, although in that case you
|
||||
may want to set the user to have a password, since it has full control over the DAViCal
|
||||
database structure and content.</p>
|
||||
|
||||
<p>See <a href="http://wiki.davical.org/w/Update-davical-database">http://wiki.davical.org/w/Update-davical-database</a> for more information.</p>
|
||||
|
||||
<?php
|
||||
include("inc/page-footer.php");
|
||||
@ -1,251 +0,0 @@
|
||||
* {
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
body {
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
background-color: #FFFFFF;
|
||||
color: #333333;
|
||||
}
|
||||
|
||||
hr {
|
||||
height: 0.4em;
|
||||
width: 100%;
|
||||
background-color: #000000;
|
||||
border: none;
|
||||
color:#000000;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
|
||||
#pageContainer {
|
||||
width: 740px;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
#header {
|
||||
width: 740px;
|
||||
height: 80px;
|
||||
background: url(images/logo.gif) #bb1f1f no-repeat center left;
|
||||
margin-top: 10px;
|
||||
border-bottom: #d2d2d2 solid 5px;
|
||||
text-align: right;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
#headerLinks {
|
||||
color: #FFFFFF;
|
||||
font-family: helvetica, arial, sans-serif;
|
||||
font-size: 8pt;
|
||||
font-size: 80%;
|
||||
padding-top: 64px;
|
||||
padding-right: 5px;
|
||||
display:block;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.hlink {
|
||||
color: #FFFFFF;
|
||||
font-family: helvetica, arial, sans-serif;
|
||||
font-size: 8pt;
|
||||
font-size: 80%;
|
||||
text-decoration: none;
|
||||
}
|
||||
.hlink:link, .hlink:active, .hlink:visited {
|
||||
color: #FFFFFF;
|
||||
}
|
||||
|
||||
.hlink:hover {
|
||||
color: #FFFFFF;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
#pageContent {
|
||||
/* Not used for anything at present */
|
||||
}
|
||||
|
||||
h1 {
|
||||
color: #600000;
|
||||
font-family: helvetica, arial, sans-serif;
|
||||
font-size: 135%;
|
||||
margin-top: 1em;
|
||||
margin-bottom: 0.3em;
|
||||
}
|
||||
|
||||
h2, h3 {
|
||||
color: black;
|
||||
font-family: helvetica, arial, sans-serif;
|
||||
font-size: 115%;
|
||||
margin-top: 1em;
|
||||
margin-bottom: 0.3em;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 100%;
|
||||
}
|
||||
|
||||
.showcase {
|
||||
margin: 2px;
|
||||
padding: 2px;
|
||||
border: 2px #000000 solid;
|
||||
}
|
||||
|
||||
p {
|
||||
font-family: helvetica, arial, sans-serif;
|
||||
font-size: 8pt;
|
||||
font-size: 90%;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
ol, ul {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
ul {
|
||||
list-style-type: square;
|
||||
font-family: helvetica, arial, sans-serif;
|
||||
}
|
||||
|
||||
li {
|
||||
list-style-position: outside;
|
||||
font-family: helvetica, arial, sans-serif;
|
||||
font-size: 90%;
|
||||
margin: 0.1em 2em;
|
||||
}
|
||||
|
||||
code {
|
||||
font-family: courier, courier new, fixed;
|
||||
font-size: inherit;
|
||||
}
|
||||
|
||||
pre {
|
||||
font-family: courier, courier new, fixed;
|
||||
font-size: 90%;
|
||||
padding: 1em;
|
||||
margin-bottom: 1em;
|
||||
background-color: #eee;
|
||||
}
|
||||
|
||||
#footer {
|
||||
clear: both;
|
||||
width: 740px;
|
||||
font-family: helvetica, arial, sans-serif;
|
||||
font-size: 8pt;
|
||||
font-size: 80%;
|
||||
border-top: 2px #000000 solid;
|
||||
}
|
||||
|
||||
#title {
|
||||
float: left;
|
||||
color: #FFFFFF;
|
||||
padding-left: 100px;
|
||||
margin-top: 1px;
|
||||
font-family: helvetica, arial, sans-serif;
|
||||
font-size: 190%;
|
||||
}
|
||||
|
||||
#subTitle {
|
||||
float: left;
|
||||
clear: left;
|
||||
color: #FFFFFF;
|
||||
padding-left: 102px;
|
||||
font-family: helvetica, arial, sans-serif;
|
||||
font-size: 8pt;
|
||||
font-size: 75%;
|
||||
}
|
||||
|
||||
.right {
|
||||
float: right;
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
.left {
|
||||
float: left;
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
.flink:link {
|
||||
color: #333333;
|
||||
font-family: helvetica, arial, sans-serif;
|
||||
font-size: 8pt;
|
||||
font-size: 80%;
|
||||
text-decoration: none;
|
||||
vertical-align: text-top;
|
||||
}
|
||||
|
||||
.flink:active {
|
||||
color: #333333;
|
||||
font-family: helvetica, arial, sans-serif;
|
||||
font-size: 8pt;
|
||||
font-size: 80%;
|
||||
text-decoration: none;
|
||||
vertical-align: text-top;
|
||||
}
|
||||
|
||||
.flink:hover {
|
||||
color: #333333;
|
||||
font-family: helvetica, arial, sans-serif;
|
||||
font-size: 8pt;
|
||||
font-size: 80%;
|
||||
text-decoration: underline;
|
||||
vertical-align: text-top;
|
||||
}
|
||||
|
||||
.flink:visited {
|
||||
color: #333333;
|
||||
font-family: helvetica, arial, sans-serif;
|
||||
font-size: 8pt;
|
||||
font-size: 80%;
|
||||
text-decoration: none;
|
||||
vertical-align: text-top;
|
||||
}
|
||||
|
||||
.gone {
|
||||
width: 0.01em;
|
||||
height: 0.01em;
|
||||
}
|
||||
|
||||
.prompt {
|
||||
font-weight: 700;
|
||||
width: 4em;
|
||||
}
|
||||
|
||||
#leftSide {
|
||||
width: 170px;
|
||||
float: left;
|
||||
}
|
||||
|
||||
#leftSide p {
|
||||
text-align: center;
|
||||
margin-bottom: 1em;
|
||||
padding:0.3em 0;
|
||||
font-weight: bold;
|
||||
background-color: #d2d2d2;
|
||||
}
|
||||
|
||||
#leftSide p.selected {
|
||||
background-color: #bb1f1f;
|
||||
color: white;
|
||||
}
|
||||
|
||||
#leftSide img {
|
||||
border: none;
|
||||
}
|
||||
|
||||
#leftSide a, #leftSide a:link, #leftSide a:hover, #leftSide a:active, #leftSide a:visited {
|
||||
text-decoration: none;
|
||||
color: black;
|
||||
}
|
||||
|
||||
#leftSide a.selected, #leftSide a.selected:link, #leftSide a.selected:hover, #leftSide a.selected:active, #leftSide a.selected:visited {
|
||||
text-decoration: none;
|
||||
color: white;
|
||||
}
|
||||
|
||||
#rightSide {
|
||||
width: 530px;
|
||||
float: right;
|
||||
}
|
||||
|
||||
@ -1,67 +0,0 @@
|
||||
|
||||
#logo {
|
||||
height: 80px;
|
||||
width: 99.9%;
|
||||
background: url(images/logo.gif) #bb1f1f no-repeat center left;
|
||||
margin-left: 0px;
|
||||
margin-top: 0px;
|
||||
border-bottom: #d2d2d2 solid 5px;
|
||||
text-align: right;
|
||||
margin-bottom: 5px;
|
||||
font-family: helvetica, arial, serif;
|
||||
font-weight: normal;
|
||||
font-size: 1em;
|
||||
color: #FFFFFF;
|
||||
display:block;
|
||||
}
|
||||
|
||||
#title {
|
||||
float: left;
|
||||
color: #FFFFFF;
|
||||
padding-left: 100px;
|
||||
margin-top: 10px;
|
||||
font-size: 190%;
|
||||
}
|
||||
|
||||
#subTitle {
|
||||
float: left;
|
||||
clear: left;
|
||||
color: #FFFFFF;
|
||||
padding-left: 102px;
|
||||
padding-top: 3px;
|
||||
margin-top: 5px;
|
||||
font-size: 75%;
|
||||
}
|
||||
|
||||
|
||||
#headerLinks {
|
||||
color: #FFFFFF;
|
||||
font-family: helvetica, arial, sans-serif;
|
||||
font-size: 65%;
|
||||
padding-top: 60px;
|
||||
padding-right: 5px;
|
||||
}
|
||||
|
||||
#headerLinks .hlink {
|
||||
color: #FFFFFF;
|
||||
}
|
||||
|
||||
#headerLinks .hlink:link {
|
||||
color: #FFFFFF;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#headerLinks .hlink:active {
|
||||
color: #FFFFFF;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#headerLinks .hlink:hover {
|
||||
color: #FFFFFF;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
#headerLinks .hlink:visited {
|
||||
color: #FFFFFF;
|
||||
}
|
||||
|
||||