<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.hostsharing.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ita00</id>
	<title>Hostsharing Wiki - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.hostsharing.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ita00"/>
	<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Spezial:Beitr%C3%A4ge/Ita00"/>
	<updated>2026-04-28T19:34:12Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=RadicaleCalDAVServer&amp;diff=4284</id>
		<title>RadicaleCalDAVServer</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=RadicaleCalDAVServer&amp;diff=4284"/>
		<updated>2017-02-11T20:48:54Z</updated>

		<summary type="html">&lt;p&gt;Ita00: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Radicale CalDAV Server =&lt;br /&gt;
&lt;br /&gt;
[http://de.wikipedia.org/wiki/CalDAV CalDAV] ist eine Erweiterung des WebDAV- (und damit des HTTP-) Protokolls, um Kalenderdaten (Termine und Aufgaben) auf einem Server zu speichern.&lt;br /&gt;
&lt;br /&gt;
Apple nutzt diese Protokoll für seine Clients (iCal-Anwendung und Kalender-App auf dem iPhone) und bietet einen entsprechenden Server an. Dadurch gewinnt CalDAV zunehmende Bedeutung.&lt;br /&gt;
&lt;br /&gt;
Wenn man freie Software einsetzen will, bieten sich folgende Anwendungen an:&lt;br /&gt;
* Das [http://www.mozilla.org/projects/calendar/lightning/ Lightning-Plugin] für Thunderbird (unter Linux und Windows)&lt;br /&gt;
* [https://f-droid.org/repository/browse/?fdid=org.gege.caldavsyncadapter CalDAV Sync Adapter] als Android-App zur Synchronisation des Kalenders&lt;br /&gt;
* Der [http://caldavsynchronizer.org/ CaldavSynchronizer] für Outlook &lt;br /&gt;
&lt;br /&gt;
In diesem Artikel wird die Installation eines CalDAV-Server in einem normalen Hostsharing-Paket beschrieben, als leichtgewichtigen Server nutze ich den [http://radicale.org/ Radicale CalDAV Server]. Der Server kann mit Hilfe von Passenger betrieben werden.&lt;br /&gt;
&lt;br /&gt;
In dieser Installationsanleitung wird die Installation für HTTP und HTTPS (Verzeichnisse &amp;quot;app-ssl&amp;quot; und &amp;quot;htdocs-ssl&amp;quot;) parallel vorgenommen. Ihr solltet darauf achten, den CalDAV- / Card-Server im produktiven&lt;br /&gt;
Betrieb immer nur über HTTPS (also mit SSL-/TLS_Verschlüsselung) anzusprechen. Schliesslich werden Passworte und personenbezogene Daten übertragen!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
=== Vorbereitung ===&lt;br /&gt;
&lt;br /&gt;
Ich lege mit HSAdmin einen User &#039;&#039;xyz00-cal&#039;&#039; an und schalte eine Domain &#039;&#039;cal.example.org&#039;&#039; auf.&lt;br /&gt;
&lt;br /&gt;
=== Download und Entpacken des Paketes ===&lt;br /&gt;
&lt;br /&gt;
* Radicale Download: [http://radicale.org/download/], die aktuelle Version beim Schreiben des Artikel: 0.9&lt;br /&gt;
&lt;br /&gt;
als User &#039;&#039;xyz00-cal&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 wget http://pypi.python.org/packages/source/R/Radicale/Radicale-0.9.tar.gz&lt;br /&gt;
 tar xzf Radicale-0.9.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Installation des Python Eggs ===&lt;br /&gt;
&lt;br /&gt;
Die Eggs sollen jeweils im Verzeichnis des aktuellen Users installiert werden. Der Aufruf des Setup-Skripts dazu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 cd ~/Radicale-0.9&lt;br /&gt;
 python setup.py install --user&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach sollten sich im Unterverzeichnis ~/.local/ die entsprechenden Python-Skripte finden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 ls -l ~/.local/bin/ ~/.local/lib/python2.7/site-packages/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/home/pacs/xyz00/users/cal/.local/bin/:&lt;br /&gt;
total 4&lt;br /&gt;
-rwxr-xr-x 1 xyz00-cal xyz00 1001 Dec 28 12:04 radicale&lt;br /&gt;
&lt;br /&gt;
/home/pacs/xyz00/users/cal/.local/lib/python2.6/site-packages/:&lt;br /&gt;
total 12&lt;br /&gt;
-rw-r--r-- 1 xyz00-cal xyz00 1797 Dec 28 12:04 Radicale-0.9.egg-info&lt;br /&gt;
drwxr-xr-x 3 xyz00-cal xyz00 4096 Dec 28 12:04 radicale&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Passenger Konfiguration ===&lt;br /&gt;
&lt;br /&gt;
Wir wechseln in das Domain-Verzeichnis &#039;&#039;~/doms/cal.example.org/&#039;&#039;.&lt;br /&gt;
Dorthin legen wir die folgende Datei an:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;~/doms/cal.example.org/app/passenger_wsgi.py&#039;&#039; und&lt;br /&gt;
&#039;&#039;~/doms/cal.example.org/app-ssl/passenger_wsgi.py&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/env python&lt;br /&gt;
&lt;br /&gt;
import radicale&lt;br /&gt;
&lt;br /&gt;
radicale.log.start()&lt;br /&gt;
application = radicale.Application()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;~/doms/cal.example.org/htdocs/.htaccess&#039;&#039; und&lt;br /&gt;
&#039;&#039;~/doms/cal.example.org/htdocs-ssl/.htaccess&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AuthType Basic&lt;br /&gt;
AuthName &amp;quot;Radicale Calendar Server&amp;quot;&lt;br /&gt;
require valid-user&lt;br /&gt;
AuthUserFile /home/pacs/xyz00/users/cal/.htpasswd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es fehlt noch das Anlegen der &#039;&#039;~/.htpasswd&#039;&#039;-Datei mit den verschlüsselten Passworten der User.&lt;br /&gt;
Dazu rufen wir (für die User &#039;&#039;hans&#039;&#039; und &#039;&#039;franz&#039;&#039;) folgendes Kommando auf (&#039;&#039;htpasswd -c&#039;&#039; erzeugt die Datei):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 htpasswd -c ~/.htpasswd hans&lt;br /&gt;
 htpasswd ~/.htpasswd franz&lt;br /&gt;
 ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An dieser Stelle sollte ein Aufruf von &#039;&#039;https://cal.example.org&#039;&#039; im Browser nach Eingabe des Passwortes für &#039;&#039;hans&#039;&#039; oder &#039;&#039;franz&#039;&#039; die folgende Seite liefern: &#039;&#039;Radicale works!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Radicale Konfiguration ===&lt;br /&gt;
&lt;br /&gt;
Zuletzt bleibt noch die Erstellung einer Konfigurationsdatei für den Radicale-Server.&lt;br /&gt;
Ein Template für die Datei findet Ihr in &#039;&#039;~/Radicale-0.9/config&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Hier der Inhalt meiner &#039;&#039;~/.config/radicale/config&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Config file for Radicale - A simple calendar server&lt;br /&gt;
# Place it into ~/.config/radicale/config (user)&lt;br /&gt;
&lt;br /&gt;
[server]&lt;br /&gt;
base_prefix = /&lt;br /&gt;
can_skip_base_prefix = False&lt;br /&gt;
dns_lookup = False&lt;br /&gt;
&lt;br /&gt;
[encoding]&lt;br /&gt;
request = utf-8&lt;br /&gt;
stock = utf-8&lt;br /&gt;
&lt;br /&gt;
[auth]&lt;br /&gt;
type = None&lt;br /&gt;
&lt;br /&gt;
[rights]&lt;br /&gt;
type = None&lt;br /&gt;
&lt;br /&gt;
[storage]&lt;br /&gt;
type = filesystem&lt;br /&gt;
custom_handler =&lt;br /&gt;
filesystem_folder = ~/.config/radicale/collections&lt;br /&gt;
&lt;br /&gt;
[logging]&lt;br /&gt;
config = ~/.config/radicale/logging&lt;br /&gt;
debug = False&lt;br /&gt;
full_environment = False&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hier der Inhalt meiner &#039;&#039;~/.config/radicale/logging&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[loggers]&lt;br /&gt;
keys = root&lt;br /&gt;
&lt;br /&gt;
[handlers]&lt;br /&gt;
keys = file&lt;br /&gt;
&lt;br /&gt;
[formatters]&lt;br /&gt;
keys = full&lt;br /&gt;
&lt;br /&gt;
[logger_root]&lt;br /&gt;
level = INFO&lt;br /&gt;
handlers = file&lt;br /&gt;
&lt;br /&gt;
[handler_file]&lt;br /&gt;
class = FileHandler&lt;br /&gt;
args = (&#039;/home/pacs/xyz00/users/cal/var/radicale.log&#039;,)&lt;br /&gt;
formatter = full&lt;br /&gt;
&lt;br /&gt;
[formatter_full]&lt;br /&gt;
format = %(asctime)s - %(levelname)s: %(message)s&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Nutzung der Kalender ==&lt;br /&gt;
&lt;br /&gt;
=== Zugriffsrechte ===&lt;br /&gt;
&lt;br /&gt;
Zu diesem Zeitpunkt können die User &#039;&#039;hans&#039;&#039; und &#039;&#039;franz&#039;&#039; jeweils auf alle Kalender zugreifen. In einer größeren Organisation ist das sicher nicht ausreichend.&lt;br /&gt;
&lt;br /&gt;
Im der oben beschriebenen Konfiguration überlässt man die Zugriffskontrolle am besten dem Apache-Webserver. Das kann man einfach über die bereits vorhandene &#039;&#039;.htaccess&#039;&#039;-Datei regeln:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AuthType Basic&lt;br /&gt;
AuthName &amp;quot;Radicale Calendar Server&amp;quot;&lt;br /&gt;
AuthUserFile /home/pacs/xyz00/users/cal/.htpasswd&lt;br /&gt;
&amp;lt;FilesMatch &amp;quot;^hans&amp;quot;&amp;gt;&lt;br /&gt;
require user hans&lt;br /&gt;
&amp;lt;/FilesMatch&amp;gt;&lt;br /&gt;
&amp;lt;FilesMatch &amp;quot;^franz&amp;quot;&amp;gt;&lt;br /&gt;
require user franz&lt;br /&gt;
&amp;lt;/FilesMatch&amp;gt;&lt;br /&gt;
&amp;lt;FilesMatch &amp;quot;^team&amp;quot;&amp;gt;&lt;br /&gt;
require valid-user&lt;br /&gt;
&amp;lt;/FilesMatch&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So können beide User jeweils eigene Kalender anlegen, z.B:&lt;br /&gt;
* /hans/privat&lt;br /&gt;
* /hans/aufgaben&lt;br /&gt;
* /franz/kalender&lt;br /&gt;
&lt;br /&gt;
Unter dem Pseudouser &#039;&#039;team&#039;&#039; können gemeinsame Kalender verwaltet werden:&lt;br /&gt;
* /team/meetings&lt;br /&gt;
* /team/seminarraum&lt;br /&gt;
&lt;br /&gt;
Mit einer zusätzlichen Datei &#039;&#039;.htgroups&#039;&#039; kann man auch komplexere Szenarien implementieren.&lt;br /&gt;
&lt;br /&gt;
=== Client Konfiguration ===&lt;br /&gt;
&lt;br /&gt;
Ich selbst verwende das Lightning-Plugin zu Thunderbird und aCal als Android-App.&lt;br /&gt;
&lt;br /&gt;
==== Lightning ====&lt;br /&gt;
&lt;br /&gt;
Hier kann man jeden einzelnen Kalender mit seiner vollständigen URL abonnieren.&lt;br /&gt;
&lt;br /&gt;
Über die Funktion &amp;quot;Create Calendar&amp;quot;:&lt;br /&gt;
# &amp;quot;On the Network&amp;quot;&lt;br /&gt;
# &amp;quot;CalDAV&amp;quot; mit &amp;quot;Location&amp;quot;: &#039;&#039;https://cal.example.org/franz/privat&#039;&#039;&lt;br /&gt;
# Namen vergeben und Farbe wählen&lt;br /&gt;
# ggf. noch User und Passwort angeben&lt;br /&gt;
# das war&#039;s&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:CalDAV]]&lt;br /&gt;
[[Kategorie:Passenger]]&lt;/div&gt;</summary>
		<author><name>Ita00</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Diskussion:RadicaleCalDAVServer&amp;diff=4283</id>
		<title>Diskussion:RadicaleCalDAVServer</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Diskussion:RadicaleCalDAVServer&amp;diff=4283"/>
		<updated>2017-02-11T20:43:52Z</updated>

		<summary type="html">&lt;p&gt;Ita00: /* Fehler in Beispiel-Config? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Beschwerdeführer droht mit Blacklisting der Anleitung ==&lt;br /&gt;
&lt;br /&gt;
Die Installationsanleitung ist einwandfrei, aber suboptimal.&lt;br /&gt;
&lt;br /&gt;
Wir wurden heute von einem Dritten (Ticket #2015081110000178) darüber in Kenntis gesetzt unter Androhung der Aufnahme in eine Blacklist von Anleitungen, die Nutzer unsichere Konfigurationen empfehlen.&lt;br /&gt;
&lt;br /&gt;
=== Orientierung an den best practices ===&lt;br /&gt;
&lt;br /&gt;
Grundsätzlich ist die Anleitung nicht falsch. Im vorderen Teil ist sie leider unnötig kompliziert. Die Empfehlung - den best practices für Python folgend - lautet eigentlich:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Basiordner anlegen&lt;br /&gt;
$ mkdir radicale&lt;br /&gt;
# und absichern&lt;br /&gt;
$ chmod 700 radicale&lt;br /&gt;
# Virtuelle Python-Umgebung (im Userspace) erzeugen&lt;br /&gt;
$ virtualenv radicale/virtualenv&lt;br /&gt;
# und dort Radicale installieren &lt;br /&gt;
$ radicale/virtualenv/bin/pip install Radicale&lt;br /&gt;
# Ordnerstrukturen erzeugen&lt;br /&gt;
$ mkdir radicale/application/etc radicale/application/log radicale/application/data&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man erhält so eine klare Trennung zwischen der Installation der Software nebst Abhängigkeiten und den Anwendungsdaten. Entsprechend verteilt man dann die Konfigurations-, Daten- und Log-Dateien auf die jeweiligen Unterordner.&lt;br /&gt;
&lt;br /&gt;
Möchte man an Stelle des Filesystem-Backends ein Datenbank-Backend nutzen, so sind die passenden Python-Bibliotheken in das virtualenv zu installieren. Alternativ kann man die systemweit installierten Bibliotheken nutzer (site-package beim virtualenv aktivieren); dies enspricht jedoch nicht den best pratices.&lt;br /&gt;
&lt;br /&gt;
Der WSGI-Starter sieht dann so aus (Pfad zum Python im virtualenv):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/......./virtualenv/bin/python&lt;br /&gt;
&lt;br /&gt;
import radicale&lt;br /&gt;
&lt;br /&gt;
radicale.log.start()&lt;br /&gt;
application = radicale.Application()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TLS oder Nicht-TLS - beides ist möglich ===&lt;br /&gt;
&lt;br /&gt;
Wenn man nun noch konsequent auf die Ordner app-ssl und htdocs-ssl setzt, nutzt man die TLS-Terminierung des Apache, der von Hostsharing auf dem aktuellen Stand gehalten wird und auch unser Beschwerdeführer sollte zufrieden sein.&lt;br /&gt;
&lt;br /&gt;
Im Übrigen gilt es als best practice, die TLS-Terminierung nicht der Anwendung, sondern einem reverse proxy zu überlassen. Konkret erhöht dies sogar die Sicherheit, weil Hostsharing die allfälligen Sicherheitsprobleme mit OpenSSL im Blick behält und passend reagiert statt dieses Problem auf den Endnutzer abzuwälzen.&lt;br /&gt;
&lt;br /&gt;
Hostsharing befürwortet und unterstützt den Einsatz von TLS, erzwingt ihn aber nicht. Der besseren Lesbarkeit halber wiederholen wir auch nicht bei jeder Erwähnung einer Installationsoption eine Belehrung über die Risiken der Wahl.&lt;br /&gt;
&lt;br /&gt;
=== Grundsätzliches ===&lt;br /&gt;
&lt;br /&gt;
Der maßgebliche Autor dieser Anleitung ist Java-Experte und ihm ist sicherlich nicht vorzuwerfen, dass ihm &amp;quot;virtualenv&amp;quot; nicht geläufig ist. Die etwas umständlichere Installationsvariante birgt keine Sicherheitsrisiken. Zudem setzt der Autor implizit voraus, dass unseren Nutzern der Unterschied zwischen den ssl- und nicht-ssl-Konfigurationoptionen bekannt ist. Dies - genauer die Beschreibung der Ordner und der SSL/TLS-Terminierung - geht unter anderem aus der maßgeblichen Endandwender-Dokumentation hervor.&lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Web|Web]] ([[Benutzer Diskussion:Web|Diskussion]]) 21:26, 11. Aug. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Fehler in Beispiel-Config? ===&lt;br /&gt;
Kann es sein, dass da ein paar &amp;quot;/&amp;quot; fehlen?&lt;br /&gt;
z.B. schreibt&lt;br /&gt;
filesystem_folder = ~/.config/radicale/collections&lt;br /&gt;
dann alle einträge in eine datei, was nicht gut endet.&lt;br /&gt;
&lt;br /&gt;
mit ~/.config/radicale/collections gibts unterordner per user&lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Ita00|Ita00]] ([[Benutzer Diskussion:Ita00|Diskussion]]) 21:43, 11. Feb. 2017 (CET)&lt;/div&gt;</summary>
		<author><name>Ita00</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Diskussion:RadicaleCalDAVServer&amp;diff=4282</id>
		<title>Diskussion:RadicaleCalDAVServer</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Diskussion:RadicaleCalDAVServer&amp;diff=4282"/>
		<updated>2017-02-11T20:43:22Z</updated>

		<summary type="html">&lt;p&gt;Ita00: /* Fehler in Beispiel-Config? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Beschwerdeführer droht mit Blacklisting der Anleitung ==&lt;br /&gt;
&lt;br /&gt;
Die Installationsanleitung ist einwandfrei, aber suboptimal.&lt;br /&gt;
&lt;br /&gt;
Wir wurden heute von einem Dritten (Ticket #2015081110000178) darüber in Kenntis gesetzt unter Androhung der Aufnahme in eine Blacklist von Anleitungen, die Nutzer unsichere Konfigurationen empfehlen.&lt;br /&gt;
&lt;br /&gt;
=== Orientierung an den best practices ===&lt;br /&gt;
&lt;br /&gt;
Grundsätzlich ist die Anleitung nicht falsch. Im vorderen Teil ist sie leider unnötig kompliziert. Die Empfehlung - den best practices für Python folgend - lautet eigentlich:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Basiordner anlegen&lt;br /&gt;
$ mkdir radicale&lt;br /&gt;
# und absichern&lt;br /&gt;
$ chmod 700 radicale&lt;br /&gt;
# Virtuelle Python-Umgebung (im Userspace) erzeugen&lt;br /&gt;
$ virtualenv radicale/virtualenv&lt;br /&gt;
# und dort Radicale installieren &lt;br /&gt;
$ radicale/virtualenv/bin/pip install Radicale&lt;br /&gt;
# Ordnerstrukturen erzeugen&lt;br /&gt;
$ mkdir radicale/application/etc radicale/application/log radicale/application/data&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man erhält so eine klare Trennung zwischen der Installation der Software nebst Abhängigkeiten und den Anwendungsdaten. Entsprechend verteilt man dann die Konfigurations-, Daten- und Log-Dateien auf die jeweiligen Unterordner.&lt;br /&gt;
&lt;br /&gt;
Möchte man an Stelle des Filesystem-Backends ein Datenbank-Backend nutzen, so sind die passenden Python-Bibliotheken in das virtualenv zu installieren. Alternativ kann man die systemweit installierten Bibliotheken nutzer (site-package beim virtualenv aktivieren); dies enspricht jedoch nicht den best pratices.&lt;br /&gt;
&lt;br /&gt;
Der WSGI-Starter sieht dann so aus (Pfad zum Python im virtualenv):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/......./virtualenv/bin/python&lt;br /&gt;
&lt;br /&gt;
import radicale&lt;br /&gt;
&lt;br /&gt;
radicale.log.start()&lt;br /&gt;
application = radicale.Application()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TLS oder Nicht-TLS - beides ist möglich ===&lt;br /&gt;
&lt;br /&gt;
Wenn man nun noch konsequent auf die Ordner app-ssl und htdocs-ssl setzt, nutzt man die TLS-Terminierung des Apache, der von Hostsharing auf dem aktuellen Stand gehalten wird und auch unser Beschwerdeführer sollte zufrieden sein.&lt;br /&gt;
&lt;br /&gt;
Im Übrigen gilt es als best practice, die TLS-Terminierung nicht der Anwendung, sondern einem reverse proxy zu überlassen. Konkret erhöht dies sogar die Sicherheit, weil Hostsharing die allfälligen Sicherheitsprobleme mit OpenSSL im Blick behält und passend reagiert statt dieses Problem auf den Endnutzer abzuwälzen.&lt;br /&gt;
&lt;br /&gt;
Hostsharing befürwortet und unterstützt den Einsatz von TLS, erzwingt ihn aber nicht. Der besseren Lesbarkeit halber wiederholen wir auch nicht bei jeder Erwähnung einer Installationsoption eine Belehrung über die Risiken der Wahl.&lt;br /&gt;
&lt;br /&gt;
=== Grundsätzliches ===&lt;br /&gt;
&lt;br /&gt;
Der maßgebliche Autor dieser Anleitung ist Java-Experte und ihm ist sicherlich nicht vorzuwerfen, dass ihm &amp;quot;virtualenv&amp;quot; nicht geläufig ist. Die etwas umständlichere Installationsvariante birgt keine Sicherheitsrisiken. Zudem setzt der Autor implizit voraus, dass unseren Nutzern der Unterschied zwischen den ssl- und nicht-ssl-Konfigurationoptionen bekannt ist. Dies - genauer die Beschreibung der Ordner und der SSL/TLS-Terminierung - geht unter anderem aus der maßgeblichen Endandwender-Dokumentation hervor.&lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Web|Web]] ([[Benutzer Diskussion:Web|Diskussion]]) 21:26, 11. Aug. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Fehler in Beispiel-Config? ===&lt;br /&gt;
Kann es sein, dass da ein paar &amp;quot;/&amp;quot; fehlen?&lt;br /&gt;
z.B. schreibt&lt;br /&gt;
filesystem_folder = ~/.config/radicale/collections&lt;br /&gt;
dann alle einträge in eine datei, was nicht gut endet.&lt;br /&gt;
~/.config/radicale/collections gibts unterordner per user&lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Ita00|Ita00]] ([[Benutzer Diskussion:Ita00|Diskussion]]) 21:43, 11. Feb. 2017 (CET)&lt;/div&gt;</summary>
		<author><name>Ita00</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Diskussion:RadicaleCalDAVServer&amp;diff=4281</id>
		<title>Diskussion:RadicaleCalDAVServer</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Diskussion:RadicaleCalDAVServer&amp;diff=4281"/>
		<updated>2017-02-11T20:43:07Z</updated>

		<summary type="html">&lt;p&gt;Ita00: /* Fehler in Beispiel-Config? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Beschwerdeführer droht mit Blacklisting der Anleitung ==&lt;br /&gt;
&lt;br /&gt;
Die Installationsanleitung ist einwandfrei, aber suboptimal.&lt;br /&gt;
&lt;br /&gt;
Wir wurden heute von einem Dritten (Ticket #2015081110000178) darüber in Kenntis gesetzt unter Androhung der Aufnahme in eine Blacklist von Anleitungen, die Nutzer unsichere Konfigurationen empfehlen.&lt;br /&gt;
&lt;br /&gt;
=== Orientierung an den best practices ===&lt;br /&gt;
&lt;br /&gt;
Grundsätzlich ist die Anleitung nicht falsch. Im vorderen Teil ist sie leider unnötig kompliziert. Die Empfehlung - den best practices für Python folgend - lautet eigentlich:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Basiordner anlegen&lt;br /&gt;
$ mkdir radicale&lt;br /&gt;
# und absichern&lt;br /&gt;
$ chmod 700 radicale&lt;br /&gt;
# Virtuelle Python-Umgebung (im Userspace) erzeugen&lt;br /&gt;
$ virtualenv radicale/virtualenv&lt;br /&gt;
# und dort Radicale installieren &lt;br /&gt;
$ radicale/virtualenv/bin/pip install Radicale&lt;br /&gt;
# Ordnerstrukturen erzeugen&lt;br /&gt;
$ mkdir radicale/application/etc radicale/application/log radicale/application/data&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man erhält so eine klare Trennung zwischen der Installation der Software nebst Abhängigkeiten und den Anwendungsdaten. Entsprechend verteilt man dann die Konfigurations-, Daten- und Log-Dateien auf die jeweiligen Unterordner.&lt;br /&gt;
&lt;br /&gt;
Möchte man an Stelle des Filesystem-Backends ein Datenbank-Backend nutzen, so sind die passenden Python-Bibliotheken in das virtualenv zu installieren. Alternativ kann man die systemweit installierten Bibliotheken nutzer (site-package beim virtualenv aktivieren); dies enspricht jedoch nicht den best pratices.&lt;br /&gt;
&lt;br /&gt;
Der WSGI-Starter sieht dann so aus (Pfad zum Python im virtualenv):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/......./virtualenv/bin/python&lt;br /&gt;
&lt;br /&gt;
import radicale&lt;br /&gt;
&lt;br /&gt;
radicale.log.start()&lt;br /&gt;
application = radicale.Application()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TLS oder Nicht-TLS - beides ist möglich ===&lt;br /&gt;
&lt;br /&gt;
Wenn man nun noch konsequent auf die Ordner app-ssl und htdocs-ssl setzt, nutzt man die TLS-Terminierung des Apache, der von Hostsharing auf dem aktuellen Stand gehalten wird und auch unser Beschwerdeführer sollte zufrieden sein.&lt;br /&gt;
&lt;br /&gt;
Im Übrigen gilt es als best practice, die TLS-Terminierung nicht der Anwendung, sondern einem reverse proxy zu überlassen. Konkret erhöht dies sogar die Sicherheit, weil Hostsharing die allfälligen Sicherheitsprobleme mit OpenSSL im Blick behält und passend reagiert statt dieses Problem auf den Endnutzer abzuwälzen.&lt;br /&gt;
&lt;br /&gt;
Hostsharing befürwortet und unterstützt den Einsatz von TLS, erzwingt ihn aber nicht. Der besseren Lesbarkeit halber wiederholen wir auch nicht bei jeder Erwähnung einer Installationsoption eine Belehrung über die Risiken der Wahl.&lt;br /&gt;
&lt;br /&gt;
=== Grundsätzliches ===&lt;br /&gt;
&lt;br /&gt;
Der maßgebliche Autor dieser Anleitung ist Java-Experte und ihm ist sicherlich nicht vorzuwerfen, dass ihm &amp;quot;virtualenv&amp;quot; nicht geläufig ist. Die etwas umständlichere Installationsvariante birgt keine Sicherheitsrisiken. Zudem setzt der Autor implizit voraus, dass unseren Nutzern der Unterschied zwischen den ssl- und nicht-ssl-Konfigurationoptionen bekannt ist. Dies - genauer die Beschreibung der Ordner und der SSL/TLS-Terminierung - geht unter anderem aus der maßgeblichen Endandwender-Dokumentation hervor.&lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Web|Web]] ([[Benutzer Diskussion:Web|Diskussion]]) 21:26, 11. Aug. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Fehler in Beispiel-Config? ===&lt;br /&gt;
Kann es sein, dass da ein paar &amp;quot;/&amp;quot; fehlen?&lt;br /&gt;
z.B. schreibt&lt;br /&gt;
filesystem_folder = ~/.config/radicale/collections&lt;br /&gt;
dann alle einträge in eine datei, was nicht gut endet.&lt;br /&gt;
~/.config/radicale/collections gibts unterordner per user&lt;br /&gt;
--[[Benutzer:Ita00|Ita00]] ([[Benutzer Diskussion:Ita00|Diskussion]]) 21:43, 11. Feb. 2017 (CET)&lt;/div&gt;</summary>
		<author><name>Ita00</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Diskussion:RadicaleCalDAVServer&amp;diff=4280</id>
		<title>Diskussion:RadicaleCalDAVServer</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Diskussion:RadicaleCalDAVServer&amp;diff=4280"/>
		<updated>2017-02-11T20:42:48Z</updated>

		<summary type="html">&lt;p&gt;Ita00: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Beschwerdeführer droht mit Blacklisting der Anleitung ==&lt;br /&gt;
&lt;br /&gt;
Die Installationsanleitung ist einwandfrei, aber suboptimal.&lt;br /&gt;
&lt;br /&gt;
Wir wurden heute von einem Dritten (Ticket #2015081110000178) darüber in Kenntis gesetzt unter Androhung der Aufnahme in eine Blacklist von Anleitungen, die Nutzer unsichere Konfigurationen empfehlen.&lt;br /&gt;
&lt;br /&gt;
=== Orientierung an den best practices ===&lt;br /&gt;
&lt;br /&gt;
Grundsätzlich ist die Anleitung nicht falsch. Im vorderen Teil ist sie leider unnötig kompliziert. Die Empfehlung - den best practices für Python folgend - lautet eigentlich:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Basiordner anlegen&lt;br /&gt;
$ mkdir radicale&lt;br /&gt;
# und absichern&lt;br /&gt;
$ chmod 700 radicale&lt;br /&gt;
# Virtuelle Python-Umgebung (im Userspace) erzeugen&lt;br /&gt;
$ virtualenv radicale/virtualenv&lt;br /&gt;
# und dort Radicale installieren &lt;br /&gt;
$ radicale/virtualenv/bin/pip install Radicale&lt;br /&gt;
# Ordnerstrukturen erzeugen&lt;br /&gt;
$ mkdir radicale/application/etc radicale/application/log radicale/application/data&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Man erhält so eine klare Trennung zwischen der Installation der Software nebst Abhängigkeiten und den Anwendungsdaten. Entsprechend verteilt man dann die Konfigurations-, Daten- und Log-Dateien auf die jeweiligen Unterordner.&lt;br /&gt;
&lt;br /&gt;
Möchte man an Stelle des Filesystem-Backends ein Datenbank-Backend nutzen, so sind die passenden Python-Bibliotheken in das virtualenv zu installieren. Alternativ kann man die systemweit installierten Bibliotheken nutzer (site-package beim virtualenv aktivieren); dies enspricht jedoch nicht den best pratices.&lt;br /&gt;
&lt;br /&gt;
Der WSGI-Starter sieht dann so aus (Pfad zum Python im virtualenv):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/......./virtualenv/bin/python&lt;br /&gt;
&lt;br /&gt;
import radicale&lt;br /&gt;
&lt;br /&gt;
radicale.log.start()&lt;br /&gt;
application = radicale.Application()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TLS oder Nicht-TLS - beides ist möglich ===&lt;br /&gt;
&lt;br /&gt;
Wenn man nun noch konsequent auf die Ordner app-ssl und htdocs-ssl setzt, nutzt man die TLS-Terminierung des Apache, der von Hostsharing auf dem aktuellen Stand gehalten wird und auch unser Beschwerdeführer sollte zufrieden sein.&lt;br /&gt;
&lt;br /&gt;
Im Übrigen gilt es als best practice, die TLS-Terminierung nicht der Anwendung, sondern einem reverse proxy zu überlassen. Konkret erhöht dies sogar die Sicherheit, weil Hostsharing die allfälligen Sicherheitsprobleme mit OpenSSL im Blick behält und passend reagiert statt dieses Problem auf den Endnutzer abzuwälzen.&lt;br /&gt;
&lt;br /&gt;
Hostsharing befürwortet und unterstützt den Einsatz von TLS, erzwingt ihn aber nicht. Der besseren Lesbarkeit halber wiederholen wir auch nicht bei jeder Erwähnung einer Installationsoption eine Belehrung über die Risiken der Wahl.&lt;br /&gt;
&lt;br /&gt;
=== Grundsätzliches ===&lt;br /&gt;
&lt;br /&gt;
Der maßgebliche Autor dieser Anleitung ist Java-Experte und ihm ist sicherlich nicht vorzuwerfen, dass ihm &amp;quot;virtualenv&amp;quot; nicht geläufig ist. Die etwas umständlichere Installationsvariante birgt keine Sicherheitsrisiken. Zudem setzt der Autor implizit voraus, dass unseren Nutzern der Unterschied zwischen den ssl- und nicht-ssl-Konfigurationoptionen bekannt ist. Dies - genauer die Beschreibung der Ordner und der SSL/TLS-Terminierung - geht unter anderem aus der maßgeblichen Endandwender-Dokumentation hervor.&lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Web|Web]] ([[Benutzer Diskussion:Web|Diskussion]]) 21:26, 11. Aug. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Fehler in Beispiel-Config? ===&lt;br /&gt;
Kann es sein, dass da ein paar &amp;quot;/&amp;quot; fehlen?&lt;br /&gt;
z.B. schreibt&lt;br /&gt;
filesystem_folder = ~/.config/radicale/collections&lt;br /&gt;
dann alle einträge in eine datei, was nicht gut endet.&lt;br /&gt;
~/.config/radicale/collections gibts unterordner per user&lt;/div&gt;</summary>
		<author><name>Ita00</name></author>
	</entry>
</feed>