mirror of
https://github.com/Kozea/Radicale.git
synced 2025-08-01 18:18:31 +00:00
Generate documentation
This commit is contained in:
parent
e48a0a15d7
commit
f3508e4947
8 changed files with 1100 additions and 1096 deletions
722
v1.html
722
v1.html
|
@ -82,7 +82,7 @@
|
|||
<noscript><link href="assets/screen-noscript.css" media="screen" rel="stylesheet"></noscript>
|
||||
<link href="https://github.com/Kozea/Radicale/releases.atom" rel="alternate" title="Radicale Releases" type="application/atom+xml">
|
||||
<link href="assets/icon.png" rel="icon" type="image/png">
|
||||
<title>Radicale "v1" Documentation</title>
|
||||
<title>Radicale v1 Documentation</title>
|
||||
<meta content="Free and Open-Source CalDAV and CardDAV Server" name="description">
|
||||
<script src="assets/navigation.js"></script>
|
||||
<script src="assets/document-branches.js"></script>
|
||||
|
@ -514,72 +514,72 @@
|
|||
<section class="level6" id="documentation/user-documentation/simple-usage/starting-the-client/infcloud-caldavzap--carddavmate">
|
||||
<h6>InfCloud, CalDavZAP & CardDavMATE <a class="headerlink" href="#documentation/user-documentation/simple-usage/starting-the-client/infcloud-caldavzap--carddavmate">¶</a></h6>
|
||||
<p>Because settings are the same for <code>InfCloud</code>, <code>CalDavZAP</code> and <code>CardDavMATE</code><br>
|
||||
only <em>InfCloud</em> is used in description below.</p>
|
||||
only <em>InfCloud</em> is used in description below.</p>
|
||||
<section class="level7" id="documentation/user-documentation/simple-usage/starting-the-client/infcloud-caldavzap--carddavmate/radicale-configuration">
|
||||
<p class="heading">Radicale configuration <a class="headerlink" href="#documentation/user-documentation/simple-usage/starting-the-client/infcloud-caldavzap--carddavmate/radicale-configuration">¶</a></p>
|
||||
<p>Add/Modify the following section in Radicale main configuration file:</p>
|
||||
<div class="sourceCode" id="cb1"><pre class="sourceCode ini"><code class="sourceCode ini"><span id="cb1-1"><a aria-hidden="true" href="#cb1-1" tabindex="-1"></a><span class="co"># Additional HTTP headers</span></span>
|
||||
<span id="cb1-2"><a aria-hidden="true" href="#cb1-2" tabindex="-1"></a><span class="kw">[headers]</span></span>
|
||||
<span id="cb1-3"><a aria-hidden="true" href="#cb1-3" tabindex="-1"></a><span class="dt">Access-Control-Allow-Origin </span><span class="ot">=</span><span class="st"> *</span></span>
|
||||
<span id="cb1-4"><a aria-hidden="true" href="#cb1-4" tabindex="-1"></a><span class="dt">Access-Control-Allow-Methods </span><span class="ot">=</span><span class="st"> GET, POST, OPTIONS, PROPFIND, PROPPATCH, REPORT, PUT, MOVE, DELETE, LOCK, UNLOCK</span></span>
|
||||
<span id="cb1-5"><a aria-hidden="true" href="#cb1-5" tabindex="-1"></a><span class="dt">Access-Control-Allow-Headers </span><span class="ot">=</span><span class="st"> Authorization, Content-type, Depth, Destination, If-match, If-None-Match, Lock-Token, Overwrite, Prefer, Timeout, User-Agent, X-Client, X-Requested-With</span></span>
|
||||
<span id="cb1-6"><a aria-hidden="true" href="#cb1-6" tabindex="-1"></a><span class="dt">Access-Control-Expose-Headers </span><span class="ot">=</span><span class="st"> Etag</span></span></code></pre></div>
|
||||
<span id="cb1-2"><a aria-hidden="true" href="#cb1-2" tabindex="-1"></a><span class="kw">[headers]</span></span>
|
||||
<span id="cb1-3"><a aria-hidden="true" href="#cb1-3" tabindex="-1"></a><span class="dt">Access-Control-Allow-Origin </span><span class="ot">=</span><span class="st"> *</span></span>
|
||||
<span id="cb1-4"><a aria-hidden="true" href="#cb1-4" tabindex="-1"></a><span class="dt">Access-Control-Allow-Methods </span><span class="ot">=</span><span class="st"> GET, POST, OPTIONS, PROPFIND, PROPPATCH, REPORT, PUT, MOVE, DELETE, LOCK, UNLOCK</span></span>
|
||||
<span id="cb1-5"><a aria-hidden="true" href="#cb1-5" tabindex="-1"></a><span class="dt">Access-Control-Allow-Headers </span><span class="ot">=</span><span class="st"> Authorization, Content-type, Depth, Destination, If-match, If-None-Match, Lock-Token, Overwrite, Prefer, Timeout, User-Agent, X-Client, X-Requested-With</span></span>
|
||||
<span id="cb1-6"><a aria-hidden="true" href="#cb1-6" tabindex="-1"></a><span class="dt">Access-Control-Expose-Headers </span><span class="ot">=</span><span class="st"> Etag</span></span></code></pre></div>
|
||||
<p><code>InfCloud</code> needs read access for <code>everybody</code> (including anonymous users) on Radicale's root directory. If using Radicales rights management add the following section to rights file:</p>
|
||||
<div class="sourceCode" id="cb2"><pre class="sourceCode ini"><code class="sourceCode ini"><span id="cb2-1"><a aria-hidden="true" href="#cb2-1" tabindex="-1"></a><span class="co"># Allow caldavzap, carddavmate and infcloud to work</span></span>
|
||||
<span id="cb2-2"><a aria-hidden="true" href="#cb2-2" tabindex="-1"></a><span class="kw">[infcloud]</span></span>
|
||||
<span id="cb2-3"><a aria-hidden="true" href="#cb2-3" tabindex="-1"></a><span class="dt">user: .*</span></span>
|
||||
<span id="cb2-4"><a aria-hidden="true" href="#cb2-4" tabindex="-1"></a><span class="dt">collection: /</span></span>
|
||||
<span id="cb2-5"><a aria-hidden="true" href="#cb2-5" tabindex="-1"></a><span class="dt">permission: r</span></span></code></pre></div>
|
||||
<span id="cb2-2"><a aria-hidden="true" href="#cb2-2" tabindex="-1"></a><span class="kw">[infcloud]</span></span>
|
||||
<span id="cb2-3"><a aria-hidden="true" href="#cb2-3" tabindex="-1"></a><span class="dt">user: .*</span></span>
|
||||
<span id="cb2-4"><a aria-hidden="true" href="#cb2-4" tabindex="-1"></a><span class="dt">collection: /</span></span>
|
||||
<span id="cb2-5"><a aria-hidden="true" href="#cb2-5" tabindex="-1"></a><span class="dt">permission: r</span></span></code></pre></div>
|
||||
<p>Additional you need to change <code>[owner-write]</code> section to use the same syntax for collection as shown in <code>[public]</code> section.</p>
|
||||
<div class="sourceCode" id="cb3"><pre class="sourceCode ini"><code class="sourceCode ini"><span id="cb3-1"><a aria-hidden="true" href="#cb3-1" tabindex="-1"></a><span class="co"># Give write access to owners</span></span>
|
||||
<span id="cb3-2"><a aria-hidden="true" href="#cb3-2" tabindex="-1"></a><span class="kw">[owner-write]</span></span>
|
||||
<span id="cb3-3"><a aria-hidden="true" href="#cb3-3" tabindex="-1"></a><span class="dt">user: .+</span></span>
|
||||
<span id="cb3-4"><a aria-hidden="true" href="#cb3-4" tabindex="-1"></a><span class="co"># collection: ^%(login)s/.+$ # DOES NOT WORK</span></span>
|
||||
<span id="cb3-5"><a aria-hidden="true" href="#cb3-5" tabindex="-1"></a><span class="dt">collection: ^%(login)s(/.+)?$</span></span>
|
||||
<span id="cb3-6"><a aria-hidden="true" href="#cb3-6" tabindex="-1"></a><span class="dt">permission: rw</span></span></code></pre></div>
|
||||
<span id="cb3-2"><a aria-hidden="true" href="#cb3-2" tabindex="-1"></a><span class="kw">[owner-write]</span></span>
|
||||
<span id="cb3-3"><a aria-hidden="true" href="#cb3-3" tabindex="-1"></a><span class="dt">user: .+</span></span>
|
||||
<span id="cb3-4"><a aria-hidden="true" href="#cb3-4" tabindex="-1"></a><span class="co"># collection: ^%(login)s/.+$ # DOES NOT WORK</span></span>
|
||||
<span id="cb3-5"><a aria-hidden="true" href="#cb3-5" tabindex="-1"></a><span class="dt">collection: ^%(login)s(/.+)?$</span></span>
|
||||
<span id="cb3-6"><a aria-hidden="true" href="#cb3-6" tabindex="-1"></a><span class="dt">permission: rw</span></span></code></pre></div>
|
||||
</section>
|
||||
<section class="level7" id="documentation/user-documentation/simple-usage/starting-the-client/infcloud-caldavzap--carddavmate/infcloud-configuration">
|
||||
<p class="heading">InfCloud configuration <a class="headerlink" href="#documentation/user-documentation/simple-usage/starting-the-client/infcloud-caldavzap--carddavmate/infcloud-configuration">¶</a></p>
|
||||
<p>Inside <code>InfCloud</code> configuration file <code>config.js</code> you need to set <code>globalNetworkCheckSettings</code> like following example:</p>
|
||||
<div class="sourceCode" id="cb4"><pre class="sourceCode JavaScript"><code class="sourceCode javascript"><span id="cb4-1"><a aria-hidden="true" href="#cb4-1" tabindex="-1"></a><span class="co">// href: </span></span>
|
||||
<span id="cb4-2"><a aria-hidden="true" href="#cb4-2" tabindex="-1"></a><span class="co">// put in here your protocol, host and port where Radicale is listening</span></span>
|
||||
<span id="cb4-3"><a aria-hidden="true" href="#cb4-3" tabindex="-1"></a><span class="co">// additionalResources:</span></span>
|
||||
<span id="cb4-4"><a aria-hidden="true" href="#cb4-4" tabindex="-1"></a><span class="co">// put in here a comma separated list of collections you want additionally look at.</span></span>
|
||||
<span id="cb4-5"><a aria-hidden="true" href="#cb4-5" tabindex="-1"></a><span class="co">// Don't forget '' around each collections name</span></span>
|
||||
<span id="cb4-6"><a aria-hidden="true" href="#cb4-6" tabindex="-1"></a><span class="kw">var</span> globalNetworkCheckSettings<span class="op">=</span>{</span>
|
||||
<span id="cb4-7"><a aria-hidden="true" href="#cb4-7" tabindex="-1"></a> <span class="dt">href</span><span class="op">:</span> <span class="st">'https://host.example.com:5232/'</span><span class="op">,</span></span>
|
||||
<span id="cb4-8"><a aria-hidden="true" href="#cb4-8" tabindex="-1"></a> <span class="dt">hrefLabel</span><span class="op">:</span> <span class="kw">null</span><span class="op">,</span></span>
|
||||
<span id="cb4-9"><a aria-hidden="true" href="#cb4-9" tabindex="-1"></a> <span class="dt">crossDomain</span><span class="op">:</span> <span class="kw">null</span><span class="op">,</span></span>
|
||||
<span id="cb4-10"><a aria-hidden="true" href="#cb4-10" tabindex="-1"></a> <span class="dt">additionalResources</span><span class="op">:</span> [<span class="st">'public'</span>]<span class="op">,</span></span>
|
||||
<span id="cb4-11"><a aria-hidden="true" href="#cb4-11" tabindex="-1"></a> <span class="dt">forceReadOnly</span><span class="op">:</span> <span class="kw">null</span><span class="op">,</span></span>
|
||||
<span id="cb4-12"><a aria-hidden="true" href="#cb4-12" tabindex="-1"></a> <span class="dt">withCredentials</span><span class="op">:</span> <span class="kw">false</span><span class="op">,</span></span>
|
||||
<span id="cb4-13"><a aria-hidden="true" href="#cb4-13" tabindex="-1"></a> <span class="dt">showHeader</span><span class="op">:</span> <span class="kw">true</span><span class="op">,</span></span>
|
||||
<span id="cb4-14"><a aria-hidden="true" href="#cb4-14" tabindex="-1"></a> <span class="dt">settingsAccount</span><span class="op">:</span> <span class="kw">true</span><span class="op">,</span></span>
|
||||
<span id="cb4-15"><a aria-hidden="true" href="#cb4-15" tabindex="-1"></a> <span class="dt">syncInterval</span><span class="op">:</span> <span class="dv">60000</span><span class="op">,</span></span>
|
||||
<span id="cb4-16"><a aria-hidden="true" href="#cb4-16" tabindex="-1"></a> <span class="dt">timeOut</span><span class="op">:</span> <span class="dv">30000</span><span class="op">,</span></span>
|
||||
<span id="cb4-17"><a aria-hidden="true" href="#cb4-17" tabindex="-1"></a> <span class="dt">lockTimeOut</span><span class="op">:</span> <span class="dv">10000</span><span class="op">,</span></span>
|
||||
<span id="cb4-18"><a aria-hidden="true" href="#cb4-18" tabindex="-1"></a> <span class="dt">delegation</span><span class="op">:</span> <span class="kw">false</span><span class="op">,</span></span>
|
||||
<span id="cb4-19"><a aria-hidden="true" href="#cb4-19" tabindex="-1"></a> <span class="dt">ignoreAlarms</span><span class="op">:</span> <span class="kw">false</span><span class="op">,</span></span>
|
||||
<span id="cb4-20"><a aria-hidden="true" href="#cb4-20" tabindex="-1"></a> <span class="dt">backgroundCalendars</span><span class="op">:</span> []</span>
|
||||
<span id="cb4-21"><a aria-hidden="true" href="#cb4-21" tabindex="-1"></a>}</span></code></pre></div>
|
||||
<span id="cb4-2"><a aria-hidden="true" href="#cb4-2" tabindex="-1"></a><span class="co">// put in here your protocol, host and port where Radicale is listening</span></span>
|
||||
<span id="cb4-3"><a aria-hidden="true" href="#cb4-3" tabindex="-1"></a><span class="co">// additionalResources:</span></span>
|
||||
<span id="cb4-4"><a aria-hidden="true" href="#cb4-4" tabindex="-1"></a><span class="co">// put in here a comma separated list of collections you want additionally look at.</span></span>
|
||||
<span id="cb4-5"><a aria-hidden="true" href="#cb4-5" tabindex="-1"></a><span class="co">// Don't forget '' around each collections name</span></span>
|
||||
<span id="cb4-6"><a aria-hidden="true" href="#cb4-6" tabindex="-1"></a><span class="kw">var</span> globalNetworkCheckSettings<span class="op">=</span>{</span>
|
||||
<span id="cb4-7"><a aria-hidden="true" href="#cb4-7" tabindex="-1"></a> <span class="dt">href</span><span class="op">:</span> <span class="st">'https://host.example.com:5232/'</span><span class="op">,</span></span>
|
||||
<span id="cb4-8"><a aria-hidden="true" href="#cb4-8" tabindex="-1"></a> <span class="dt">hrefLabel</span><span class="op">:</span> <span class="kw">null</span><span class="op">,</span></span>
|
||||
<span id="cb4-9"><a aria-hidden="true" href="#cb4-9" tabindex="-1"></a> <span class="dt">crossDomain</span><span class="op">:</span> <span class="kw">null</span><span class="op">,</span></span>
|
||||
<span id="cb4-10"><a aria-hidden="true" href="#cb4-10" tabindex="-1"></a> <span class="dt">additionalResources</span><span class="op">:</span> [<span class="st">'public'</span>]<span class="op">,</span></span>
|
||||
<span id="cb4-11"><a aria-hidden="true" href="#cb4-11" tabindex="-1"></a> <span class="dt">forceReadOnly</span><span class="op">:</span> <span class="kw">null</span><span class="op">,</span></span>
|
||||
<span id="cb4-12"><a aria-hidden="true" href="#cb4-12" tabindex="-1"></a> <span class="dt">withCredentials</span><span class="op">:</span> <span class="kw">false</span><span class="op">,</span></span>
|
||||
<span id="cb4-13"><a aria-hidden="true" href="#cb4-13" tabindex="-1"></a> <span class="dt">showHeader</span><span class="op">:</span> <span class="kw">true</span><span class="op">,</span></span>
|
||||
<span id="cb4-14"><a aria-hidden="true" href="#cb4-14" tabindex="-1"></a> <span class="dt">settingsAccount</span><span class="op">:</span> <span class="kw">true</span><span class="op">,</span></span>
|
||||
<span id="cb4-15"><a aria-hidden="true" href="#cb4-15" tabindex="-1"></a> <span class="dt">syncInterval</span><span class="op">:</span> <span class="dv">60000</span><span class="op">,</span></span>
|
||||
<span id="cb4-16"><a aria-hidden="true" href="#cb4-16" tabindex="-1"></a> <span class="dt">timeOut</span><span class="op">:</span> <span class="dv">30000</span><span class="op">,</span></span>
|
||||
<span id="cb4-17"><a aria-hidden="true" href="#cb4-17" tabindex="-1"></a> <span class="dt">lockTimeOut</span><span class="op">:</span> <span class="dv">10000</span><span class="op">,</span></span>
|
||||
<span id="cb4-18"><a aria-hidden="true" href="#cb4-18" tabindex="-1"></a> <span class="dt">delegation</span><span class="op">:</span> <span class="kw">false</span><span class="op">,</span></span>
|
||||
<span id="cb4-19"><a aria-hidden="true" href="#cb4-19" tabindex="-1"></a> <span class="dt">ignoreAlarms</span><span class="op">:</span> <span class="kw">false</span><span class="op">,</span></span>
|
||||
<span id="cb4-20"><a aria-hidden="true" href="#cb4-20" tabindex="-1"></a> <span class="dt">backgroundCalendars</span><span class="op">:</span> []</span>
|
||||
<span id="cb4-21"><a aria-hidden="true" href="#cb4-21" tabindex="-1"></a>}</span></code></pre></div>
|
||||
<blockquote>
|
||||
<p><strong>Note</strong></p>
|
||||
<p><code>InfCloud</code>, <code>CardDavMATE</code> and <code>CalDavZAP</code> cannot create calendars and/or address books. <strong>They need to be created before first login.</strong> Each user needs to have minimum of one calendar and/or one adressbook even if only using shared addresses and/or calendars. Client will not login, if the user collections don't exists.</p>
|
||||
</blockquote>
|
||||
<p>You can easily create them by directly calling the URL's from your browser:<br>
|
||||
<code>http(s)://host.example.com:5232/user/calendar.ics/</code><br>
|
||||
<code>http(s)://host.example.com:5232/user/addresses.vcf/</code></p>
|
||||
<code>http(s)://host.example.com:5232/user/calendar.ics/</code><br>
|
||||
<code>http(s)://host.example.com:5232/user/addresses.vcf/</code></p>
|
||||
<p>Replace "http(s)" with the correct protocol, "host.example.com:5232" with you host:port where Radicale is running,<br>
|
||||
"user" with the correct login name or the shared resource name i.e. 'public',<br>
|
||||
"calendar.ics" and "addresses.vcf" with the collection names you want to use<br>
|
||||
and <strong>do NOT forget the '/' at line end</strong>.</p>
|
||||
"user" with the correct login name or the shared resource name i.e. 'public',<br>
|
||||
"calendar.ics" and "addresses.vcf" with the collection names you want to use<br>
|
||||
and <strong>do NOT forget the '/' at line end</strong>.</p>
|
||||
<blockquote>
|
||||
<p><strong>Note</strong></p>
|
||||
<p>If using self-signed certificates you need to do the following steps before using <code>InfCloud, CardDavMATE</code> or <code>CalDavZAP</code>.<br>
|
||||
With your browser call one of the above URLs.<br>
|
||||
Your browser warn you that you are trying to access an <code>Insecure</code> site.<br>
|
||||
Download and accept the certificate offered by the Radicale server.<br>
|
||||
After installing and accepting it you should restart your browser.</p>
|
||||
With your browser call one of the above URLs.<br>
|
||||
Your browser warn you that you are trying to access an <code>Insecure</code> site.<br>
|
||||
Download and accept the certificate offered by the Radicale server.<br>
|
||||
After installing and accepting it you should restart your browser.</p>
|
||||
</blockquote>
|
||||
</section>
|
||||
</section>
|
||||
|
@ -690,7 +690,7 @@ After installing and accepting it you should restart your browser.</p>
|
|||
<li>A new account "iCloud" with the given email address appears on the list. The status is "Not up to date". Click the account.</li>
|
||||
<li>An error message is given. Click "close".</li>
|
||||
<li>Enter new and "real" values to the account setting fields:
|
||||
<ul>
|
||||
<ul>
|
||||
<li>"Account name": This name appears on the calendar etc. Examples: "Home", "Word", "Sauna reservation"</li>
|
||||
<li>"Email address": Not used</li>
|
||||
<li>"Sync contacts and calendar": Select the sync interval</li>
|
||||
|
@ -729,185 +729,185 @@ After installing and accepting it you should restart your browser.</p>
|
|||
</blockquote>
|
||||
<p>The server configuration can be modified in <code>/etc/radicale/config</code> or in <code>~/.config/radicale/config</code>. You can use the <code>--config</code> parameter in the command line to choose a specific path. You can also set the <code>RADICALE_CONFIG</code> environment variable to a path of your choice. Here is the default configuration file, with the main parameters:</p>
|
||||
<div class="sourceCode" id="cb7"><pre class="sourceCode ini"><code class="sourceCode ini"><span id="cb7-1"><a aria-hidden="true" href="#cb7-1" tabindex="-1"></a><span class="kw">[server]</span></span>
|
||||
<span id="cb7-2"><a aria-hidden="true" href="#cb7-2" tabindex="-1"></a></span>
|
||||
<span id="cb7-3"><a aria-hidden="true" href="#cb7-3" tabindex="-1"></a><span class="co"># CalDAV server hostnames separated by a comma</span></span>
|
||||
<span id="cb7-4"><a aria-hidden="true" href="#cb7-4" tabindex="-1"></a><span class="co"># IPv4 syntax: address:port</span></span>
|
||||
<span id="cb7-5"><a aria-hidden="true" href="#cb7-5" tabindex="-1"></a><span class="co"># IPv6 syntax: [address]:port</span></span>
|
||||
<span id="cb7-6"><a aria-hidden="true" href="#cb7-6" tabindex="-1"></a><span class="co"># For example: 0.0.0.0:9999, [::]:9999</span></span>
|
||||
<span id="cb7-7"><a aria-hidden="true" href="#cb7-7" tabindex="-1"></a><span class="co"># IPv6 adresses are configured to only allow IPv6 connections</span></span>
|
||||
<span id="cb7-8"><a aria-hidden="true" href="#cb7-8" tabindex="-1"></a><span class="co">#hosts = 0.0.0.0:5232</span></span>
|
||||
<span id="cb7-9"><a aria-hidden="true" href="#cb7-9" tabindex="-1"></a></span>
|
||||
<span id="cb7-10"><a aria-hidden="true" href="#cb7-10" tabindex="-1"></a><span class="co"># Daemon flag</span></span>
|
||||
<span id="cb7-11"><a aria-hidden="true" href="#cb7-11" tabindex="-1"></a><span class="co">#daemon = False</span></span>
|
||||
<span id="cb7-12"><a aria-hidden="true" href="#cb7-12" tabindex="-1"></a></span>
|
||||
<span id="cb7-13"><a aria-hidden="true" href="#cb7-13" tabindex="-1"></a><span class="co"># File storing the PID in daemon mode</span></span>
|
||||
<span id="cb7-14"><a aria-hidden="true" href="#cb7-14" tabindex="-1"></a><span class="co">#pid =</span></span>
|
||||
<span id="cb7-15"><a aria-hidden="true" href="#cb7-15" tabindex="-1"></a></span>
|
||||
<span id="cb7-16"><a aria-hidden="true" href="#cb7-16" tabindex="-1"></a><span class="co"># SSL flag, enable HTTPS protocol</span></span>
|
||||
<span id="cb7-17"><a aria-hidden="true" href="#cb7-17" tabindex="-1"></a><span class="co">#ssl = False</span></span>
|
||||
<span id="cb7-18"><a aria-hidden="true" href="#cb7-18" tabindex="-1"></a></span>
|
||||
<span id="cb7-19"><a aria-hidden="true" href="#cb7-19" tabindex="-1"></a><span class="co"># SSL certificate path</span></span>
|
||||
<span id="cb7-20"><a aria-hidden="true" href="#cb7-20" tabindex="-1"></a><span class="co">#certificate = /etc/apache2/ssl/server.crt</span></span>
|
||||
<span id="cb7-21"><a aria-hidden="true" href="#cb7-21" tabindex="-1"></a></span>
|
||||
<span id="cb7-22"><a aria-hidden="true" href="#cb7-22" tabindex="-1"></a><span class="co"># SSL private key</span></span>
|
||||
<span id="cb7-23"><a aria-hidden="true" href="#cb7-23" tabindex="-1"></a><span class="co">#key = /etc/apache2/ssl/server.key</span></span>
|
||||
<span id="cb7-24"><a aria-hidden="true" href="#cb7-24" tabindex="-1"></a></span>
|
||||
<span id="cb7-25"><a aria-hidden="true" href="#cb7-25" tabindex="-1"></a><span class="co"># SSL Protocol used. See python's ssl module for available values</span></span>
|
||||
<span id="cb7-26"><a aria-hidden="true" href="#cb7-26" tabindex="-1"></a><span class="co">#protocol = PROTOCOL_SSLv23</span></span>
|
||||
<span id="cb7-27"><a aria-hidden="true" href="#cb7-27" tabindex="-1"></a></span>
|
||||
<span id="cb7-28"><a aria-hidden="true" href="#cb7-28" tabindex="-1"></a><span class="co"># Ciphers available. See python's ssl module for available ciphers</span></span>
|
||||
<span id="cb7-29"><a aria-hidden="true" href="#cb7-29" tabindex="-1"></a><span class="co">#ciphers =</span></span>
|
||||
<span id="cb7-30"><a aria-hidden="true" href="#cb7-30" tabindex="-1"></a></span>
|
||||
<span id="cb7-31"><a aria-hidden="true" href="#cb7-31" tabindex="-1"></a><span class="co"># Reverse DNS to resolve client address in logs</span></span>
|
||||
<span id="cb7-32"><a aria-hidden="true" href="#cb7-32" tabindex="-1"></a><span class="co">#dns_lookup = True</span></span>
|
||||
<span id="cb7-33"><a aria-hidden="true" href="#cb7-33" tabindex="-1"></a></span>
|
||||
<span id="cb7-34"><a aria-hidden="true" href="#cb7-34" tabindex="-1"></a><span class="co"># Root URL of Radicale (starting and ending with a slash)</span></span>
|
||||
<span id="cb7-35"><a aria-hidden="true" href="#cb7-35" tabindex="-1"></a><span class="co">#base_prefix = /</span></span>
|
||||
<span id="cb7-36"><a aria-hidden="true" href="#cb7-36" tabindex="-1"></a></span>
|
||||
<span id="cb7-37"><a aria-hidden="true" href="#cb7-37" tabindex="-1"></a><span class="co"># Possibility to allow URLs cleaned by a HTTP server, without the base_prefix</span></span>
|
||||
<span id="cb7-38"><a aria-hidden="true" href="#cb7-38" tabindex="-1"></a><span class="co">#can_skip_base_prefix = False</span></span>
|
||||
<span id="cb7-39"><a aria-hidden="true" href="#cb7-39" tabindex="-1"></a></span>
|
||||
<span id="cb7-40"><a aria-hidden="true" href="#cb7-40" tabindex="-1"></a><span class="co"># Message displayed in the client when a password is needed</span></span>
|
||||
<span id="cb7-41"><a aria-hidden="true" href="#cb7-41" tabindex="-1"></a><span class="co">#realm = Radicale - Password Required</span></span>
|
||||
<span id="cb7-42"><a aria-hidden="true" href="#cb7-42" tabindex="-1"></a></span>
|
||||
<span id="cb7-43"><a aria-hidden="true" href="#cb7-43" tabindex="-1"></a></span>
|
||||
<span id="cb7-44"><a aria-hidden="true" href="#cb7-44" tabindex="-1"></a><span class="kw">[encoding]</span></span>
|
||||
<span id="cb7-45"><a aria-hidden="true" href="#cb7-45" tabindex="-1"></a></span>
|
||||
<span id="cb7-46"><a aria-hidden="true" href="#cb7-46" tabindex="-1"></a><span class="co"># Encoding for responding requests</span></span>
|
||||
<span id="cb7-47"><a aria-hidden="true" href="#cb7-47" tabindex="-1"></a><span class="co">#request = utf-8</span></span>
|
||||
<span id="cb7-48"><a aria-hidden="true" href="#cb7-48" tabindex="-1"></a></span>
|
||||
<span id="cb7-49"><a aria-hidden="true" href="#cb7-49" tabindex="-1"></a><span class="co"># Encoding for storing local collections</span></span>
|
||||
<span id="cb7-50"><a aria-hidden="true" href="#cb7-50" tabindex="-1"></a><span class="co">#stock = utf-8</span></span>
|
||||
<span id="cb7-51"><a aria-hidden="true" href="#cb7-51" tabindex="-1"></a></span>
|
||||
<span id="cb7-52"><a aria-hidden="true" href="#cb7-52" tabindex="-1"></a></span>
|
||||
<span id="cb7-53"><a aria-hidden="true" href="#cb7-53" tabindex="-1"></a><span class="kw">[well-known]</span></span>
|
||||
<span id="cb7-54"><a aria-hidden="true" href="#cb7-54" tabindex="-1"></a></span>
|
||||
<span id="cb7-55"><a aria-hidden="true" href="#cb7-55" tabindex="-1"></a><span class="co"># Path where /.well-known/caldav/ is redirected</span></span>
|
||||
<span id="cb7-56"><a aria-hidden="true" href="#cb7-56" tabindex="-1"></a><span class="co">#caldav = '/%(user)s/caldav/'</span></span>
|
||||
<span id="cb7-57"><a aria-hidden="true" href="#cb7-57" tabindex="-1"></a></span>
|
||||
<span id="cb7-58"><a aria-hidden="true" href="#cb7-58" tabindex="-1"></a><span class="co"># Path where /.well-known/carddav/ is redirected</span></span>
|
||||
<span id="cb7-59"><a aria-hidden="true" href="#cb7-59" tabindex="-1"></a><span class="co">#carddav = '/%(user)s/carddav/'</span></span>
|
||||
<span id="cb7-60"><a aria-hidden="true" href="#cb7-60" tabindex="-1"></a></span>
|
||||
<span id="cb7-61"><a aria-hidden="true" href="#cb7-61" tabindex="-1"></a></span>
|
||||
<span id="cb7-62"><a aria-hidden="true" href="#cb7-62" tabindex="-1"></a><span class="kw">[auth]</span></span>
|
||||
<span id="cb7-63"><a aria-hidden="true" href="#cb7-63" tabindex="-1"></a></span>
|
||||
<span id="cb7-64"><a aria-hidden="true" href="#cb7-64" tabindex="-1"></a><span class="co"># Authentication method</span></span>
|
||||
<span id="cb7-65"><a aria-hidden="true" href="#cb7-65" tabindex="-1"></a><span class="co"># Value: None | htpasswd | IMAP | LDAP | PAM | courier | http | remote_user | custom</span></span>
|
||||
<span id="cb7-66"><a aria-hidden="true" href="#cb7-66" tabindex="-1"></a><span class="co">#type = None</span></span>
|
||||
<span id="cb7-67"><a aria-hidden="true" href="#cb7-67" tabindex="-1"></a></span>
|
||||
<span id="cb7-68"><a aria-hidden="true" href="#cb7-68" tabindex="-1"></a><span class="co"># Custom authentication handler</span></span>
|
||||
<span id="cb7-69"><a aria-hidden="true" href="#cb7-69" tabindex="-1"></a><span class="co">#custom_handler =</span></span>
|
||||
<span id="cb7-70"><a aria-hidden="true" href="#cb7-70" tabindex="-1"></a></span>
|
||||
<span id="cb7-71"><a aria-hidden="true" href="#cb7-71" tabindex="-1"></a><span class="co"># Htpasswd filename</span></span>
|
||||
<span id="cb7-72"><a aria-hidden="true" href="#cb7-72" tabindex="-1"></a><span class="co">#htpasswd_filename = /etc/radicale/users</span></span>
|
||||
<span id="cb7-73"><a aria-hidden="true" href="#cb7-73" tabindex="-1"></a></span>
|
||||
<span id="cb7-74"><a aria-hidden="true" href="#cb7-74" tabindex="-1"></a><span class="co"># Htpasswd encryption method</span></span>
|
||||
<span id="cb7-75"><a aria-hidden="true" href="#cb7-75" tabindex="-1"></a><span class="co"># Value: plain | sha1 | ssha | crypt | bcrypt | md5</span></span>
|
||||
<span id="cb7-76"><a aria-hidden="true" href="#cb7-76" tabindex="-1"></a><span class="co">#htpasswd_encryption = crypt</span></span>
|
||||
<span id="cb7-77"><a aria-hidden="true" href="#cb7-77" tabindex="-1"></a></span>
|
||||
<span id="cb7-78"><a aria-hidden="true" href="#cb7-78" tabindex="-1"></a><span class="co"># LDAP server URL, with protocol and port</span></span>
|
||||
<span id="cb7-79"><a aria-hidden="true" href="#cb7-79" tabindex="-1"></a><span class="co">#ldap_url = ldap://localhost:389/</span></span>
|
||||
<span id="cb7-80"><a aria-hidden="true" href="#cb7-80" tabindex="-1"></a></span>
|
||||
<span id="cb7-81"><a aria-hidden="true" href="#cb7-81" tabindex="-1"></a><span class="co"># LDAP base path</span></span>
|
||||
<span id="cb7-82"><a aria-hidden="true" href="#cb7-82" tabindex="-1"></a><span class="co">#ldap_base = ou=users,dc=example,dc=com</span></span>
|
||||
<span id="cb7-83"><a aria-hidden="true" href="#cb7-83" tabindex="-1"></a></span>
|
||||
<span id="cb7-84"><a aria-hidden="true" href="#cb7-84" tabindex="-1"></a><span class="co"># LDAP login attribute</span></span>
|
||||
<span id="cb7-85"><a aria-hidden="true" href="#cb7-85" tabindex="-1"></a><span class="co">#ldap_attribute = uid</span></span>
|
||||
<span id="cb7-86"><a aria-hidden="true" href="#cb7-86" tabindex="-1"></a></span>
|
||||
<span id="cb7-87"><a aria-hidden="true" href="#cb7-87" tabindex="-1"></a><span class="co"># LDAP filter string</span></span>
|
||||
<span id="cb7-88"><a aria-hidden="true" href="#cb7-88" tabindex="-1"></a><span class="co"># placed as X in a query of the form (&(...)X)</span></span>
|
||||
<span id="cb7-89"><a aria-hidden="true" href="#cb7-89" tabindex="-1"></a><span class="co"># example: (objectCategory=Person)(objectClass=User)(memberOf=cn=calenderusers,ou=users,dc=example,dc=org)</span></span>
|
||||
<span id="cb7-90"><a aria-hidden="true" href="#cb7-90" tabindex="-1"></a><span class="co"># leave empty if no additional filter is needed</span></span>
|
||||
<span id="cb7-91"><a aria-hidden="true" href="#cb7-91" tabindex="-1"></a><span class="co">#ldap_filter =</span></span>
|
||||
<span id="cb7-92"><a aria-hidden="true" href="#cb7-92" tabindex="-1"></a></span>
|
||||
<span id="cb7-93"><a aria-hidden="true" href="#cb7-93" tabindex="-1"></a><span class="co"># LDAP dn for initial login, used if LDAP server does not allow anonymous searches</span></span>
|
||||
<span id="cb7-94"><a aria-hidden="true" href="#cb7-94" tabindex="-1"></a><span class="co"># Leave empty if searches are anonymous</span></span>
|
||||
<span id="cb7-95"><a aria-hidden="true" href="#cb7-95" tabindex="-1"></a><span class="co">#ldap_binddn =</span></span>
|
||||
<span id="cb7-96"><a aria-hidden="true" href="#cb7-96" tabindex="-1"></a></span>
|
||||
<span id="cb7-97"><a aria-hidden="true" href="#cb7-97" tabindex="-1"></a><span class="co"># LDAP password for initial login, used with ldap_binddn</span></span>
|
||||
<span id="cb7-98"><a aria-hidden="true" href="#cb7-98" tabindex="-1"></a><span class="co">#ldap_password =</span></span>
|
||||
<span id="cb7-99"><a aria-hidden="true" href="#cb7-99" tabindex="-1"></a></span>
|
||||
<span id="cb7-100"><a aria-hidden="true" href="#cb7-100" tabindex="-1"></a><span class="co"># LDAP scope of the search</span></span>
|
||||
<span id="cb7-101"><a aria-hidden="true" href="#cb7-101" tabindex="-1"></a><span class="co">#ldap_scope = OneLevel</span></span>
|
||||
<span id="cb7-102"><a aria-hidden="true" href="#cb7-102" tabindex="-1"></a></span>
|
||||
<span id="cb7-103"><a aria-hidden="true" href="#cb7-103" tabindex="-1"></a><span class="co"># IMAP Configuration</span></span>
|
||||
<span id="cb7-104"><a aria-hidden="true" href="#cb7-104" tabindex="-1"></a><span class="co">#imap_hostname = localhost</span></span>
|
||||
<span id="cb7-105"><a aria-hidden="true" href="#cb7-105" tabindex="-1"></a><span class="co">#imap_port = 143</span></span>
|
||||
<span id="cb7-106"><a aria-hidden="true" href="#cb7-106" tabindex="-1"></a><span class="co">#imap_ssl = False</span></span>
|
||||
<span id="cb7-107"><a aria-hidden="true" href="#cb7-107" tabindex="-1"></a></span>
|
||||
<span id="cb7-108"><a aria-hidden="true" href="#cb7-108" tabindex="-1"></a><span class="co"># PAM group user should be member of</span></span>
|
||||
<span id="cb7-109"><a aria-hidden="true" href="#cb7-109" tabindex="-1"></a><span class="co">#pam_group_membership =</span></span>
|
||||
<span id="cb7-110"><a aria-hidden="true" href="#cb7-110" tabindex="-1"></a></span>
|
||||
<span id="cb7-111"><a aria-hidden="true" href="#cb7-111" tabindex="-1"></a><span class="co"># Path to the Courier Authdaemon socket</span></span>
|
||||
<span id="cb7-112"><a aria-hidden="true" href="#cb7-112" tabindex="-1"></a><span class="co">#courier_socket =</span></span>
|
||||
<span id="cb7-113"><a aria-hidden="true" href="#cb7-113" tabindex="-1"></a></span>
|
||||
<span id="cb7-114"><a aria-hidden="true" href="#cb7-114" tabindex="-1"></a><span class="co"># HTTP authentication request URL endpoint</span></span>
|
||||
<span id="cb7-115"><a aria-hidden="true" href="#cb7-115" tabindex="-1"></a><span class="co">#http_url =</span></span>
|
||||
<span id="cb7-116"><a aria-hidden="true" href="#cb7-116" tabindex="-1"></a><span class="co"># POST parameter to use for username</span></span>
|
||||
<span id="cb7-117"><a aria-hidden="true" href="#cb7-117" tabindex="-1"></a><span class="co">#http_user_parameter =</span></span>
|
||||
<span id="cb7-118"><a aria-hidden="true" href="#cb7-118" tabindex="-1"></a><span class="co"># POST parameter to use for password</span></span>
|
||||
<span id="cb7-119"><a aria-hidden="true" href="#cb7-119" tabindex="-1"></a><span class="co">#http_password_parameter =</span></span>
|
||||
<span id="cb7-120"><a aria-hidden="true" href="#cb7-120" tabindex="-1"></a></span>
|
||||
<span id="cb7-121"><a aria-hidden="true" href="#cb7-121" tabindex="-1"></a></span>
|
||||
<span id="cb7-122"><a aria-hidden="true" href="#cb7-122" tabindex="-1"></a><span class="kw">[git]</span></span>
|
||||
<span id="cb7-123"><a aria-hidden="true" href="#cb7-123" tabindex="-1"></a></span>
|
||||
<span id="cb7-124"><a aria-hidden="true" href="#cb7-124" tabindex="-1"></a><span class="co"># Git default options</span></span>
|
||||
<span id="cb7-125"><a aria-hidden="true" href="#cb7-125" tabindex="-1"></a><span class="co">#committer = Radicale <radicale@example.com></span></span>
|
||||
<span id="cb7-126"><a aria-hidden="true" href="#cb7-126" tabindex="-1"></a></span>
|
||||
<span id="cb7-127"><a aria-hidden="true" href="#cb7-127" tabindex="-1"></a></span>
|
||||
<span id="cb7-128"><a aria-hidden="true" href="#cb7-128" tabindex="-1"></a><span class="kw">[rights]</span></span>
|
||||
<span id="cb7-129"><a aria-hidden="true" href="#cb7-129" tabindex="-1"></a></span>
|
||||
<span id="cb7-130"><a aria-hidden="true" href="#cb7-130" tabindex="-1"></a><span class="co"># Rights backend</span></span>
|
||||
<span id="cb7-131"><a aria-hidden="true" href="#cb7-131" tabindex="-1"></a><span class="co"># Value: None | authenticated | owner_only | owner_write | from_file | custom</span></span>
|
||||
<span id="cb7-132"><a aria-hidden="true" href="#cb7-132" tabindex="-1"></a><span class="co">#type = None</span></span>
|
||||
<span id="cb7-133"><a aria-hidden="true" href="#cb7-133" tabindex="-1"></a></span>
|
||||
<span id="cb7-134"><a aria-hidden="true" href="#cb7-134" tabindex="-1"></a><span class="co"># Custom rights handler</span></span>
|
||||
<span id="cb7-135"><a aria-hidden="true" href="#cb7-135" tabindex="-1"></a><span class="co">#custom_handler =</span></span>
|
||||
<span id="cb7-136"><a aria-hidden="true" href="#cb7-136" tabindex="-1"></a></span>
|
||||
<span id="cb7-137"><a aria-hidden="true" href="#cb7-137" tabindex="-1"></a><span class="co"># File for rights management from_file</span></span>
|
||||
<span id="cb7-138"><a aria-hidden="true" href="#cb7-138" tabindex="-1"></a><span class="co">#file = ~/.config/radicale/rights</span></span>
|
||||
<span id="cb7-139"><a aria-hidden="true" href="#cb7-139" tabindex="-1"></a></span>
|
||||
<span id="cb7-140"><a aria-hidden="true" href="#cb7-140" tabindex="-1"></a></span>
|
||||
<span id="cb7-141"><a aria-hidden="true" href="#cb7-141" tabindex="-1"></a><span class="kw">[storage]</span></span>
|
||||
<span id="cb7-142"><a aria-hidden="true" href="#cb7-142" tabindex="-1"></a></span>
|
||||
<span id="cb7-143"><a aria-hidden="true" href="#cb7-143" tabindex="-1"></a><span class="co"># Storage backend</span></span>
|
||||
<span id="cb7-144"><a aria-hidden="true" href="#cb7-144" tabindex="-1"></a><span class="co"># -------</span></span>
|
||||
<span id="cb7-145"><a aria-hidden="true" href="#cb7-145" tabindex="-1"></a><span class="co"># </span><span class="al">WARNING</span><span class="co">: ONLY "filesystem" IS DOCUMENTED AND TESTED,</span></span>
|
||||
<span id="cb7-146"><a aria-hidden="true" href="#cb7-146" tabindex="-1"></a><span class="co"># OTHER BACKENDS ARE NOT READY FOR PRODUCTION.</span></span>
|
||||
<span id="cb7-147"><a aria-hidden="true" href="#cb7-147" tabindex="-1"></a><span class="co"># -------</span></span>
|
||||
<span id="cb7-148"><a aria-hidden="true" href="#cb7-148" tabindex="-1"></a><span class="co"># Value: filesystem | multifilesystem | database | custom</span></span>
|
||||
<span id="cb7-149"><a aria-hidden="true" href="#cb7-149" tabindex="-1"></a><span class="co">#type = filesystem</span></span>
|
||||
<span id="cb7-150"><a aria-hidden="true" href="#cb7-150" tabindex="-1"></a></span>
|
||||
<span id="cb7-151"><a aria-hidden="true" href="#cb7-151" tabindex="-1"></a><span class="co"># Custom storage handler</span></span>
|
||||
<span id="cb7-152"><a aria-hidden="true" href="#cb7-152" tabindex="-1"></a><span class="co">#custom_handler =</span></span>
|
||||
<span id="cb7-153"><a aria-hidden="true" href="#cb7-153" tabindex="-1"></a></span>
|
||||
<span id="cb7-154"><a aria-hidden="true" href="#cb7-154" tabindex="-1"></a><span class="co"># Folder for storing local collections, created if not present</span></span>
|
||||
<span id="cb7-155"><a aria-hidden="true" href="#cb7-155" tabindex="-1"></a><span class="co">#filesystem_folder = ~/.config/radicale/collections</span></span>
|
||||
<span id="cb7-156"><a aria-hidden="true" href="#cb7-156" tabindex="-1"></a></span>
|
||||
<span id="cb7-157"><a aria-hidden="true" href="#cb7-157" tabindex="-1"></a><span class="co"># Database URL for SQLAlchemy</span></span>
|
||||
<span id="cb7-158"><a aria-hidden="true" href="#cb7-158" tabindex="-1"></a><span class="co"># dialect+driver://user:password@host/dbname[?key=value..]</span></span>
|
||||
<span id="cb7-159"><a aria-hidden="true" href="#cb7-159" tabindex="-1"></a><span class="co"># For example: sqlite:///var/db/radicale.db, postgresql://user:password@localhost/radicale</span></span>
|
||||
<span id="cb7-160"><a aria-hidden="true" href="#cb7-160" tabindex="-1"></a><span class="co"># See http://docs.sqlalchemy.org/en/rel_0_8/core/engines.html#sqlalchemy.create_engine</span></span>
|
||||
<span id="cb7-161"><a aria-hidden="true" href="#cb7-161" tabindex="-1"></a><span class="co">#database_url =</span></span>
|
||||
<span id="cb7-162"><a aria-hidden="true" href="#cb7-162" tabindex="-1"></a></span>
|
||||
<span id="cb7-163"><a aria-hidden="true" href="#cb7-163" tabindex="-1"></a></span>
|
||||
<span id="cb7-164"><a aria-hidden="true" href="#cb7-164" tabindex="-1"></a><span class="kw">[logging]</span></span>
|
||||
<span id="cb7-165"><a aria-hidden="true" href="#cb7-165" tabindex="-1"></a></span>
|
||||
<span id="cb7-166"><a aria-hidden="true" href="#cb7-166" tabindex="-1"></a><span class="co"># Logging configuration file</span></span>
|
||||
<span id="cb7-167"><a aria-hidden="true" href="#cb7-167" tabindex="-1"></a><span class="co"># If no config is given, simple information is printed on the standard output</span></span>
|
||||
<span id="cb7-168"><a aria-hidden="true" href="#cb7-168" tabindex="-1"></a><span class="co"># For more information about the syntax of the configuration file, see:</span></span>
|
||||
<span id="cb7-169"><a aria-hidden="true" href="#cb7-169" tabindex="-1"></a><span class="co"># http://docs.python.org/library/logging.config.html</span></span>
|
||||
<span id="cb7-170"><a aria-hidden="true" href="#cb7-170" tabindex="-1"></a><span class="co">#config = /etc/radicale/logging</span></span>
|
||||
<span id="cb7-171"><a aria-hidden="true" href="#cb7-171" tabindex="-1"></a><span class="co"># Set the default logging level to debug</span></span>
|
||||
<span id="cb7-172"><a aria-hidden="true" href="#cb7-172" tabindex="-1"></a><span class="co">#debug = False</span></span>
|
||||
<span id="cb7-173"><a aria-hidden="true" href="#cb7-173" tabindex="-1"></a><span class="co"># Store all environment variables (including those set in the shell)</span></span>
|
||||
<span id="cb7-174"><a aria-hidden="true" href="#cb7-174" tabindex="-1"></a><span class="co">#full_environment = False</span></span>
|
||||
<span id="cb7-175"><a aria-hidden="true" href="#cb7-175" tabindex="-1"></a></span>
|
||||
<span id="cb7-176"><a aria-hidden="true" href="#cb7-176" tabindex="-1"></a></span>
|
||||
<span id="cb7-177"><a aria-hidden="true" href="#cb7-177" tabindex="-1"></a><span class="kw">[headers]</span></span>
|
||||
<span id="cb7-178"><a aria-hidden="true" href="#cb7-178" tabindex="-1"></a></span>
|
||||
<span id="cb7-179"><a aria-hidden="true" href="#cb7-179" tabindex="-1"></a><span class="co"># Additional HTTP headers</span></span>
|
||||
<span id="cb7-180"><a aria-hidden="true" href="#cb7-180" tabindex="-1"></a><span class="co">#Access-Control-Allow-Origin = *</span></span></code></pre></div>
|
||||
<span id="cb7-2"><a aria-hidden="true" href="#cb7-2" tabindex="-1"></a></span>
|
||||
<span id="cb7-3"><a aria-hidden="true" href="#cb7-3" tabindex="-1"></a><span class="co"># CalDAV server hostnames separated by a comma</span></span>
|
||||
<span id="cb7-4"><a aria-hidden="true" href="#cb7-4" tabindex="-1"></a><span class="co"># IPv4 syntax: address:port</span></span>
|
||||
<span id="cb7-5"><a aria-hidden="true" href="#cb7-5" tabindex="-1"></a><span class="co"># IPv6 syntax: [address]:port</span></span>
|
||||
<span id="cb7-6"><a aria-hidden="true" href="#cb7-6" tabindex="-1"></a><span class="co"># For example: 0.0.0.0:9999, [::]:9999</span></span>
|
||||
<span id="cb7-7"><a aria-hidden="true" href="#cb7-7" tabindex="-1"></a><span class="co"># IPv6 adresses are configured to only allow IPv6 connections</span></span>
|
||||
<span id="cb7-8"><a aria-hidden="true" href="#cb7-8" tabindex="-1"></a><span class="co">#hosts = 0.0.0.0:5232</span></span>
|
||||
<span id="cb7-9"><a aria-hidden="true" href="#cb7-9" tabindex="-1"></a></span>
|
||||
<span id="cb7-10"><a aria-hidden="true" href="#cb7-10" tabindex="-1"></a><span class="co"># Daemon flag</span></span>
|
||||
<span id="cb7-11"><a aria-hidden="true" href="#cb7-11" tabindex="-1"></a><span class="co">#daemon = False</span></span>
|
||||
<span id="cb7-12"><a aria-hidden="true" href="#cb7-12" tabindex="-1"></a></span>
|
||||
<span id="cb7-13"><a aria-hidden="true" href="#cb7-13" tabindex="-1"></a><span class="co"># File storing the PID in daemon mode</span></span>
|
||||
<span id="cb7-14"><a aria-hidden="true" href="#cb7-14" tabindex="-1"></a><span class="co">#pid =</span></span>
|
||||
<span id="cb7-15"><a aria-hidden="true" href="#cb7-15" tabindex="-1"></a></span>
|
||||
<span id="cb7-16"><a aria-hidden="true" href="#cb7-16" tabindex="-1"></a><span class="co"># SSL flag, enable HTTPS protocol</span></span>
|
||||
<span id="cb7-17"><a aria-hidden="true" href="#cb7-17" tabindex="-1"></a><span class="co">#ssl = False</span></span>
|
||||
<span id="cb7-18"><a aria-hidden="true" href="#cb7-18" tabindex="-1"></a></span>
|
||||
<span id="cb7-19"><a aria-hidden="true" href="#cb7-19" tabindex="-1"></a><span class="co"># SSL certificate path</span></span>
|
||||
<span id="cb7-20"><a aria-hidden="true" href="#cb7-20" tabindex="-1"></a><span class="co">#certificate = /etc/apache2/ssl/server.crt</span></span>
|
||||
<span id="cb7-21"><a aria-hidden="true" href="#cb7-21" tabindex="-1"></a></span>
|
||||
<span id="cb7-22"><a aria-hidden="true" href="#cb7-22" tabindex="-1"></a><span class="co"># SSL private key</span></span>
|
||||
<span id="cb7-23"><a aria-hidden="true" href="#cb7-23" tabindex="-1"></a><span class="co">#key = /etc/apache2/ssl/server.key</span></span>
|
||||
<span id="cb7-24"><a aria-hidden="true" href="#cb7-24" tabindex="-1"></a></span>
|
||||
<span id="cb7-25"><a aria-hidden="true" href="#cb7-25" tabindex="-1"></a><span class="co"># SSL Protocol used. See python's ssl module for available values</span></span>
|
||||
<span id="cb7-26"><a aria-hidden="true" href="#cb7-26" tabindex="-1"></a><span class="co">#protocol = PROTOCOL_SSLv23</span></span>
|
||||
<span id="cb7-27"><a aria-hidden="true" href="#cb7-27" tabindex="-1"></a></span>
|
||||
<span id="cb7-28"><a aria-hidden="true" href="#cb7-28" tabindex="-1"></a><span class="co"># Ciphers available. See python's ssl module for available ciphers</span></span>
|
||||
<span id="cb7-29"><a aria-hidden="true" href="#cb7-29" tabindex="-1"></a><span class="co">#ciphers =</span></span>
|
||||
<span id="cb7-30"><a aria-hidden="true" href="#cb7-30" tabindex="-1"></a></span>
|
||||
<span id="cb7-31"><a aria-hidden="true" href="#cb7-31" tabindex="-1"></a><span class="co"># Reverse DNS to resolve client address in logs</span></span>
|
||||
<span id="cb7-32"><a aria-hidden="true" href="#cb7-32" tabindex="-1"></a><span class="co">#dns_lookup = True</span></span>
|
||||
<span id="cb7-33"><a aria-hidden="true" href="#cb7-33" tabindex="-1"></a></span>
|
||||
<span id="cb7-34"><a aria-hidden="true" href="#cb7-34" tabindex="-1"></a><span class="co"># Root URL of Radicale (starting and ending with a slash)</span></span>
|
||||
<span id="cb7-35"><a aria-hidden="true" href="#cb7-35" tabindex="-1"></a><span class="co">#base_prefix = /</span></span>
|
||||
<span id="cb7-36"><a aria-hidden="true" href="#cb7-36" tabindex="-1"></a></span>
|
||||
<span id="cb7-37"><a aria-hidden="true" href="#cb7-37" tabindex="-1"></a><span class="co"># Possibility to allow URLs cleaned by a HTTP server, without the base_prefix</span></span>
|
||||
<span id="cb7-38"><a aria-hidden="true" href="#cb7-38" tabindex="-1"></a><span class="co">#can_skip_base_prefix = False</span></span>
|
||||
<span id="cb7-39"><a aria-hidden="true" href="#cb7-39" tabindex="-1"></a></span>
|
||||
<span id="cb7-40"><a aria-hidden="true" href="#cb7-40" tabindex="-1"></a><span class="co"># Message displayed in the client when a password is needed</span></span>
|
||||
<span id="cb7-41"><a aria-hidden="true" href="#cb7-41" tabindex="-1"></a><span class="co">#realm = Radicale - Password Required</span></span>
|
||||
<span id="cb7-42"><a aria-hidden="true" href="#cb7-42" tabindex="-1"></a></span>
|
||||
<span id="cb7-43"><a aria-hidden="true" href="#cb7-43" tabindex="-1"></a></span>
|
||||
<span id="cb7-44"><a aria-hidden="true" href="#cb7-44" tabindex="-1"></a><span class="kw">[encoding]</span></span>
|
||||
<span id="cb7-45"><a aria-hidden="true" href="#cb7-45" tabindex="-1"></a></span>
|
||||
<span id="cb7-46"><a aria-hidden="true" href="#cb7-46" tabindex="-1"></a><span class="co"># Encoding for responding requests</span></span>
|
||||
<span id="cb7-47"><a aria-hidden="true" href="#cb7-47" tabindex="-1"></a><span class="co">#request = utf-8</span></span>
|
||||
<span id="cb7-48"><a aria-hidden="true" href="#cb7-48" tabindex="-1"></a></span>
|
||||
<span id="cb7-49"><a aria-hidden="true" href="#cb7-49" tabindex="-1"></a><span class="co"># Encoding for storing local collections</span></span>
|
||||
<span id="cb7-50"><a aria-hidden="true" href="#cb7-50" tabindex="-1"></a><span class="co">#stock = utf-8</span></span>
|
||||
<span id="cb7-51"><a aria-hidden="true" href="#cb7-51" tabindex="-1"></a></span>
|
||||
<span id="cb7-52"><a aria-hidden="true" href="#cb7-52" tabindex="-1"></a></span>
|
||||
<span id="cb7-53"><a aria-hidden="true" href="#cb7-53" tabindex="-1"></a><span class="kw">[well-known]</span></span>
|
||||
<span id="cb7-54"><a aria-hidden="true" href="#cb7-54" tabindex="-1"></a></span>
|
||||
<span id="cb7-55"><a aria-hidden="true" href="#cb7-55" tabindex="-1"></a><span class="co"># Path where /.well-known/caldav/ is redirected</span></span>
|
||||
<span id="cb7-56"><a aria-hidden="true" href="#cb7-56" tabindex="-1"></a><span class="co">#caldav = '/%(user)s/caldav/'</span></span>
|
||||
<span id="cb7-57"><a aria-hidden="true" href="#cb7-57" tabindex="-1"></a></span>
|
||||
<span id="cb7-58"><a aria-hidden="true" href="#cb7-58" tabindex="-1"></a><span class="co"># Path where /.well-known/carddav/ is redirected</span></span>
|
||||
<span id="cb7-59"><a aria-hidden="true" href="#cb7-59" tabindex="-1"></a><span class="co">#carddav = '/%(user)s/carddav/'</span></span>
|
||||
<span id="cb7-60"><a aria-hidden="true" href="#cb7-60" tabindex="-1"></a></span>
|
||||
<span id="cb7-61"><a aria-hidden="true" href="#cb7-61" tabindex="-1"></a></span>
|
||||
<span id="cb7-62"><a aria-hidden="true" href="#cb7-62" tabindex="-1"></a><span class="kw">[auth]</span></span>
|
||||
<span id="cb7-63"><a aria-hidden="true" href="#cb7-63" tabindex="-1"></a></span>
|
||||
<span id="cb7-64"><a aria-hidden="true" href="#cb7-64" tabindex="-1"></a><span class="co"># Authentication method</span></span>
|
||||
<span id="cb7-65"><a aria-hidden="true" href="#cb7-65" tabindex="-1"></a><span class="co"># Value: None | htpasswd | IMAP | LDAP | PAM | courier | http | remote_user | custom</span></span>
|
||||
<span id="cb7-66"><a aria-hidden="true" href="#cb7-66" tabindex="-1"></a><span class="co">#type = None</span></span>
|
||||
<span id="cb7-67"><a aria-hidden="true" href="#cb7-67" tabindex="-1"></a></span>
|
||||
<span id="cb7-68"><a aria-hidden="true" href="#cb7-68" tabindex="-1"></a><span class="co"># Custom authentication handler</span></span>
|
||||
<span id="cb7-69"><a aria-hidden="true" href="#cb7-69" tabindex="-1"></a><span class="co">#custom_handler =</span></span>
|
||||
<span id="cb7-70"><a aria-hidden="true" href="#cb7-70" tabindex="-1"></a></span>
|
||||
<span id="cb7-71"><a aria-hidden="true" href="#cb7-71" tabindex="-1"></a><span class="co"># Htpasswd filename</span></span>
|
||||
<span id="cb7-72"><a aria-hidden="true" href="#cb7-72" tabindex="-1"></a><span class="co">#htpasswd_filename = /etc/radicale/users</span></span>
|
||||
<span id="cb7-73"><a aria-hidden="true" href="#cb7-73" tabindex="-1"></a></span>
|
||||
<span id="cb7-74"><a aria-hidden="true" href="#cb7-74" tabindex="-1"></a><span class="co"># Htpasswd encryption method</span></span>
|
||||
<span id="cb7-75"><a aria-hidden="true" href="#cb7-75" tabindex="-1"></a><span class="co"># Value: plain | sha1 | ssha | crypt | bcrypt | md5</span></span>
|
||||
<span id="cb7-76"><a aria-hidden="true" href="#cb7-76" tabindex="-1"></a><span class="co">#htpasswd_encryption = crypt</span></span>
|
||||
<span id="cb7-77"><a aria-hidden="true" href="#cb7-77" tabindex="-1"></a></span>
|
||||
<span id="cb7-78"><a aria-hidden="true" href="#cb7-78" tabindex="-1"></a><span class="co"># LDAP server URL, with protocol and port</span></span>
|
||||
<span id="cb7-79"><a aria-hidden="true" href="#cb7-79" tabindex="-1"></a><span class="co">#ldap_url = ldap://localhost:389/</span></span>
|
||||
<span id="cb7-80"><a aria-hidden="true" href="#cb7-80" tabindex="-1"></a></span>
|
||||
<span id="cb7-81"><a aria-hidden="true" href="#cb7-81" tabindex="-1"></a><span class="co"># LDAP base path</span></span>
|
||||
<span id="cb7-82"><a aria-hidden="true" href="#cb7-82" tabindex="-1"></a><span class="co">#ldap_base = ou=users,dc=example,dc=com</span></span>
|
||||
<span id="cb7-83"><a aria-hidden="true" href="#cb7-83" tabindex="-1"></a></span>
|
||||
<span id="cb7-84"><a aria-hidden="true" href="#cb7-84" tabindex="-1"></a><span class="co"># LDAP login attribute</span></span>
|
||||
<span id="cb7-85"><a aria-hidden="true" href="#cb7-85" tabindex="-1"></a><span class="co">#ldap_attribute = uid</span></span>
|
||||
<span id="cb7-86"><a aria-hidden="true" href="#cb7-86" tabindex="-1"></a></span>
|
||||
<span id="cb7-87"><a aria-hidden="true" href="#cb7-87" tabindex="-1"></a><span class="co"># LDAP filter string</span></span>
|
||||
<span id="cb7-88"><a aria-hidden="true" href="#cb7-88" tabindex="-1"></a><span class="co"># placed as X in a query of the form (&(...)X)</span></span>
|
||||
<span id="cb7-89"><a aria-hidden="true" href="#cb7-89" tabindex="-1"></a><span class="co"># example: (objectCategory=Person)(objectClass=User)(memberOf=cn=calenderusers,ou=users,dc=example,dc=org)</span></span>
|
||||
<span id="cb7-90"><a aria-hidden="true" href="#cb7-90" tabindex="-1"></a><span class="co"># leave empty if no additional filter is needed</span></span>
|
||||
<span id="cb7-91"><a aria-hidden="true" href="#cb7-91" tabindex="-1"></a><span class="co">#ldap_filter =</span></span>
|
||||
<span id="cb7-92"><a aria-hidden="true" href="#cb7-92" tabindex="-1"></a></span>
|
||||
<span id="cb7-93"><a aria-hidden="true" href="#cb7-93" tabindex="-1"></a><span class="co"># LDAP dn for initial login, used if LDAP server does not allow anonymous searches</span></span>
|
||||
<span id="cb7-94"><a aria-hidden="true" href="#cb7-94" tabindex="-1"></a><span class="co"># Leave empty if searches are anonymous</span></span>
|
||||
<span id="cb7-95"><a aria-hidden="true" href="#cb7-95" tabindex="-1"></a><span class="co">#ldap_binddn =</span></span>
|
||||
<span id="cb7-96"><a aria-hidden="true" href="#cb7-96" tabindex="-1"></a></span>
|
||||
<span id="cb7-97"><a aria-hidden="true" href="#cb7-97" tabindex="-1"></a><span class="co"># LDAP password for initial login, used with ldap_binddn</span></span>
|
||||
<span id="cb7-98"><a aria-hidden="true" href="#cb7-98" tabindex="-1"></a><span class="co">#ldap_password =</span></span>
|
||||
<span id="cb7-99"><a aria-hidden="true" href="#cb7-99" tabindex="-1"></a></span>
|
||||
<span id="cb7-100"><a aria-hidden="true" href="#cb7-100" tabindex="-1"></a><span class="co"># LDAP scope of the search</span></span>
|
||||
<span id="cb7-101"><a aria-hidden="true" href="#cb7-101" tabindex="-1"></a><span class="co">#ldap_scope = OneLevel</span></span>
|
||||
<span id="cb7-102"><a aria-hidden="true" href="#cb7-102" tabindex="-1"></a></span>
|
||||
<span id="cb7-103"><a aria-hidden="true" href="#cb7-103" tabindex="-1"></a><span class="co"># IMAP Configuration</span></span>
|
||||
<span id="cb7-104"><a aria-hidden="true" href="#cb7-104" tabindex="-1"></a><span class="co">#imap_hostname = localhost</span></span>
|
||||
<span id="cb7-105"><a aria-hidden="true" href="#cb7-105" tabindex="-1"></a><span class="co">#imap_port = 143</span></span>
|
||||
<span id="cb7-106"><a aria-hidden="true" href="#cb7-106" tabindex="-1"></a><span class="co">#imap_ssl = False</span></span>
|
||||
<span id="cb7-107"><a aria-hidden="true" href="#cb7-107" tabindex="-1"></a></span>
|
||||
<span id="cb7-108"><a aria-hidden="true" href="#cb7-108" tabindex="-1"></a><span class="co"># PAM group user should be member of</span></span>
|
||||
<span id="cb7-109"><a aria-hidden="true" href="#cb7-109" tabindex="-1"></a><span class="co">#pam_group_membership =</span></span>
|
||||
<span id="cb7-110"><a aria-hidden="true" href="#cb7-110" tabindex="-1"></a></span>
|
||||
<span id="cb7-111"><a aria-hidden="true" href="#cb7-111" tabindex="-1"></a><span class="co"># Path to the Courier Authdaemon socket</span></span>
|
||||
<span id="cb7-112"><a aria-hidden="true" href="#cb7-112" tabindex="-1"></a><span class="co">#courier_socket =</span></span>
|
||||
<span id="cb7-113"><a aria-hidden="true" href="#cb7-113" tabindex="-1"></a></span>
|
||||
<span id="cb7-114"><a aria-hidden="true" href="#cb7-114" tabindex="-1"></a><span class="co"># HTTP authentication request URL endpoint</span></span>
|
||||
<span id="cb7-115"><a aria-hidden="true" href="#cb7-115" tabindex="-1"></a><span class="co">#http_url =</span></span>
|
||||
<span id="cb7-116"><a aria-hidden="true" href="#cb7-116" tabindex="-1"></a><span class="co"># POST parameter to use for username</span></span>
|
||||
<span id="cb7-117"><a aria-hidden="true" href="#cb7-117" tabindex="-1"></a><span class="co">#http_user_parameter =</span></span>
|
||||
<span id="cb7-118"><a aria-hidden="true" href="#cb7-118" tabindex="-1"></a><span class="co"># POST parameter to use for password</span></span>
|
||||
<span id="cb7-119"><a aria-hidden="true" href="#cb7-119" tabindex="-1"></a><span class="co">#http_password_parameter =</span></span>
|
||||
<span id="cb7-120"><a aria-hidden="true" href="#cb7-120" tabindex="-1"></a></span>
|
||||
<span id="cb7-121"><a aria-hidden="true" href="#cb7-121" tabindex="-1"></a></span>
|
||||
<span id="cb7-122"><a aria-hidden="true" href="#cb7-122" tabindex="-1"></a><span class="kw">[git]</span></span>
|
||||
<span id="cb7-123"><a aria-hidden="true" href="#cb7-123" tabindex="-1"></a></span>
|
||||
<span id="cb7-124"><a aria-hidden="true" href="#cb7-124" tabindex="-1"></a><span class="co"># Git default options</span></span>
|
||||
<span id="cb7-125"><a aria-hidden="true" href="#cb7-125" tabindex="-1"></a><span class="co">#committer = Radicale <radicale@example.com></span></span>
|
||||
<span id="cb7-126"><a aria-hidden="true" href="#cb7-126" tabindex="-1"></a></span>
|
||||
<span id="cb7-127"><a aria-hidden="true" href="#cb7-127" tabindex="-1"></a></span>
|
||||
<span id="cb7-128"><a aria-hidden="true" href="#cb7-128" tabindex="-1"></a><span class="kw">[rights]</span></span>
|
||||
<span id="cb7-129"><a aria-hidden="true" href="#cb7-129" tabindex="-1"></a></span>
|
||||
<span id="cb7-130"><a aria-hidden="true" href="#cb7-130" tabindex="-1"></a><span class="co"># Rights backend</span></span>
|
||||
<span id="cb7-131"><a aria-hidden="true" href="#cb7-131" tabindex="-1"></a><span class="co"># Value: None | authenticated | owner_only | owner_write | from_file | custom</span></span>
|
||||
<span id="cb7-132"><a aria-hidden="true" href="#cb7-132" tabindex="-1"></a><span class="co">#type = None</span></span>
|
||||
<span id="cb7-133"><a aria-hidden="true" href="#cb7-133" tabindex="-1"></a></span>
|
||||
<span id="cb7-134"><a aria-hidden="true" href="#cb7-134" tabindex="-1"></a><span class="co"># Custom rights handler</span></span>
|
||||
<span id="cb7-135"><a aria-hidden="true" href="#cb7-135" tabindex="-1"></a><span class="co">#custom_handler =</span></span>
|
||||
<span id="cb7-136"><a aria-hidden="true" href="#cb7-136" tabindex="-1"></a></span>
|
||||
<span id="cb7-137"><a aria-hidden="true" href="#cb7-137" tabindex="-1"></a><span class="co"># File for rights management from_file</span></span>
|
||||
<span id="cb7-138"><a aria-hidden="true" href="#cb7-138" tabindex="-1"></a><span class="co">#file = ~/.config/radicale/rights</span></span>
|
||||
<span id="cb7-139"><a aria-hidden="true" href="#cb7-139" tabindex="-1"></a></span>
|
||||
<span id="cb7-140"><a aria-hidden="true" href="#cb7-140" tabindex="-1"></a></span>
|
||||
<span id="cb7-141"><a aria-hidden="true" href="#cb7-141" tabindex="-1"></a><span class="kw">[storage]</span></span>
|
||||
<span id="cb7-142"><a aria-hidden="true" href="#cb7-142" tabindex="-1"></a></span>
|
||||
<span id="cb7-143"><a aria-hidden="true" href="#cb7-143" tabindex="-1"></a><span class="co"># Storage backend</span></span>
|
||||
<span id="cb7-144"><a aria-hidden="true" href="#cb7-144" tabindex="-1"></a><span class="co"># -------</span></span>
|
||||
<span id="cb7-145"><a aria-hidden="true" href="#cb7-145" tabindex="-1"></a><span class="co"># </span><span class="al">WARNING</span><span class="co">: ONLY "filesystem" IS DOCUMENTED AND TESTED,</span></span>
|
||||
<span id="cb7-146"><a aria-hidden="true" href="#cb7-146" tabindex="-1"></a><span class="co"># OTHER BACKENDS ARE NOT READY FOR PRODUCTION.</span></span>
|
||||
<span id="cb7-147"><a aria-hidden="true" href="#cb7-147" tabindex="-1"></a><span class="co"># -------</span></span>
|
||||
<span id="cb7-148"><a aria-hidden="true" href="#cb7-148" tabindex="-1"></a><span class="co"># Value: filesystem | multifilesystem | database | custom</span></span>
|
||||
<span id="cb7-149"><a aria-hidden="true" href="#cb7-149" tabindex="-1"></a><span class="co">#type = filesystem</span></span>
|
||||
<span id="cb7-150"><a aria-hidden="true" href="#cb7-150" tabindex="-1"></a></span>
|
||||
<span id="cb7-151"><a aria-hidden="true" href="#cb7-151" tabindex="-1"></a><span class="co"># Custom storage handler</span></span>
|
||||
<span id="cb7-152"><a aria-hidden="true" href="#cb7-152" tabindex="-1"></a><span class="co">#custom_handler =</span></span>
|
||||
<span id="cb7-153"><a aria-hidden="true" href="#cb7-153" tabindex="-1"></a></span>
|
||||
<span id="cb7-154"><a aria-hidden="true" href="#cb7-154" tabindex="-1"></a><span class="co"># Folder for storing local collections, created if not present</span></span>
|
||||
<span id="cb7-155"><a aria-hidden="true" href="#cb7-155" tabindex="-1"></a><span class="co">#filesystem_folder = ~/.config/radicale/collections</span></span>
|
||||
<span id="cb7-156"><a aria-hidden="true" href="#cb7-156" tabindex="-1"></a></span>
|
||||
<span id="cb7-157"><a aria-hidden="true" href="#cb7-157" tabindex="-1"></a><span class="co"># Database URL for SQLAlchemy</span></span>
|
||||
<span id="cb7-158"><a aria-hidden="true" href="#cb7-158" tabindex="-1"></a><span class="co"># dialect+driver://user:password@host/dbname[?key=value..]</span></span>
|
||||
<span id="cb7-159"><a aria-hidden="true" href="#cb7-159" tabindex="-1"></a><span class="co"># For example: sqlite:///var/db/radicale.db, postgresql://user:password@localhost/radicale</span></span>
|
||||
<span id="cb7-160"><a aria-hidden="true" href="#cb7-160" tabindex="-1"></a><span class="co"># See http://docs.sqlalchemy.org/en/rel_0_8/core/engines.html#sqlalchemy.create_engine</span></span>
|
||||
<span id="cb7-161"><a aria-hidden="true" href="#cb7-161" tabindex="-1"></a><span class="co">#database_url =</span></span>
|
||||
<span id="cb7-162"><a aria-hidden="true" href="#cb7-162" tabindex="-1"></a></span>
|
||||
<span id="cb7-163"><a aria-hidden="true" href="#cb7-163" tabindex="-1"></a></span>
|
||||
<span id="cb7-164"><a aria-hidden="true" href="#cb7-164" tabindex="-1"></a><span class="kw">[logging]</span></span>
|
||||
<span id="cb7-165"><a aria-hidden="true" href="#cb7-165" tabindex="-1"></a></span>
|
||||
<span id="cb7-166"><a aria-hidden="true" href="#cb7-166" tabindex="-1"></a><span class="co"># Logging configuration file</span></span>
|
||||
<span id="cb7-167"><a aria-hidden="true" href="#cb7-167" tabindex="-1"></a><span class="co"># If no config is given, simple information is printed on the standard output</span></span>
|
||||
<span id="cb7-168"><a aria-hidden="true" href="#cb7-168" tabindex="-1"></a><span class="co"># For more information about the syntax of the configuration file, see:</span></span>
|
||||
<span id="cb7-169"><a aria-hidden="true" href="#cb7-169" tabindex="-1"></a><span class="co"># http://docs.python.org/library/logging.config.html</span></span>
|
||||
<span id="cb7-170"><a aria-hidden="true" href="#cb7-170" tabindex="-1"></a><span class="co">#config = /etc/radicale/logging</span></span>
|
||||
<span id="cb7-171"><a aria-hidden="true" href="#cb7-171" tabindex="-1"></a><span class="co"># Set the default logging level to debug</span></span>
|
||||
<span id="cb7-172"><a aria-hidden="true" href="#cb7-172" tabindex="-1"></a><span class="co">#debug = False</span></span>
|
||||
<span id="cb7-173"><a aria-hidden="true" href="#cb7-173" tabindex="-1"></a><span class="co"># Store all environment variables (including those set in the shell)</span></span>
|
||||
<span id="cb7-174"><a aria-hidden="true" href="#cb7-174" tabindex="-1"></a><span class="co">#full_environment = False</span></span>
|
||||
<span id="cb7-175"><a aria-hidden="true" href="#cb7-175" tabindex="-1"></a></span>
|
||||
<span id="cb7-176"><a aria-hidden="true" href="#cb7-176" tabindex="-1"></a></span>
|
||||
<span id="cb7-177"><a aria-hidden="true" href="#cb7-177" tabindex="-1"></a><span class="kw">[headers]</span></span>
|
||||
<span id="cb7-178"><a aria-hidden="true" href="#cb7-178" tabindex="-1"></a></span>
|
||||
<span id="cb7-179"><a aria-hidden="true" href="#cb7-179" tabindex="-1"></a><span class="co"># Additional HTTP headers</span></span>
|
||||
<span id="cb7-180"><a aria-hidden="true" href="#cb7-180" tabindex="-1"></a><span class="co">#Access-Control-Allow-Origin = *</span></span></code></pre></div>
|
||||
<p>This configuration file is read each time the server is launched. If some values are not given, the default ones are used. If no configuration file is available, all the default values are used.</p>
|
||||
</section>
|
||||
<section class="level6" id="documentation/user-documentation/complex-configuration/configuring-the-server/logging-configuration-file">
|
||||
|
@ -916,53 +916,53 @@ After installing and accepting it you should restart your browser.</p>
|
|||
<pre><code>radicale --debug</code></pre>
|
||||
<p>Radicale can also be configured to send the messages to the console, logging files, syslog, etc. For more information about the syntax of the configuration file, see: <a href="http://docs.python.org/library/logging.config.html">http://docs.python.org/library/logging.config.html</a>. Here is an example of logging configuration file:</p>
|
||||
<div class="sourceCode" id="cb9"><pre class="sourceCode ini"><code class="sourceCode ini"><span id="cb9-1"><a aria-hidden="true" href="#cb9-1" tabindex="-1"></a><span class="co"># Loggers, handlers and formatters keys</span></span>
|
||||
<span id="cb9-2"><a aria-hidden="true" href="#cb9-2" tabindex="-1"></a></span>
|
||||
<span id="cb9-3"><a aria-hidden="true" href="#cb9-3" tabindex="-1"></a><span class="kw">[loggers]</span></span>
|
||||
<span id="cb9-4"><a aria-hidden="true" href="#cb9-4" tabindex="-1"></a><span class="co"># Loggers names, main configuration slots</span></span>
|
||||
<span id="cb9-5"><a aria-hidden="true" href="#cb9-5" tabindex="-1"></a><span class="dt">keys </span><span class="ot">=</span><span class="st"> root</span></span>
|
||||
<span id="cb9-6"><a aria-hidden="true" href="#cb9-6" tabindex="-1"></a></span>
|
||||
<span id="cb9-7"><a aria-hidden="true" href="#cb9-7" tabindex="-1"></a><span class="kw">[handlers]</span></span>
|
||||
<span id="cb9-8"><a aria-hidden="true" href="#cb9-8" tabindex="-1"></a><span class="co"># Logging handlers, defining logging output methods</span></span>
|
||||
<span id="cb9-9"><a aria-hidden="true" href="#cb9-9" tabindex="-1"></a><span class="dt">keys </span><span class="ot">=</span><span class="st"> console,file</span></span>
|
||||
<span id="cb9-10"><a aria-hidden="true" href="#cb9-10" tabindex="-1"></a></span>
|
||||
<span id="cb9-11"><a aria-hidden="true" href="#cb9-11" tabindex="-1"></a><span class="kw">[formatters]</span></span>
|
||||
<span id="cb9-12"><a aria-hidden="true" href="#cb9-12" tabindex="-1"></a><span class="co"># Logging formatters</span></span>
|
||||
<span id="cb9-13"><a aria-hidden="true" href="#cb9-13" tabindex="-1"></a><span class="dt">keys </span><span class="ot">=</span><span class="st"> simple,full</span></span>
|
||||
<span id="cb9-14"><a aria-hidden="true" href="#cb9-14" tabindex="-1"></a></span>
|
||||
<span id="cb9-15"><a aria-hidden="true" href="#cb9-15" tabindex="-1"></a></span>
|
||||
<span id="cb9-16"><a aria-hidden="true" href="#cb9-16" tabindex="-1"></a><span class="co"># Loggers</span></span>
|
||||
<span id="cb9-17"><a aria-hidden="true" href="#cb9-17" tabindex="-1"></a></span>
|
||||
<span id="cb9-18"><a aria-hidden="true" href="#cb9-18" tabindex="-1"></a><span class="kw">[logger_root]</span></span>
|
||||
<span id="cb9-19"><a aria-hidden="true" href="#cb9-19" tabindex="-1"></a><span class="co"># Root logger</span></span>
|
||||
<span id="cb9-20"><a aria-hidden="true" href="#cb9-20" tabindex="-1"></a><span class="dt">level </span><span class="ot">=</span><span class="st"> DEBUG</span></span>
|
||||
<span id="cb9-21"><a aria-hidden="true" href="#cb9-21" tabindex="-1"></a><span class="dt">handlers </span><span class="ot">=</span><span class="st"> console,file</span></span>
|
||||
<span id="cb9-22"><a aria-hidden="true" href="#cb9-22" tabindex="-1"></a></span>
|
||||
<span id="cb9-23"><a aria-hidden="true" href="#cb9-23" tabindex="-1"></a></span>
|
||||
<span id="cb9-24"><a aria-hidden="true" href="#cb9-24" tabindex="-1"></a><span class="co"># Handlers</span></span>
|
||||
<span id="cb9-25"><a aria-hidden="true" href="#cb9-25" tabindex="-1"></a></span>
|
||||
<span id="cb9-26"><a aria-hidden="true" href="#cb9-26" tabindex="-1"></a><span class="kw">[handler_console]</span></span>
|
||||
<span id="cb9-27"><a aria-hidden="true" href="#cb9-27" tabindex="-1"></a><span class="co"># Console handler</span></span>
|
||||
<span id="cb9-28"><a aria-hidden="true" href="#cb9-28" tabindex="-1"></a><span class="dt">class </span><span class="ot">=</span><span class="st"> StreamHandler</span></span>
|
||||
<span id="cb9-29"><a aria-hidden="true" href="#cb9-29" tabindex="-1"></a><span class="dt">level </span><span class="ot">=</span><span class="st"> INFO</span></span>
|
||||
<span id="cb9-30"><a aria-hidden="true" href="#cb9-30" tabindex="-1"></a><span class="dt">args </span><span class="ot">=</span><span class="st"> (sys.stdout,)</span></span>
|
||||
<span id="cb9-31"><a aria-hidden="true" href="#cb9-31" tabindex="-1"></a><span class="dt">formatter </span><span class="ot">=</span><span class="st"> simple</span></span>
|
||||
<span id="cb9-32"><a aria-hidden="true" href="#cb9-32" tabindex="-1"></a></span>
|
||||
<span id="cb9-33"><a aria-hidden="true" href="#cb9-33" tabindex="-1"></a><span class="kw">[handler_file]</span></span>
|
||||
<span id="cb9-34"><a aria-hidden="true" href="#cb9-34" tabindex="-1"></a><span class="co"># File handler</span></span>
|
||||
<span id="cb9-35"><a aria-hidden="true" href="#cb9-35" tabindex="-1"></a><span class="dt">class </span><span class="ot">=</span><span class="st"> FileHandler</span></span>
|
||||
<span id="cb9-36"><a aria-hidden="true" href="#cb9-36" tabindex="-1"></a><span class="dt">args </span><span class="ot">=</span><span class="st"> ('/var/log/radicale',)</span></span>
|
||||
<span id="cb9-37"><a aria-hidden="true" href="#cb9-37" tabindex="-1"></a><span class="dt">formatter </span><span class="ot">=</span><span class="st"> full</span></span>
|
||||
<span id="cb9-38"><a aria-hidden="true" href="#cb9-38" tabindex="-1"></a></span>
|
||||
<span id="cb9-39"><a aria-hidden="true" href="#cb9-39" tabindex="-1"></a></span>
|
||||
<span id="cb9-40"><a aria-hidden="true" href="#cb9-40" tabindex="-1"></a><span class="co"># Formatters</span></span>
|
||||
<span id="cb9-41"><a aria-hidden="true" href="#cb9-41" tabindex="-1"></a></span>
|
||||
<span id="cb9-42"><a aria-hidden="true" href="#cb9-42" tabindex="-1"></a><span class="kw">[formatter_simple]</span></span>
|
||||
<span id="cb9-43"><a aria-hidden="true" href="#cb9-43" tabindex="-1"></a><span class="co"># Simple output format</span></span>
|
||||
<span id="cb9-44"><a aria-hidden="true" href="#cb9-44" tabindex="-1"></a><span class="dt">format </span><span class="ot">=</span><span class="st"> %(message)s</span></span>
|
||||
<span id="cb9-45"><a aria-hidden="true" href="#cb9-45" tabindex="-1"></a></span>
|
||||
<span id="cb9-46"><a aria-hidden="true" href="#cb9-46" tabindex="-1"></a><span class="kw">[formatter_full]</span></span>
|
||||
<span id="cb9-47"><a aria-hidden="true" href="#cb9-47" tabindex="-1"></a><span class="co"># Full output format</span></span>
|
||||
<span id="cb9-48"><a aria-hidden="true" href="#cb9-48" tabindex="-1"></a><span class="dt">format </span><span class="ot">=</span><span class="st"> %(asctime)s - %(levelname)s: %(message)s</span></span></code></pre></div>
|
||||
<span id="cb9-2"><a aria-hidden="true" href="#cb9-2" tabindex="-1"></a></span>
|
||||
<span id="cb9-3"><a aria-hidden="true" href="#cb9-3" tabindex="-1"></a><span class="kw">[loggers]</span></span>
|
||||
<span id="cb9-4"><a aria-hidden="true" href="#cb9-4" tabindex="-1"></a><span class="co"># Loggers names, main configuration slots</span></span>
|
||||
<span id="cb9-5"><a aria-hidden="true" href="#cb9-5" tabindex="-1"></a><span class="dt">keys </span><span class="ot">=</span><span class="st"> root</span></span>
|
||||
<span id="cb9-6"><a aria-hidden="true" href="#cb9-6" tabindex="-1"></a></span>
|
||||
<span id="cb9-7"><a aria-hidden="true" href="#cb9-7" tabindex="-1"></a><span class="kw">[handlers]</span></span>
|
||||
<span id="cb9-8"><a aria-hidden="true" href="#cb9-8" tabindex="-1"></a><span class="co"># Logging handlers, defining logging output methods</span></span>
|
||||
<span id="cb9-9"><a aria-hidden="true" href="#cb9-9" tabindex="-1"></a><span class="dt">keys </span><span class="ot">=</span><span class="st"> console,file</span></span>
|
||||
<span id="cb9-10"><a aria-hidden="true" href="#cb9-10" tabindex="-1"></a></span>
|
||||
<span id="cb9-11"><a aria-hidden="true" href="#cb9-11" tabindex="-1"></a><span class="kw">[formatters]</span></span>
|
||||
<span id="cb9-12"><a aria-hidden="true" href="#cb9-12" tabindex="-1"></a><span class="co"># Logging formatters</span></span>
|
||||
<span id="cb9-13"><a aria-hidden="true" href="#cb9-13" tabindex="-1"></a><span class="dt">keys </span><span class="ot">=</span><span class="st"> simple,full</span></span>
|
||||
<span id="cb9-14"><a aria-hidden="true" href="#cb9-14" tabindex="-1"></a></span>
|
||||
<span id="cb9-15"><a aria-hidden="true" href="#cb9-15" tabindex="-1"></a></span>
|
||||
<span id="cb9-16"><a aria-hidden="true" href="#cb9-16" tabindex="-1"></a><span class="co"># Loggers</span></span>
|
||||
<span id="cb9-17"><a aria-hidden="true" href="#cb9-17" tabindex="-1"></a></span>
|
||||
<span id="cb9-18"><a aria-hidden="true" href="#cb9-18" tabindex="-1"></a><span class="kw">[logger_root]</span></span>
|
||||
<span id="cb9-19"><a aria-hidden="true" href="#cb9-19" tabindex="-1"></a><span class="co"># Root logger</span></span>
|
||||
<span id="cb9-20"><a aria-hidden="true" href="#cb9-20" tabindex="-1"></a><span class="dt">level </span><span class="ot">=</span><span class="st"> DEBUG</span></span>
|
||||
<span id="cb9-21"><a aria-hidden="true" href="#cb9-21" tabindex="-1"></a><span class="dt">handlers </span><span class="ot">=</span><span class="st"> console,file</span></span>
|
||||
<span id="cb9-22"><a aria-hidden="true" href="#cb9-22" tabindex="-1"></a></span>
|
||||
<span id="cb9-23"><a aria-hidden="true" href="#cb9-23" tabindex="-1"></a></span>
|
||||
<span id="cb9-24"><a aria-hidden="true" href="#cb9-24" tabindex="-1"></a><span class="co"># Handlers</span></span>
|
||||
<span id="cb9-25"><a aria-hidden="true" href="#cb9-25" tabindex="-1"></a></span>
|
||||
<span id="cb9-26"><a aria-hidden="true" href="#cb9-26" tabindex="-1"></a><span class="kw">[handler_console]</span></span>
|
||||
<span id="cb9-27"><a aria-hidden="true" href="#cb9-27" tabindex="-1"></a><span class="co"># Console handler</span></span>
|
||||
<span id="cb9-28"><a aria-hidden="true" href="#cb9-28" tabindex="-1"></a><span class="dt">class </span><span class="ot">=</span><span class="st"> StreamHandler</span></span>
|
||||
<span id="cb9-29"><a aria-hidden="true" href="#cb9-29" tabindex="-1"></a><span class="dt">level </span><span class="ot">=</span><span class="st"> INFO</span></span>
|
||||
<span id="cb9-30"><a aria-hidden="true" href="#cb9-30" tabindex="-1"></a><span class="dt">args </span><span class="ot">=</span><span class="st"> (sys.stdout,)</span></span>
|
||||
<span id="cb9-31"><a aria-hidden="true" href="#cb9-31" tabindex="-1"></a><span class="dt">formatter </span><span class="ot">=</span><span class="st"> simple</span></span>
|
||||
<span id="cb9-32"><a aria-hidden="true" href="#cb9-32" tabindex="-1"></a></span>
|
||||
<span id="cb9-33"><a aria-hidden="true" href="#cb9-33" tabindex="-1"></a><span class="kw">[handler_file]</span></span>
|
||||
<span id="cb9-34"><a aria-hidden="true" href="#cb9-34" tabindex="-1"></a><span class="co"># File handler</span></span>
|
||||
<span id="cb9-35"><a aria-hidden="true" href="#cb9-35" tabindex="-1"></a><span class="dt">class </span><span class="ot">=</span><span class="st"> FileHandler</span></span>
|
||||
<span id="cb9-36"><a aria-hidden="true" href="#cb9-36" tabindex="-1"></a><span class="dt">args </span><span class="ot">=</span><span class="st"> ('/var/log/radicale',)</span></span>
|
||||
<span id="cb9-37"><a aria-hidden="true" href="#cb9-37" tabindex="-1"></a><span class="dt">formatter </span><span class="ot">=</span><span class="st"> full</span></span>
|
||||
<span id="cb9-38"><a aria-hidden="true" href="#cb9-38" tabindex="-1"></a></span>
|
||||
<span id="cb9-39"><a aria-hidden="true" href="#cb9-39" tabindex="-1"></a></span>
|
||||
<span id="cb9-40"><a aria-hidden="true" href="#cb9-40" tabindex="-1"></a><span class="co"># Formatters</span></span>
|
||||
<span id="cb9-41"><a aria-hidden="true" href="#cb9-41" tabindex="-1"></a></span>
|
||||
<span id="cb9-42"><a aria-hidden="true" href="#cb9-42" tabindex="-1"></a><span class="kw">[formatter_simple]</span></span>
|
||||
<span id="cb9-43"><a aria-hidden="true" href="#cb9-43" tabindex="-1"></a><span class="co"># Simple output format</span></span>
|
||||
<span id="cb9-44"><a aria-hidden="true" href="#cb9-44" tabindex="-1"></a><span class="dt">format </span><span class="ot">=</span><span class="st"> %(message)s</span></span>
|
||||
<span id="cb9-45"><a aria-hidden="true" href="#cb9-45" tabindex="-1"></a></span>
|
||||
<span id="cb9-46"><a aria-hidden="true" href="#cb9-46" tabindex="-1"></a><span class="kw">[formatter_full]</span></span>
|
||||
<span id="cb9-47"><a aria-hidden="true" href="#cb9-47" tabindex="-1"></a><span class="co"># Full output format</span></span>
|
||||
<span id="cb9-48"><a aria-hidden="true" href="#cb9-48" tabindex="-1"></a><span class="dt">format </span><span class="ot">=</span><span class="st"> %(asctime)s - %(levelname)s: %(message)s</span></span></code></pre></div>
|
||||
</section>
|
||||
<section class="level6" id="documentation/user-documentation/complex-configuration/configuring-the-server/command-line-options">
|
||||
<h6>Command Line Options <a class="headerlink" href="#documentation/user-documentation/complex-configuration/configuring-the-server/command-line-options">¶</a></h6>
|
||||
|
@ -978,27 +978,27 @@ After installing and accepting it you should restart your browser.</p>
|
|||
<h6>Apache and mod_wsgi <a class="headerlink" href="#documentation/user-documentation/complex-configuration/wsgi-cgi-and-fastcgi/apache-and-mod_wsgi">¶</a></h6>
|
||||
<p>To use Radicale with Apache's <code>mod_wsgi</code>, you first have to install the Radicale module in your Python path and write your <code>.wsgi</code> file (in <code>/var/www</code> for example):</p>
|
||||
<div class="sourceCode" id="cb11"><pre class="sourceCode python"><code class="sourceCode python"><span id="cb11-1"><a aria-hidden="true" href="#cb11-1" tabindex="-1"></a><span class="im">import</span> radicale</span>
|
||||
<span id="cb11-2"><a aria-hidden="true" href="#cb11-2" tabindex="-1"></a>radicale.log.start()</span>
|
||||
<span id="cb11-3"><a aria-hidden="true" href="#cb11-3" tabindex="-1"></a>application <span class="op">=</span> radicale.Application()</span></code></pre></div>
|
||||
<span id="cb11-2"><a aria-hidden="true" href="#cb11-2" tabindex="-1"></a>radicale.log.start()</span>
|
||||
<span id="cb11-3"><a aria-hidden="true" href="#cb11-3" tabindex="-1"></a>application <span class="op">=</span> radicale.Application()</span></code></pre></div>
|
||||
<blockquote>
|
||||
<p><strong>Note</strong></p>
|
||||
<p>The <code>hosts</code>, <code>daemon</code>, <code>pid</code>, <code>ssl</code>, <code>certificate</code>, <code>key</code>, <code>protocol</code> and <code>ciphers</code> keys of the <code>[server]</code> part of the configuration are ignored.</p>
|
||||
</blockquote>
|
||||
<p>Next you have to create the Apache virtual host (adapt the configuration to your environment):</p>
|
||||
<div class="sourceCode" id="cb12"><pre class="sourceCode apache"><code class="sourceCode apache"><span id="cb12-1"><a aria-hidden="true" href="#cb12-1" tabindex="-1"></a><span class="fu"><VirtualHost</span><span class="at"> *:80</span><span class="fu">></span></span>
|
||||
<span id="cb12-2"><a aria-hidden="true" href="#cb12-2" tabindex="-1"></a> ServerName<span class="st"> cal.yourdomain.org</span></span>
|
||||
<span id="cb12-3"><a aria-hidden="true" href="#cb12-3" tabindex="-1"></a></span>
|
||||
<span id="cb12-4"><a aria-hidden="true" href="#cb12-4" tabindex="-1"></a> WSGIDaemonProcess radicale user<span class="st">=www-data group=www-data threads=1</span></span>
|
||||
<span id="cb12-5"><a aria-hidden="true" href="#cb12-5" tabindex="-1"></a> WSGIScriptAlias / /var/www/radicale.wsgi</span>
|
||||
<span id="cb12-6"><a aria-hidden="true" href="#cb12-6" tabindex="-1"></a></span>
|
||||
<span id="cb12-7"><a aria-hidden="true" href="#cb12-7" tabindex="-1"></a> <span class="fu"><Directory</span><span class="at"> /var/www</span><span class="fu">></span></span>
|
||||
<span id="cb12-8"><a aria-hidden="true" href="#cb12-8" tabindex="-1"></a> WSGIProcessGroup radicale</span>
|
||||
<span id="cb12-9"><a aria-hidden="true" href="#cb12-9" tabindex="-1"></a> WSGIApplicationGroup %{GLOBAL}</span>
|
||||
<span id="cb12-10"><a aria-hidden="true" href="#cb12-10" tabindex="-1"></a> <span class="ex">AllowOverride</span><span class="ch"> </span><span class="kw">None</span></span>
|
||||
<span id="cb12-11"><a aria-hidden="true" href="#cb12-11" tabindex="-1"></a> <span class="ex">Order</span><span class="ch"> </span><span class="kw">allow,deny</span></span>
|
||||
<span id="cb12-12"><a aria-hidden="true" href="#cb12-12" tabindex="-1"></a> allow<span class="st"> from all</span></span>
|
||||
<span id="cb12-13"><a aria-hidden="true" href="#cb12-13" tabindex="-1"></a> <span class="fu"></Directory></span></span>
|
||||
<span id="cb12-14"><a aria-hidden="true" href="#cb12-14" tabindex="-1"></a><span class="fu"></VirtualHost></span></span></code></pre></div>
|
||||
<span id="cb12-2"><a aria-hidden="true" href="#cb12-2" tabindex="-1"></a> ServerName<span class="st"> cal.yourdomain.org</span></span>
|
||||
<span id="cb12-3"><a aria-hidden="true" href="#cb12-3" tabindex="-1"></a></span>
|
||||
<span id="cb12-4"><a aria-hidden="true" href="#cb12-4" tabindex="-1"></a> WSGIDaemonProcess radicale user<span class="st">=www-data group=www-data threads=1</span></span>
|
||||
<span id="cb12-5"><a aria-hidden="true" href="#cb12-5" tabindex="-1"></a> WSGIScriptAlias / /var/www/radicale.wsgi</span>
|
||||
<span id="cb12-6"><a aria-hidden="true" href="#cb12-6" tabindex="-1"></a></span>
|
||||
<span id="cb12-7"><a aria-hidden="true" href="#cb12-7" tabindex="-1"></a> <span class="fu"><Directory</span><span class="at"> /var/www</span><span class="fu">></span></span>
|
||||
<span id="cb12-8"><a aria-hidden="true" href="#cb12-8" tabindex="-1"></a> WSGIProcessGroup radicale</span>
|
||||
<span id="cb12-9"><a aria-hidden="true" href="#cb12-9" tabindex="-1"></a> WSGIApplicationGroup %{GLOBAL}</span>
|
||||
<span id="cb12-10"><a aria-hidden="true" href="#cb12-10" tabindex="-1"></a> <span class="ex">AllowOverride</span><span class="ch"> </span><span class="kw">None</span></span>
|
||||
<span id="cb12-11"><a aria-hidden="true" href="#cb12-11" tabindex="-1"></a> <span class="ex">Order</span><span class="ch"> </span><span class="kw">allow,deny</span></span>
|
||||
<span id="cb12-12"><a aria-hidden="true" href="#cb12-12" tabindex="-1"></a> allow<span class="st"> from all</span></span>
|
||||
<span id="cb12-13"><a aria-hidden="true" href="#cb12-13" tabindex="-1"></a> <span class="fu"></Directory></span></span>
|
||||
<span id="cb12-14"><a aria-hidden="true" href="#cb12-14" tabindex="-1"></a><span class="fu"></VirtualHost></span></span></code></pre></div>
|
||||
<blockquote>
|
||||
<p><strong>Warning</strong></p>
|
||||
<p>You should use the root of the (sub)domain (<code>WSGIScriptAlias /</code>), else some CalDAV features may not work.</p>
|
||||
|
@ -1007,28 +1007,28 @@ After installing and accepting it you should restart your browser.</p>
|
|||
<p>Deactivate any rights and module in Radicale and use your favourite Apache authentication backend. You can then restrict the access: allow the <code>alice</code> user to access <code>/alice/*</code> URLs, and everything should work as expected.</p>
|
||||
<p>Here is one example of Apache configuration file:</p>
|
||||
<div class="sourceCode" id="cb13"><pre class="sourceCode apache"><code class="sourceCode apache"><span id="cb13-1"><a aria-hidden="true" href="#cb13-1" tabindex="-1"></a><span class="fu"><VirtualHost</span><span class="at"> *:80</span><span class="fu">></span></span>
|
||||
<span id="cb13-2"><a aria-hidden="true" href="#cb13-2" tabindex="-1"></a> ServerName<span class="st"> radicale.local</span></span>
|
||||
<span id="cb13-3"><a aria-hidden="true" href="#cb13-3" tabindex="-1"></a></span>
|
||||
<span id="cb13-4"><a aria-hidden="true" href="#cb13-4" tabindex="-1"></a> WSGIDaemonProcess radicale user<span class="st">=radicale group=radicale threads=1</span></span>
|
||||
<span id="cb13-5"><a aria-hidden="true" href="#cb13-5" tabindex="-1"></a> WSGIScriptAlias / /usr/share/radicale/radicale.wsgi</span>
|
||||
<span id="cb13-6"><a aria-hidden="true" href="#cb13-6" tabindex="-1"></a></span>
|
||||
<span id="cb13-7"><a aria-hidden="true" href="#cb13-7" tabindex="-1"></a> <span class="fu"><Directory</span><span class="at"> /usr/share/radicale/</span><span class="fu">></span></span>
|
||||
<span id="cb13-8"><a aria-hidden="true" href="#cb13-8" tabindex="-1"></a> WSGIProcessGroup radicale</span>
|
||||
<span id="cb13-9"><a aria-hidden="true" href="#cb13-9" tabindex="-1"></a> WSGIApplicationGroup %{GLOBAL}</span>
|
||||
<span id="cb13-10"><a aria-hidden="true" href="#cb13-10" tabindex="-1"></a></span>
|
||||
<span id="cb13-11"><a aria-hidden="true" href="#cb13-11" tabindex="-1"></a> <span class="ex">AuthType</span><span class="ch"> </span><span class="kw">Basic</span></span>
|
||||
<span id="cb13-12"><a aria-hidden="true" href="#cb13-12" tabindex="-1"></a> AuthName<span class="st"> "Radicale Authentication"</span></span>
|
||||
<span id="cb13-13"><a aria-hidden="true" href="#cb13-13" tabindex="-1"></a> AuthBasicProvider<span class="st"> file</span></span>
|
||||
<span id="cb13-14"><a aria-hidden="true" href="#cb13-14" tabindex="-1"></a> AuthUserFile<span class="st"> /usr/share/radicale/radicale.passwd</span></span>
|
||||
<span id="cb13-15"><a aria-hidden="true" href="#cb13-15" tabindex="-1"></a></span>
|
||||
<span id="cb13-16"><a aria-hidden="true" href="#cb13-16" tabindex="-1"></a> <span class="ex">AllowOverride</span><span class="ch"> </span><span class="kw">None</span></span>
|
||||
<span id="cb13-17"><a aria-hidden="true" href="#cb13-17" tabindex="-1"></a> Require<span class="st"> valid-user</span></span>
|
||||
<span id="cb13-18"><a aria-hidden="true" href="#cb13-18" tabindex="-1"></a></span>
|
||||
<span id="cb13-19"><a aria-hidden="true" href="#cb13-19" tabindex="-1"></a> <span class="ex">RewriteEngine</span><span class="ch"> </span><span class="kw">On</span></span>
|
||||
<span id="cb13-20"><a aria-hidden="true" href="#cb13-20" tabindex="-1"></a> RewriteCond<span class="st"> %{REMOTE_USER}%{PATH_INFO} !^([^/]+/)\1</span></span>
|
||||
<span id="cb13-21"><a aria-hidden="true" href="#cb13-21" tabindex="-1"></a> RewriteRule<span class="st"> .* - [Forbidden]</span></span>
|
||||
<span id="cb13-22"><a aria-hidden="true" href="#cb13-22" tabindex="-1"></a> <span class="fu"></Directory></span></span>
|
||||
<span id="cb13-23"><a aria-hidden="true" href="#cb13-23" tabindex="-1"></a><span class="fu"></VirtualHost></span></span></code></pre></div>
|
||||
<span id="cb13-2"><a aria-hidden="true" href="#cb13-2" tabindex="-1"></a> ServerName<span class="st"> radicale.local</span></span>
|
||||
<span id="cb13-3"><a aria-hidden="true" href="#cb13-3" tabindex="-1"></a></span>
|
||||
<span id="cb13-4"><a aria-hidden="true" href="#cb13-4" tabindex="-1"></a> WSGIDaemonProcess radicale user<span class="st">=radicale group=radicale threads=1</span></span>
|
||||
<span id="cb13-5"><a aria-hidden="true" href="#cb13-5" tabindex="-1"></a> WSGIScriptAlias / /usr/share/radicale/radicale.wsgi</span>
|
||||
<span id="cb13-6"><a aria-hidden="true" href="#cb13-6" tabindex="-1"></a></span>
|
||||
<span id="cb13-7"><a aria-hidden="true" href="#cb13-7" tabindex="-1"></a> <span class="fu"><Directory</span><span class="at"> /usr/share/radicale/</span><span class="fu">></span></span>
|
||||
<span id="cb13-8"><a aria-hidden="true" href="#cb13-8" tabindex="-1"></a> WSGIProcessGroup radicale</span>
|
||||
<span id="cb13-9"><a aria-hidden="true" href="#cb13-9" tabindex="-1"></a> WSGIApplicationGroup %{GLOBAL}</span>
|
||||
<span id="cb13-10"><a aria-hidden="true" href="#cb13-10" tabindex="-1"></a></span>
|
||||
<span id="cb13-11"><a aria-hidden="true" href="#cb13-11" tabindex="-1"></a> <span class="ex">AuthType</span><span class="ch"> </span><span class="kw">Basic</span></span>
|
||||
<span id="cb13-12"><a aria-hidden="true" href="#cb13-12" tabindex="-1"></a> AuthName<span class="st"> "Radicale Authentication"</span></span>
|
||||
<span id="cb13-13"><a aria-hidden="true" href="#cb13-13" tabindex="-1"></a> AuthBasicProvider<span class="st"> file</span></span>
|
||||
<span id="cb13-14"><a aria-hidden="true" href="#cb13-14" tabindex="-1"></a> AuthUserFile<span class="st"> /usr/share/radicale/radicale.passwd</span></span>
|
||||
<span id="cb13-15"><a aria-hidden="true" href="#cb13-15" tabindex="-1"></a></span>
|
||||
<span id="cb13-16"><a aria-hidden="true" href="#cb13-16" tabindex="-1"></a> <span class="ex">AllowOverride</span><span class="ch"> </span><span class="kw">None</span></span>
|
||||
<span id="cb13-17"><a aria-hidden="true" href="#cb13-17" tabindex="-1"></a> Require<span class="st"> valid-user</span></span>
|
||||
<span id="cb13-18"><a aria-hidden="true" href="#cb13-18" tabindex="-1"></a></span>
|
||||
<span id="cb13-19"><a aria-hidden="true" href="#cb13-19" tabindex="-1"></a> <span class="ex">RewriteEngine</span><span class="ch"> </span><span class="kw">On</span></span>
|
||||
<span id="cb13-20"><a aria-hidden="true" href="#cb13-20" tabindex="-1"></a> RewriteCond<span class="st"> %{REMOTE_USER}%{PATH_INFO} !^([^/]+/)\1</span></span>
|
||||
<span id="cb13-21"><a aria-hidden="true" href="#cb13-21" tabindex="-1"></a> RewriteRule<span class="st"> .* - [Forbidden]</span></span>
|
||||
<span id="cb13-22"><a aria-hidden="true" href="#cb13-22" tabindex="-1"></a> <span class="fu"></Directory></span></span>
|
||||
<span id="cb13-23"><a aria-hidden="true" href="#cb13-23" tabindex="-1"></a><span class="fu"></VirtualHost></span></span></code></pre></div>
|
||||
<p>If you're still convinced that access control is better with Radicale, you have to add <code>WSGIPassAuthorization On</code> in your Apache configuration files, as explained in <a href="http://code.google.com/p/modwsgi/wiki/ConfigurationGuidelines#User_Authentication">the mod_wsgi documentation</a>.</p>
|
||||
<blockquote>
|
||||
<p><strong>Note</strong></p>
|
||||
|
@ -1084,45 +1084,45 @@ After installing and accepting it you should restart your browser.</p>
|
|||
<p>Leading or ending slashes are trimmed from collection's path.</p>
|
||||
<p>Example:</p>
|
||||
<div class="sourceCode" id="cb14"><pre class="sourceCode ini"><code class="sourceCode ini"><span id="cb14-1"><a aria-hidden="true" href="#cb14-1" tabindex="-1"></a><span class="co"># The default path for this kind of files is ~/.config/radicale/rights</span></span>
|
||||
<span id="cb14-2"><a aria-hidden="true" href="#cb14-2" tabindex="-1"></a><span class="co"># This can be changed in the configuration file</span></span>
|
||||
<span id="cb14-3"><a aria-hidden="true" href="#cb14-3" tabindex="-1"></a><span class="co">#</span></span>
|
||||
<span id="cb14-4"><a aria-hidden="true" href="#cb14-4" tabindex="-1"></a><span class="co"># This file gives independant examples to help users write their own</span></span>
|
||||
<span id="cb14-5"><a aria-hidden="true" href="#cb14-5" tabindex="-1"></a><span class="co"># configuration files. Using these examples together in the same configuration</span></span>
|
||||
<span id="cb14-6"><a aria-hidden="true" href="#cb14-6" tabindex="-1"></a><span class="co"># file is meaningless.</span></span>
|
||||
<span id="cb14-7"><a aria-hidden="true" href="#cb14-7" tabindex="-1"></a><span class="co">#</span></span>
|
||||
<span id="cb14-8"><a aria-hidden="true" href="#cb14-8" tabindex="-1"></a><span class="co"># The first rule matching both user and collection patterns will be returned.</span></span>
|
||||
<span id="cb14-9"><a aria-hidden="true" href="#cb14-9" tabindex="-1"></a></span>
|
||||
<span id="cb14-10"><a aria-hidden="true" href="#cb14-10" tabindex="-1"></a><span class="co"># This means all users starting with "admin" may read any collection</span></span>
|
||||
<span id="cb14-11"><a aria-hidden="true" href="#cb14-11" tabindex="-1"></a><span class="kw">[admin]</span></span>
|
||||
<span id="cb14-12"><a aria-hidden="true" href="#cb14-12" tabindex="-1"></a><span class="dt">user: ^admin.*$</span></span>
|
||||
<span id="cb14-13"><a aria-hidden="true" href="#cb14-13" tabindex="-1"></a><span class="dt">collection: .*</span></span>
|
||||
<span id="cb14-14"><a aria-hidden="true" href="#cb14-14" tabindex="-1"></a><span class="dt">permission: r</span></span>
|
||||
<span id="cb14-15"><a aria-hidden="true" href="#cb14-15" tabindex="-1"></a></span>
|
||||
<span id="cb14-16"><a aria-hidden="true" href="#cb14-16" tabindex="-1"></a><span class="co"># This means all users may read and write any collection starting with public.</span></span>
|
||||
<span id="cb14-17"><a aria-hidden="true" href="#cb14-17" tabindex="-1"></a><span class="co"># We do so by just not testing against the user string.</span></span>
|
||||
<span id="cb14-18"><a aria-hidden="true" href="#cb14-18" tabindex="-1"></a><span class="kw">[public]</span></span>
|
||||
<span id="cb14-19"><a aria-hidden="true" href="#cb14-19" tabindex="-1"></a><span class="dt">user: .*</span></span>
|
||||
<span id="cb14-20"><a aria-hidden="true" href="#cb14-20" tabindex="-1"></a><span class="dt">collection: ^public(/.+)?$</span></span>
|
||||
<span id="cb14-21"><a aria-hidden="true" href="#cb14-21" tabindex="-1"></a><span class="dt">permission: rw</span></span>
|
||||
<span id="cb14-22"><a aria-hidden="true" href="#cb14-22" tabindex="-1"></a></span>
|
||||
<span id="cb14-23"><a aria-hidden="true" href="#cb14-23" tabindex="-1"></a><span class="co"># A little more complex: give read access to users from a domain for all</span></span>
|
||||
<span id="cb14-24"><a aria-hidden="true" href="#cb14-24" tabindex="-1"></a><span class="co"># collections of all the users (ie. user@domain.tld can read domain/*).</span></span>
|
||||
<span id="cb14-25"><a aria-hidden="true" href="#cb14-25" tabindex="-1"></a><span class="kw">[domain-wide-access]</span></span>
|
||||
<span id="cb14-26"><a aria-hidden="true" href="#cb14-26" tabindex="-1"></a><span class="dt">user: ^.+@(.+)\..+$</span></span>
|
||||
<span id="cb14-27"><a aria-hidden="true" href="#cb14-27" tabindex="-1"></a><span class="dt">collection: ^{0}/.+$</span></span>
|
||||
<span id="cb14-28"><a aria-hidden="true" href="#cb14-28" tabindex="-1"></a><span class="dt">permission: r</span></span>
|
||||
<span id="cb14-29"><a aria-hidden="true" href="#cb14-29" tabindex="-1"></a></span>
|
||||
<span id="cb14-30"><a aria-hidden="true" href="#cb14-30" tabindex="-1"></a><span class="co"># Allow authenticated user to read all collections</span></span>
|
||||
<span id="cb14-31"><a aria-hidden="true" href="#cb14-31" tabindex="-1"></a><span class="kw">[allow-everyone-read]</span></span>
|
||||
<span id="cb14-32"><a aria-hidden="true" href="#cb14-32" tabindex="-1"></a><span class="dt">user: .+</span></span>
|
||||
<span id="cb14-33"><a aria-hidden="true" href="#cb14-33" tabindex="-1"></a><span class="dt">collection: .*</span></span>
|
||||
<span id="cb14-34"><a aria-hidden="true" href="#cb14-34" tabindex="-1"></a><span class="dt">permission: r</span></span>
|
||||
<span id="cb14-35"><a aria-hidden="true" href="#cb14-35" tabindex="-1"></a></span>
|
||||
<span id="cb14-36"><a aria-hidden="true" href="#cb14-36" tabindex="-1"></a><span class="co"># Give write access to owners</span></span>
|
||||
<span id="cb14-37"><a aria-hidden="true" href="#cb14-37" tabindex="-1"></a><span class="kw">[owner-write]</span></span>
|
||||
<span id="cb14-38"><a aria-hidden="true" href="#cb14-38" tabindex="-1"></a><span class="dt">user: .+</span></span>
|
||||
<span id="cb14-39"><a aria-hidden="true" href="#cb14-39" tabindex="-1"></a><span class="dt">collection: ^%(login)s/.*$</span></span>
|
||||
<span id="cb14-40"><a aria-hidden="true" href="#cb14-40" tabindex="-1"></a><span class="dt">permission: w</span></span></code></pre></div>
|
||||
<span id="cb14-2"><a aria-hidden="true" href="#cb14-2" tabindex="-1"></a><span class="co"># This can be changed in the configuration file</span></span>
|
||||
<span id="cb14-3"><a aria-hidden="true" href="#cb14-3" tabindex="-1"></a><span class="co">#</span></span>
|
||||
<span id="cb14-4"><a aria-hidden="true" href="#cb14-4" tabindex="-1"></a><span class="co"># This file gives independant examples to help users write their own</span></span>
|
||||
<span id="cb14-5"><a aria-hidden="true" href="#cb14-5" tabindex="-1"></a><span class="co"># configuration files. Using these examples together in the same configuration</span></span>
|
||||
<span id="cb14-6"><a aria-hidden="true" href="#cb14-6" tabindex="-1"></a><span class="co"># file is meaningless.</span></span>
|
||||
<span id="cb14-7"><a aria-hidden="true" href="#cb14-7" tabindex="-1"></a><span class="co">#</span></span>
|
||||
<span id="cb14-8"><a aria-hidden="true" href="#cb14-8" tabindex="-1"></a><span class="co"># The first rule matching both user and collection patterns will be returned.</span></span>
|
||||
<span id="cb14-9"><a aria-hidden="true" href="#cb14-9" tabindex="-1"></a></span>
|
||||
<span id="cb14-10"><a aria-hidden="true" href="#cb14-10" tabindex="-1"></a><span class="co"># This means all users starting with "admin" may read any collection</span></span>
|
||||
<span id="cb14-11"><a aria-hidden="true" href="#cb14-11" tabindex="-1"></a><span class="kw">[admin]</span></span>
|
||||
<span id="cb14-12"><a aria-hidden="true" href="#cb14-12" tabindex="-1"></a><span class="dt">user: ^admin.*$</span></span>
|
||||
<span id="cb14-13"><a aria-hidden="true" href="#cb14-13" tabindex="-1"></a><span class="dt">collection: .*</span></span>
|
||||
<span id="cb14-14"><a aria-hidden="true" href="#cb14-14" tabindex="-1"></a><span class="dt">permission: r</span></span>
|
||||
<span id="cb14-15"><a aria-hidden="true" href="#cb14-15" tabindex="-1"></a></span>
|
||||
<span id="cb14-16"><a aria-hidden="true" href="#cb14-16" tabindex="-1"></a><span class="co"># This means all users may read and write any collection starting with public.</span></span>
|
||||
<span id="cb14-17"><a aria-hidden="true" href="#cb14-17" tabindex="-1"></a><span class="co"># We do so by just not testing against the user string.</span></span>
|
||||
<span id="cb14-18"><a aria-hidden="true" href="#cb14-18" tabindex="-1"></a><span class="kw">[public]</span></span>
|
||||
<span id="cb14-19"><a aria-hidden="true" href="#cb14-19" tabindex="-1"></a><span class="dt">user: .*</span></span>
|
||||
<span id="cb14-20"><a aria-hidden="true" href="#cb14-20" tabindex="-1"></a><span class="dt">collection: ^public(/.+)?$</span></span>
|
||||
<span id="cb14-21"><a aria-hidden="true" href="#cb14-21" tabindex="-1"></a><span class="dt">permission: rw</span></span>
|
||||
<span id="cb14-22"><a aria-hidden="true" href="#cb14-22" tabindex="-1"></a></span>
|
||||
<span id="cb14-23"><a aria-hidden="true" href="#cb14-23" tabindex="-1"></a><span class="co"># A little more complex: give read access to users from a domain for all</span></span>
|
||||
<span id="cb14-24"><a aria-hidden="true" href="#cb14-24" tabindex="-1"></a><span class="co"># collections of all the users (ie. user@domain.tld can read domain/*).</span></span>
|
||||
<span id="cb14-25"><a aria-hidden="true" href="#cb14-25" tabindex="-1"></a><span class="kw">[domain-wide-access]</span></span>
|
||||
<span id="cb14-26"><a aria-hidden="true" href="#cb14-26" tabindex="-1"></a><span class="dt">user: ^.+@(.+)\..+$</span></span>
|
||||
<span id="cb14-27"><a aria-hidden="true" href="#cb14-27" tabindex="-1"></a><span class="dt">collection: ^{0}/.+$</span></span>
|
||||
<span id="cb14-28"><a aria-hidden="true" href="#cb14-28" tabindex="-1"></a><span class="dt">permission: r</span></span>
|
||||
<span id="cb14-29"><a aria-hidden="true" href="#cb14-29" tabindex="-1"></a></span>
|
||||
<span id="cb14-30"><a aria-hidden="true" href="#cb14-30" tabindex="-1"></a><span class="co"># Allow authenticated user to read all collections</span></span>
|
||||
<span id="cb14-31"><a aria-hidden="true" href="#cb14-31" tabindex="-1"></a><span class="kw">[allow-everyone-read]</span></span>
|
||||
<span id="cb14-32"><a aria-hidden="true" href="#cb14-32" tabindex="-1"></a><span class="dt">user: .+</span></span>
|
||||
<span id="cb14-33"><a aria-hidden="true" href="#cb14-33" tabindex="-1"></a><span class="dt">collection: .*</span></span>
|
||||
<span id="cb14-34"><a aria-hidden="true" href="#cb14-34" tabindex="-1"></a><span class="dt">permission: r</span></span>
|
||||
<span id="cb14-35"><a aria-hidden="true" href="#cb14-35" tabindex="-1"></a></span>
|
||||
<span id="cb14-36"><a aria-hidden="true" href="#cb14-36" tabindex="-1"></a><span class="co"># Give write access to owners</span></span>
|
||||
<span id="cb14-37"><a aria-hidden="true" href="#cb14-37" tabindex="-1"></a><span class="kw">[owner-write]</span></span>
|
||||
<span id="cb14-38"><a aria-hidden="true" href="#cb14-38" tabindex="-1"></a><span class="dt">user: .+</span></span>
|
||||
<span id="cb14-39"><a aria-hidden="true" href="#cb14-39" tabindex="-1"></a><span class="dt">collection: ^%(login)s/.*$</span></span>
|
||||
<span id="cb14-40"><a aria-hidden="true" href="#cb14-40" tabindex="-1"></a><span class="dt">permission: w</span></span></code></pre></div>
|
||||
</section>
|
||||
</section>
|
||||
<section class="level5" id="documentation/user-documentation/complex-configuration/git-support">
|
||||
|
@ -1318,21 +1318,21 @@ After installing and accepting it you should restart your browser.</p>
|
|||
<p>The package offers 8 modules.</p>
|
||||
<ul>
|
||||
<li><p><code>__main__</code><br>
|
||||
The main module provides a simple function called <code>run</code>. Its main work is to read the configuration from the configuration file and from the options given in the command line; then it creates a server, according to the configuration.</p></li>
|
||||
The main module provides a simple function called <code>run</code>. Its main work is to read the configuration from the configuration file and from the options given in the command line; then it creates a server, according to the configuration.</p></li>
|
||||
<li><p><code>__init__</code><br>
|
||||
This is the core part of the module, with the code for the CalDAV server. The server inherits from a HTTP or HTTPS server class, which relies on the default HTTP server class given by Python. The code managing the different HTTP requests according to the CalDAV normalization is written here.</p></li>
|
||||
This is the core part of the module, with the code for the CalDAV server. The server inherits from a HTTP or HTTPS server class, which relies on the default HTTP server class given by Python. The code managing the different HTTP requests according to the CalDAV normalization is written here.</p></li>
|
||||
<li><p><code>config</code><br>
|
||||
This part gives a dict-like access to the server configuration, read from the configuration file. The configuration can be altered when launching the executable with some command line options.</p></li>
|
||||
This part gives a dict-like access to the server configuration, read from the configuration file. The configuration can be altered when launching the executable with some command line options.</p></li>
|
||||
<li><p><code>ical</code><br>
|
||||
In this module are written the classes to represent collections and items in Radicale. The simple iCalendar and vCard readers and writers are included in this file. The readers and writers are small and stupid: they do not fully understand the iCalendar format and do not know at all what a date is.</p></li>
|
||||
In this module are written the classes to represent collections and items in Radicale. The simple iCalendar and vCard readers and writers are included in this file. The readers and writers are small and stupid: they do not fully understand the iCalendar format and do not know at all what a date is.</p></li>
|
||||
<li><p><code>xmlutils</code><br>
|
||||
The functions defined in this module are mainly called by the CalDAV server class to read the XML part of the request, read or alter the calendars, and create the XML part of the response. The main part of this code relies on ElementTree.</p></li>
|
||||
The functions defined in this module are mainly called by the CalDAV server class to read the XML part of the request, read or alter the calendars, and create the XML part of the response. The main part of this code relies on ElementTree.</p></li>
|
||||
<li><p><code>log</code><br>
|
||||
The <code>start</code> function provided by this module starts a logging mechanism based on the default Python logging module. Logging options can be stored in a logging configuration file.</p></li>
|
||||
The <code>start</code> function provided by this module starts a logging mechanism based on the default Python logging module. Logging options can be stored in a logging configuration file.</p></li>
|
||||
<li><p><code>acl</code><br>
|
||||
This module is a set of Access Control Lists, a set of methods used by Radicale to manage rights to access the calendars. When the CalDAV server is launched, an Access Control List is chosen in the set, according to the configuration. The HTTP requests are then filtered to restrict the access using a list of login/password-based access controls.</p></li>
|
||||
This module is a set of Access Control Lists, a set of methods used by Radicale to manage rights to access the calendars. When the CalDAV server is launched, an Access Control List is chosen in the set, according to the configuration. The HTTP requests are then filtered to restrict the access using a list of login/password-based access controls.</p></li>
|
||||
<li><p><code>storage</code><br>
|
||||
This folder is a set of storage modules able to read and write collections. Currently there are three storage modules: <code>filesystem</code>, storing each collection into one flat plain-text file, <code>multifilesystem</code>, storing each entries into separates plain-text files, and <code>database</code>, storing entries in a database. <code>filesystem</code> is stable and battle-tested, others are experimentals.</p></li>
|
||||
This folder is a set of storage modules able to read and write collections. Currently there are three storage modules: <code>filesystem</code>, storing each collection into one flat plain-text file, <code>multifilesystem</code>, storing each entries into separates plain-text files, and <code>database</code>, storing entries in a database. <code>filesystem</code> is stable and battle-tested, others are experimentals.</p></li>
|
||||
</ul>
|
||||
<!-- end list -->
|
||||
</section>
|
||||
|
@ -1867,11 +1867,11 @@ This folder is a set of storage modules able to read and write collections. Curr
|
|||
<p>Some features have been added in the git repository during the last weeks, thanks to Jerome and Mariusz!</p>
|
||||
<ul>
|
||||
<li><p>Personal Calendars<br>
|
||||
Calendars accessed through the htpasswd ACL module can now be personal. Thanks to the <code>personal</code> option, a user called <code>bob</code> can access calendars at <code>/bob/*</code> but not to the <code>/alice/*</code> ones.</p></li>
|
||||
Calendars accessed through the htpasswd ACL module can now be personal. Thanks to the <code>personal</code> option, a user called <code>bob</code> can access calendars at <code>/bob/*</code> but not to the <code>/alice/*</code> ones.</p></li>
|
||||
<li><p>HEAD Requests<br>
|
||||
Radicale can now answer HEAD requests. HTTP headers can be retrieved thanks to this request, without getting contents given by the GET requests.</p></li>
|
||||
Radicale can now answer HEAD requests. HTTP headers can be retrieved thanks to this request, without getting contents given by the GET requests.</p></li>
|
||||
<li><p>Last-Modified HTTP header<br>
|
||||
The Last-Modified header gives the last time when the calendar has been modified. This is used by some clients to cache the calendars and not retrieving them if they have not been modified.</p></li>
|
||||
The Last-Modified header gives the last time when the calendar has been modified. This is used by some clients to cache the calendars and not retrieving them if they have not been modified.</p></li>
|
||||
</ul>
|
||||
</section>
|
||||
<section class="level3" id="news/june-14-2010---radicale-03-released">
|
||||
|
@ -1933,9 +1933,9 @@ The Last-Modified header gives the last time when the calendar has been modified
|
|||
<p>HTTPS connections and authentication have been added to Radicale this week. Command-line options and personal configuration files are also ready for test. According to the TODO file included in the package, the next version will finally be 0.2, when sunbird 1.0 is out. Go, Mozilla hackers, go!</p>
|
||||
<ul>
|
||||
<li><p>HTTPS connection<br>
|
||||
HTTPS connections are now available using the standard TLS mechanisms. Give Radicale a private key and a certificate, and your data are now safe.</p></li>
|
||||
HTTPS connections are now available using the standard TLS mechanisms. Give Radicale a private key and a certificate, and your data are now safe.</p></li>
|
||||
<li><p>Authentication<br>
|
||||
A simple authentication architecture is now available, allowing different methods thanks to different modules. The first two modules are <code>fake</code> (no authentication) and <code>htpasswd</code> (authentication with an <code>htpasswd</code> file created by the Apache tool). More methods such as LDAP are coming soon!</p></li>
|
||||
A simple authentication architecture is now available, allowing different methods thanks to different modules. The first two modules are <code>fake</code> (no authentication) and <code>htpasswd</code> (authentication with an <code>htpasswd</code> file created by the Apache tool). More methods such as LDAP are coming soon!</p></li>
|
||||
</ul>
|
||||
</section>
|
||||
<section class="level3" id="news/january-15-2010---ready-for-python-3">
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue