Eigener CalDAV / CardDAV Server mit SabreDAV

SabreDAV erlaubt das Betreiben eines eigenen CalDAV / CardDAV Servers zu Synchronisierung von Kontakten und Kalendern.

SabreDAV ist ein WebDAV-Framework für PHP, welches unter der “New BSD License” auf GoogleCode veröffentlicht ist. Im Downloadbereich lassen sich verschiedene Versionen der Software herunterladen (für diesen Beitrag wurde die Version 1.8.4 verwendet).

Das .zip Archiv muss nach dem Download zunächst entpackt und in den WebRoot (im Folgenden als /volume1/web/ bezeichnet) verschoben werden. Die Beispielscripts, die für Cal bzw. CardDAV benötigt werden, finden Sie im Unterordner examples. Zur Speicherung von Kontakten und Kalendern greift SabreDAV auf eine Datenbank (MySQL, PostreSQL, SQLite) zurück. Der Ordner data muss für die Verwendung von SQLite zunächst noch erstellt werden.

# Wechseln in den Web Root Folder
cd /volume1/web

# Herunterladen & Entpacken von SabreDAV
wget http://sabredav.googlecode.com/files/SabreDAV-1.8.4.zip
unzip SabreDAV-1.8.4.zip

# Wechseln in den Ordner /volume1/web/SabreDAV
cd SabreDAV

# Kopieren der Beispielscripts
cp examples/calendarserver.php calendarserver.php 
cp examples/addressbookserver.php addressbookserver.php 

# Erstellen des Datenverzeichnisses
mkdir data/
cat examples/sql/sqlite.* | sqlite3 data/db.sqlite

In beiden Dateien (addressbookserver.php und calendarserver.php) müssen dann noch folgende Änderungen getroffen werden:

date_default_timezone_set('Europe/Berlin');

// Make sure this setting is turned on and reflect the root url for your WebDAV server.
// This can be for example the root / or a complete path to your server script
$baseUri = '/SabreDAV/addressbookserver.php/';
date_default_timezone_set('Europe/Berlin');

// If you want to run the SabreDAV server in a custom location (using mod_rewrite for instance)
// You can override the baseUri here.
$baseUri = '/SabreDAV/calendarserver.php/';

Bevor ein Kalender genutzt werden kann muss er in der Datenbank angelegt werden. Dafür kann ein beliebiges Programm verwenden werden.

INSERT INTO calendars 
  (principaluri, displayname, uri, description, components, ctag, transparent) 
VALUES
  ('principals/admin','default calendar','default','','VEVENT,VTODO','1', '0');

Der Hash des Passworts setzt sich wie folgt zusammen und sollte geändert werden:

$username = 'admin';
$password = 'password';

$hash = md5($username . ':SabreDAV:' . $password);

Diese Anleitung basiert auf den Wiki-Seiten zu CalDAV und CardDAV des SabreDAV Projekts.

Tiny-Tiny-RSS als Google Reader Ersatz

Der Google Reader wird eingestellt. Alternativen werden in einem vorherigen Blogeintrag bereits vorgestellt.

Sollten Sie jedoch eine eigene Website haben kommt vielleicht auch das Hosten eines eigenen Dienstes in Frage. Die Projekte Tiny-Tiny-RSS und Fever° bieten diese Möglichkeit.

Beide Projekte benötigen PHP und MySQL, Tiny-Tiny-RSS kann alternativ auch PostgreSQL als Datenbank verwenden. Die eigene Feedsammlung kann bequem über Google Takeout exportiert und später wieder importiert werden.

Tiny-Tiny-RSS setzt zur Verbindung mit der MySQL Datenbank auf die in PHP 5.5 als Deprecated gekennzeichnete Schnittstelle mysql. Da ich nun selbst Tiny-Tiny-RSS einsetze habe ich mir die Mühe gemacht die Anbindung auf mysqli umzustellen. Der aktualisierte Fork kann auf GitHub eingesehen werden. Neben der Umstellung auf mysqli wurden zudem einige gebündelte Komponenten aktualisiert und statt dem mitgelieferten mobilen Theme wurde ttrss-mobile (als Submodule) integriert.

Hier die Änderungen in einer Zusammenfassung

  • Integration von ttrss-mobile als neues Standard Mobile theme (die externe API in tt-rss muss aktiviert sein)
  • Aktualisierung diverser mitgelieferter Komponenten
  • Verwendung von mysqli anstelle von mysql um Kompatibilität mit PHP 5.5+ zu gewährleisten

An der Installation selbst hat sich nichts geändert, sodass ich hier gerne auf die Projektseite verweisen möchte.

Google stellt Dienst Reader zum 1. Juli 2013 ein

Google stellt den gerade bei Technikinteressierten und Bloggern beliebten Dienst Google Reader zum 1. Juli 2013 ein. Bereits jetzt haben mehrere Projekte angekündigt bis dahin lauffähige  Ersatzdienste vorzustellen.

Alternative Dienste erlebten in den ersten Stunden nach der überraschenden Ankündigung von Google einen Besucheransturm und mussten ihre Serverkapazitäten erweitern. Feedly bspw. war nur sehr langsam oder gar nicht erreichbar.

Feedly hat in einem Blogeintrag angekündigt die inoffizielle Google Reader API, die in vielen Apps für Smartphones und Tablets und auch für den eigenen Dienst genutzt wird nach zubauen. Das Projekt läuft unter dem Namen Normandy und soll, sobald es lauffähig ist, auch für Drittanbieter geöffnet werden.

Digg arbeitet ebenfalls an einem Google Reader Klon, genauere Details lassen sich ebenfalls dem entsprechenden Blogeintrag entnehmen.

The Old Reader entstand nach der Einführung der kontrovers diskutierten Änderungen die Google zuletzt vorgenommen hat. Das Projekt ist zur Zeit noch im Beta-Status, aber sicherlich auch eine interessante Alternative.

WordPress auf der DiskStation

WordPress ist als Paket im Paketzentrum verfügbar und kann wie gewohnt installiert werden. Leider liegt es aber meist nicht in der neuesten Version vor (die Updates werden teils nicht zeitnah eingepflegt). Die Blog Software kann allerdings auch wie auch der Projektseite beschrieben installiert werden. Damit die automatische Aktualisierung von WordPress genutzt werden kann müssen alle Dateien dem Nutzer gehören, unter dem auch der Webserver läuft. Dafür per SSH oder Telnet mit der DiskStation verbinden und den folgenden Befehl ausführen.

chown -R nobody:nobody /pfad/zum/wordpress/ordner

Der Pfad muss natürlich noch entsprechend ersetzt werden (bspw. durch /volume1/web/wordpress)

Toshiba Sattelite A300 BIOS Passwort zurücksetzen

Zum Schutz gegen Änderungen am System oder Diebstahl lassen sich viele PC’s und Laptops mit einem BIOS-Passwort schützen. Sollte man jedoch selbst das Passwort vergessen haben, hat man keinen Zugang mehr zum BIOS. Je nach Hersteller und Modell gibt es jedoch verschiedene Möglichkeiten einen Reset durchzuführen. Eine erste Anlaufstelle ist hier das BIOS-Kompendium (Der Weg ins BIOS). Weiterlesen