Raspberry Pi: Baïkal CalDAV und CardDAV Server installieren
Möchte man seine Kontakte und den Kalender auf allen Geräten synchron halten, so bietet es sich an, den Standard CalDAV bzw. CardDAV zu verwenden. Solche Services bieten große Anbieter wie Google oder Apple an, wobei man immer seine Daten auf deren Server speichert. Möchte man dies nicht, kann man auch über den Raspberry Pi einen CalDAV/CardDAV Server laufen lassen. Wenn man auch Dateien synchronisieren möchte, kann man die CalDAV/CardDAV Funktion von Owncloud verwenden. Möchte man hingegen nur Kontakte und den Kalender abgleichen, so bietet sich Baïkal (auch Baikal geschrieben) als Softwarelösung an. Wie man den Baïkal CalDAV und CardDAV Server auf dem Raspberry Pi installiert, erkläre ich im Folgenden.
Voraussetzung: Raspbian oder vergleichbare Distribution installiert
Zunächst einmal müssen wir nginx mit PHP installieren. Wie dies funktioniert, erklärte ich bereits in dem Artikel Webserver Nginx installieren.
Wir müssen nun noch SQLite Pakete installieren, die später in Baïkal Verwendung finden.
sudo apt-get install sqlite php5-sqlite
Nun müssen in der Datei /etc/nginx/sites-available/default noch folgende Zeilen ersetzt werden, damit Baïkal später vollständig funktioniert. In dem Editor nano kann man mittels STRG + X, Y und Enter speichern.
sudo nano /etc/nginx/sites-available/default
# pass the PHP scripts to PHP-FPM server listening on unix socket location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; } # deny access to .htaccess files location ~ /\.ht { deny all; }
ersetzen durch
location ~ ^(.+\.php)(.*)$ { try_files $fastcgi_script_name =404; fastcgi_split_path_info ^(.+\.php)(.*)$; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; include /etc/nginx/fastcgi_params; } rewrite ^/.well-known/caldav /baikal/cal.php redirect; rewrite ^/.well-known/carddav /baikal/card.php redirect; charset utf-8; location ~ /(\.ht|Core|Specific) { deny all; return 404; }
Nach den Änderungen aus dem vergangenen Schritt müssen wir nginx nun neustarten.
sudo /etc/init.d/nginx restart
Es ist nun an der Zeit Baïkal herunterzuladen, zu entpacken und den Ordner in baikal/ umzubenennen. Zum Zeitpunkt, als dieses Tutorial entstand, war Version 0.2.7 aktuell, jedoch bereitete diese Version einige Probleme. Der Downloadlink zur funktionstüchtigen Version 0.2.6 findet man nicht auf der Webseite von Baïkal. Hierbei benötigen wir das Flat package. Daher könnt ihr die Version 0.2.6 direkt von meinem Server herunterladen.
cd /usr/share/nginx/www
sudo wget https://jankarres.de/wp-content/uploads/baikal-flat-0.2.6.zip
sudo unzip baikal-flat-*.zip
sudo rm baikal-flat-*.zip
sudo mv baikal-flat/ baikal/
sudo chown -R www-data:www-data baikal/
sudo find baikal/ -type d -exec chmod 755 {} \;
cd baikal/
Um Baïkal installieren zu können, müssen wir nun die Datei ENABLE_INSTALL im Ordner Specific/ anlegen und ein paar Ordnern und Dateien weitere Rechte einräumen.
sudo touch Specific/ENABLE_INSTALL
sudo chmod 755 Specific/
sudo chmod 755 Specific/db/
sudo chmod 755 Specific/db/db.sqlite
Möchten wir die Datenübertragung mittels SSL verschlüsseln, so müssen wir ein selbst signiertes SSL Zertifikat erstellen. Dies können wir mittels folgenden Befehlen bewerkstelligen. Dabei werden bei letzterem Befehl mehrere Fragen gestellt. Bei Country Name geben wir DE (ggf. abweichend) an und bei Common Name einen fiktiven Namen oder falls verwendet die verwendete DynDNS Domain an. Alle anderen Felder können wir mittels Enter überspringen.
Später wird der Browser meckern, dass das Zertifikat nicht vertrauenswürdig sei, da es von uns selbst signiert wurde. Dieser Warnhinweis ist in Ordnung, schränkt jedoch nicht ein.
sudo mkdir /etc/nginx/ssl
cd /etc/nginx/ssl
sudo openssl genrsa -out baikal.key 4096
sudo openssl req -new -sha256 -key baikal.key -out baikal.csr
sudo openssl x509 -req -sha256 -days 3650 -in baikal.csr -signkey baikal.key -out baikal.crt
Um das SSL Zertifikat einzubinden müssen wir in folgender Datei den ersten durch den zweiten Block ersetzen. Dabei muss im Neuen die Angabe 192.168.178.XX durch die IP-Adresse bzw. wenn eingesetzt, die DynDNS Domain des Raspberry Pis ersetzt werden.
sudo nano /etc/nginx/sites-available/default
server { #listen 80; ## listen for ipv4; this line is default and implied #listen [::]:80 default_server ipv6only=on; ## listen for ipv6
ersetzen durch
server { listen 80; server_name 192.168.178.XX; rewrite ^ https://$server_name$request_uri? permanent; # enforce https } server { listen 443 ssl; server_name 192.168.178.XX; ssl_certificate /etc/nginx/ssl/baikal.crt; ssl_certificate_key /etc/nginx/ssl/baikal.key;
Abschließend müssen wir, damit das SSL Zertifikat seine Wirkung entfaltet, nginx neustarten.
sudo /etc/init.d/nginx restart
Jetzt ist es an der Zeit, den Installer im Webinterface aufzurufen. Hierzu rufen wir http://IP/baikal/admin/install/ (IP durch IP-Adresse/DynDNS Domain des Raspberry Pis ersetzen) im Browser auf. Dort angekommen, müssen wir Server Time zone einstellen und ein Passwort für den Admin Benutzer des Webinterfaces definieren. Anschließend klicken wir auf Save changes. Auf der zweiten Seite entfernen wir, sofern gesetzt, den Haken von Use MySQL, da SQLite ausreichend ist, und klicken erneut auf Save changes. Anschließend klicken wir auf Start using Baïkal und können uns mit dem Benutzernamen admin und dem soeben definierten Passwort einloggen.
Wir müssen nun über Users and resources > Add user einen Benutzer für Kalender und Kontakte anlegen. Mit dem Benutzer legt Baïkal automatisch einen Kalender namens default und ein Adressbuch ebenfalls namens default an.
Fertig installiert! Wir können die Kalender und Kontaktbücher nun auf den Geräten synchronisieren. Im Folgenden noch die URL-Struktur für CalDAV und CardDAV. Dabei sind in eckige Klammern stehende Variablen einschließlich der eckigen Klammern zu ersetzen.
Ohne SSL
CalDav (allgemein): http://[IP/DynDNS]/baikal/cal.php/calendars/[username]/[cal name]/
CalDav (für iOS/OS X): http://[IP/DynDNS]/baikal/cal.php/principals/[username]/
CardDav (allgemein): http://[IP/DynDNS]/baikal/card.php/addressbooks/[username]/[card name]/
CarDav (für iOS/OS X): http://[IP/DynDNS]/baikal/card.php/principals/[username]/
Mit SSL
CalDav (allgemein): https://[IP/DynDNS]/baikal/cal.php/calendars/[username]/[cal name]/
CalDav (für iOS/OS X): https://[IP/DynDNS]/baikal/cal.php/principals/[username]/
CardDav (allgemein): https://[IP/DynDNS]/baikal/card.php/addressbooks/[username]/[card name]/
CarDav (für iOS/OS X): https://[IP/DynDNS]/baikal/card.php/principals/[username]/
Zugriff außerhalb des eigenen Netzwerks
Portfreigabe im Router
Soll der soeben installierte Dienst auch außerhalb des eigenen Netzwerkes verfügbar sein, so müssen folgende Ports im Router freigegeben werden. Wie man freigibt, beschrieb ich in dem Artikel Portforwarding bei Fritz!Box und Speedport.
Der Artikel wurde am 21. April 2014 überarbeitet.
215 Kommentare. Hinterlasse eine Antwort
Vielen Dank für die Anleitung
Leider kommt bei mir im Browser nur
502 Bad Gateway
nginx/1.2.1
Schau mal ob es etwas bringt php5-fpm neuzustarten:
sudo /etc/init.d/php5-fpm restart
mh scheine das verzeichnis init.d nicht zu haben
da muss ich wohl noch was anderes installieren
ok hab noch mal apt-get install php5-fpm gemacht.
Nun kommt im Browser was anderes
Baïkal Install Tool is locked.
To unlock it, create (or re-create if it exists already) an empty file named ENABLE_INSTALL (uppercase, no file extension) in the Specific/ folder of Baïkal.
ok es wird nun im browser aufgerufen. ka wieso ich alles nochmal machen muste.
Danke
Ich bins nochmal hoffe ich mülle dich jetzt nicht zu sehr zu.
Wie können sich den die einzelnen User die man anlegt einloggen? Finde da nichts. Oder macht das alles der admin account? Das kann ja wohl nicht sein.
Im Webinterface kann man momentan lediglich die Benutzer verwalten, weshalb dies auch nur über das Admin Account geht.
super anleitung, danke!!!
ich mußte dann allerdings bei step 7 explizit /baikal/admin/index.php aufrufen
und jetzt problem: bei users and resources aufrufen meldet nginx 403 forbidden
welche rechte hab ich da wohl falsch gesetzt?
hab zwar jetzt nicht so die Ahnung aber hast schonmal versucht den step 6 nochmal zu machen oder die rechte bei www-data nochmal auszuführen
Den Tipp den Markus geäußert hat hätte ich dir auch gegeben.
Hallo Jan,
besten Dank für deine Mühen, die du dir mit deinen Tutorials machst.
Leider funktioniert bei mir der Punkt 7 ( sprich: Aufruf im Browser) nicht. Ich bekomme mit dem Firefox die Meldung „Welcome to nginx! […]“ und den Hinweis, dass dieses sauber installiert ist. Die index.php öffnet er allerdings nicht im Browser sondern möchte dieses Datei herunterladen. Beim Internet-Explorer zeigt er mir die index.php nur als Datei an (also den PHP-Source-Code), führt sie allerdings nicht aus.
Hast Du eine Idee, was ich falsch gemacht haben könnte?
DANKE!
Gruß
Thorsten
Ich tippe mal ganz stark drauf, dass du in der nginx Anleitung den PHP Teil nicht abgearbeitet hast.
Hi Jan,
habe es selber herausgefunden. In der o.g. Datei hatte ich die Zeile
fastcgi_pass unix:/var/run/php5-fpm.sock;
vergessen. Nun funzt es … 🙂
DANKE !
Gruß
Thorsten
Hallo Jan,
habe Baikal auf meinem RaspberryPi installiert, allerdings mit apache2.
Nach dem Aufruf der URL „http://IP/baikal/admin/install/“ udn abschließendem Klick auf „Start“ erhalte ich die Fehlermeldung:
Fatal error: Uncaught exception ‚PDOException‘ with message ‚could not find driver‘ in /var/www/baikal/Core/Frameworks/Flake/Core/Database/Sqlite.php:39 Stack trace: #0 /var/www/baikal/Core/Frameworks/Flake/Core/Database/Sqlite.php(39): PDO->__construct(’sqlite:/var/www…‘) #1 /var/www/baikal/Core/Frameworks/Flake/Framework.php(254): Flake\Core\Database\Sqlite->__construct(‚/var/www/baikal…‘) #2 /var/www/baikal/Core/Frameworks/Flake/Framework.php(223): Flake\Framework::initDbSqlite() #3 /var/www/baikal/Core/Frameworks/Flake/Framework.php(215): Flake\Framework::initDb() #4 /var/www/baikal/admin/install/index.php(44): Flake\Framework::bootstrap() #5 {main} thrown in /var/www/baikal/Core/Frameworks/Flake/Core/Database/Sqlite.php on line 39
Woran könnte das liegen?
M.
Du musst SQLite für Apache2 installieren bzw. aktivieren. Wie das geht wurde bereits auf StackExchange erklärt.
Danke! Ich würde aber noch SSL verschlagen.
Habe ich mal in meine Todo-Liste aufgenommen 🙂
Super!! thx
Hallo Jan,
vielen Dank fuer Deine gute und ausfuehrliche Anleitung!
Ich habe zunaechst nginx installiert nach Deiner Anleitung und nginx laesst sich starten.
Dann bin ich die Baikal-Anleitung bis Step 6 durchgegangen, habe aber feststellen muessen, dass sich nginx nicht mehr starten laesst – wahrscheinlich nach den Modifikationen der Datei /etc/nginx/sites-available/default in Step 4.
sudo /etc/init.d/nginx start bringt folgende Fehlermeldung:
Starting nginx: nginx: [emerg] unknown directive „fast_cgi_split_path_info ^(.+\.php)(.*)$ in /etc/nginx/sites-enabled/default:85
nginx: configuration file /etc/nginx/nginx.conf test failed
Wenn ich dann den in Step 4 geaenderten Block in /etc/nginx/sites-available/default
auskommentiere und die vorige Variante (vor Step 4) wieder einbaue, laeuft nginx problemlos an.
Ich habe auch darauf geachtet, dass in der Datei default vor den Eintraegen immer nur
TABs stehen. Auch alle Semikolon sind an den richtigen Stellen.
Ich habe jetzt zwei Tage lang in allen möglichen Gruppen recherchiert, was es mit dieser „unknown directive“ auf sich hat, aber dort wird darauf verwiesen, dann eine nginx-Version neuer als 0.7.x verwendet werden muss (was wir ja klar haben). Langsam gehen mir die Ideen aus …
Das Problem muss auch irgendwo anders liegen, den die vorige Version der default-Datei enthält ja auch die Option fast_split_path_info und damit lief ja nginx bereits.
Haettest Du eine Idee, woran das liegen koennte?
Vielen Dank & Gruss,
Thomas
Hallo,
ich habe das obenstehende Problem geloest: ich hatte urspruenglich
die von Jan vorgegebenen Änderungen der Datei
/etc/nginx/sites-available/default
aus dem Web-Browser kopiert und in den editor nano eingefuegt.
Auch wenn alles gut aussah und durch Navigation keine falschen Zeichen festgestellt werden konnten, muessen hier irgendwelche unsichtbaren Zeichen eingefuegt worden sein.
Ich habe die Eintraege
zeilenweise von Hand abgetippt
und gesehen, wie die Fehlermeldung „nach unten gewandert ist“. Habe darauf alle Aenderungen von Hand getippt und jetzt funktioniert alles.
Jan: vielleicht kannst Du unter Step3 noch angeben, dass es sicherer ist,
die Dateiaenderungen von Hand einzugeben und per copy+paste (gleiches gilt auch fuer das Tutorial bezueglich der ningx-Installation).
Nocheinmal vielen Dank fuer die klasse Anleitung.
Thomas
Dein Problem kann ich (und wohl auch die meisten Leser, bei denen die Anleitung ja zu funktionieren scheint) nicht nachvollziehen. Daher gehe ich davon aus, dass der Fehler wegen einer (falschen) Konfiguration deines Computers zustande kommt.
Hallo Thomas,
bei mir ist es genauso gelaufen: Ich habe den entsprechenden Block aus dem Webbrowser kopiert und in Nano eingefügt mit beschriebenem Ergebnis. Herzlichen Dank für deine Rückmeldung, auf die einfache Idee es händisch zu probieren wäre ich nicht gekommen! Auch bei mir ist der Fehler durch die händische Korrektur zeilenweise nach unten gerutscht. Also tatsächlich irgendwelche unsichtbaren Zeichen, die Probleme gemacht haben. Ich habe mir Vorher/Nachher weggespeichert, aber als ich mir den Unterschied gerade mal näher anschauen wollte, habe ich Kopfschmerzen bekommen 🙂
Also vielen Dank dir und natürlich auch Jan, mein Baikal-Server läuft jetzt einwandfrei zusammen mit CalDav-Sync und aCalendar unter Android =)
Hallo Jan,
wenn ich den Seafile-Server mit SSL nach deiner Anleitung installiert habe, arbeitet der seafile-Server dann auch mit deiner Anleitung von Baikal zusammen ?
Gruß Andreas
Ich komme genau bis Step 7. Rufe ich dann den Webinstaller auf, habe ich nur einen weißen Hintergrund. Kein Installer und keine Fehlermeldung. Ich habe mehrfach alles kontrolliert. Alle Kommandos richtig umgesetzt, Dateizeilen ausgetauscht copy & paste. ….. Ich höre eure Gedanken: ja, ja, alles Richtig – meint ja jeder…. Ich habe auch noch den Ansatz von Markus nachgearbeitet mit www und den Rechten. Ich komme einfach nicht an den Installer im Firefox. Scripte sind im FF auch erlaubt.
Andreas
Sicher, dass der Pfad zu Baikal in der Nginx Sites Config richtig gesetzt ist? – Auch wenn du mehrfach kontrolliert hast.
Logo. Musst lediglich zwei Sites in Nginx definieren. Dazu empfehle ich dir mal, die Doku von Nginx anzusehen.
Der Artikel wurde am 31. Januar 2014 überarbeitet. Zuvor geschriebene Kommentare können ihre Gültigkeit verloren haben.
Hallo Jan, bevor ich wieder einen Fehler mache: Welchen Port muss ich für ssl freigeben ? 80 oder 443 oder beide?
Gruß Andreas
Beide ist sinnvoll.
Ich musste bei meinem Thunderbird Lightning und auch beim Android CalDAV Sync die URL:
http://[server]/baikal/cal.php/calendars/%5Buser%5D/default/
eintragen. Siehe: https://github.com/jeromeschneider/Baikal/blob/master/INSTALL.md
Ich weiß nicht wie du auf …/remote.php/… kommst. Diese Datei gibt es in Baikal doch gar nicht.
Im Schritt 3 könnte man statt für jede Anwendung jedes mal die default-Konfig komplett zu renovieren einfach nur einen include nutzen den man in den entsprechenden „server“-Bock einfügt:
include /etc/nginx/sites/baikal
und in /etc/nginx/sites/baikal nur die Anweisungen für die Anwendung hinterlegen:
# Baikal
location /baikal {
rewrite ^/.well-known/caldav /baikal/cal.php redirect;
rewrite ^/.well-known/carddav /baikal/card.php redirect;
}
Das macht es leichter verschiedene paralellele Anwendungen zu verwalten.
Stimmt!! remote.php ist glaube ich auf bestandteil con Owncloud.
Allerdings bekomme ich carddav sync über Thundebird nicht zu laufen. Android funktioniert.
Stimmt. Da habe ich den Artikel verwechselt. Habe ich verbessert.
Habe mit deiner Anleitung nginx und Seafile ohne große Probleme zum laufen gebracht. Danke dafür! Nun habe ich hier das Problem, dass wenn ich nach Schritt 3 (mit der include Variante aus den Kommentaren) nginx neustarte, er mir die Fehlermeldung auswirft, dass die location /baikal ausserhalb von .php$ liegt?
Habe die Fehlermeldung wegbekommen. war ein fehler in der baikal config. wenn ich nun die installation aufrufen möchte, bekomme ich die 404 angezeigt…
Überprüfe doch mal mittels folgendem Kommando ob die Baikal Dateien an dem Ort sind, an dem sie sein sollten.
ls -l /usr/share/nginx/www/baikal/
Da ich sehr viel rumgespielt habe am pi nachdem ich ihn erhalten habe, hab ich raspbian nochmal neu aufgespielt und dann nach deiner anleitung nginx mit php installiert. dann mit dieser anleitung baikal und es läuft. habe nur noch keine sync am smartphone probiert.
wenn ich nun noch weiteres installieren möchte, muss ich in nginx Multiple SItes konfigurieren? Oder geht das dann mit include …/…/…/datei ??
Hierzu sind mehrere site configs sinnvoll. Das ist für den Anfang jedoch nicht ganz einfach bei nginx. Vielleicht schreibe ich dazu auch noch einmal einen Artikel 😉
Hi Jan,
Baikal hatte ich auch mal installiert, aber nie wirklich getestet. Ich nutze OwnCloud, was Du ja auch erwähnst. Die Apps CalDAV und CardDAV auf Android funktionieren einwandfrei. Was auch für Baikal/Nginx funktionieren sollte (ich nutze Apache): Für SSL habe ich mir ein „offizielles“ Zertifikat besorgt, bei Startssl.com – das kostet nichts. Ich habe eine eigene Domain, eine Subdomain habe ich per CNAME-Eintrag im DNS auf meinen DynDNS-Namen „umgebogen“. So funktioniert es einwandfrei ohne dass ich Zertifikatsfehler und ohne Ausnahmeregelung.
Ist natürlich auch eine Möglichkeit, da StartSSL inzwischen ja in allen modernen Browsern unterstützt wird. Wäre mal ein eigenes Tutorial wert 😉
Hallo,
da die Kalender-Sync Funktion bei owncloud in meinem Fall nur einen unzureichenden Dienst verrichtet, habe ich mich nach Alternativen umgesehen und bin so (wieder mal) auf eines deiner Tutorials gestoßen. Dazu zwei Fragen: 1. Wie kann ich Baikal parallel zu owncloud auf nginx zum Laufen bringen (Stichwort Änderungen in der sites-available/default Datei)?
2. Kann man über das Webinterface verschiedenen Usern unterschiedliche Lese- und Schreibrechte zuweisen?
Danke schon mal im voraus!
Zu 1: Kann man. Dazu musst du mehrere Nginx Sites Configs definieren. Wie das geht, solltest du dir mal in der Dokumentation von Nginx anschauen.
Zu 2: Verschiedene User gingen meiner Erinnerung nach. Jedoch kann ich mich nicht an eine ausgebaute Rechteverwaltung erinnern.
Vielen Dank!
Ja, das mit den nginx-Seiten ist mir dann kurz nach dem Posten auch eingefallen – muss mich da noch ein wenig an die Konfiguration gewöhnen.
Eine andere Frage: Bei meiner Suche bin ich auf den CALDAV/CardDAV-Server radicale gestoßen – besteht die Möglichkeit, dass du in naher Zukunft ein Tutorial dazu erstellst? (Versuche es gerade auf eigene Faust, hilft aber sich nicht nur mir, sondern auch anderen)
Liebe Grüße!
Sehr interessanter Tipp. Klingt interessant und ist nun auf der Todo-Liste. Jedoch wird diese Anleitung nicht vor Ende März kommen.
Kalender funktioniert einwandfrei mit Thunderbird (Lightning) und Android (CalDAV_Sync) nur den Carddav bekomme ich nicht zum laufen (CardDAV-Sync und Thunderbird mit Sogo Connector) . Irgendjemand eine Idee?
hast du das Problem behoben? Wenn ja wie?
Danke
Hallo 🙂
Ich habe bei Punkt 5, bekomme ich die Meldung, dass ich nicht in das Verzeichnis baikal wechseln kann. („cd: baikal: Permission denied“)
Woran kann das liegen? Bin gerade sehr ratlos, würde mich freuen, wenn jemand eine Lösung hierfür hat,
Musste mich mit root anmelden, um zugriff auf das baikal Verzeichnis zu bekommen (sudo su).
Ich meine mich daran zu erinnern, dass es bei version 0.2.6 nicht nötig war.
Und wie gesagt carddav funktioniert bei mir nicht.
Gruß
Micha
Ich nehme an, ihr habt aus Step 5 folgenden Befehl nicht ausgeführt:
sudo chown -R www-data:www-data baikal/
Sicher, dass folgende Zeile aus Step 5 ausgeführt wurde?
sudo chown -R www-data:www-data baikal/
Ich habe das gleiche Problem, und bin mir sicher, dass ich „sudo chown -R www-data:www-data baikal/“ ausgeführt habe.
Wenn ich „ls -lah“ eingebe kommt auch für den Ordner „drwx—— 7 www-data www-data ….“
Scheint ein Rechte Problem im neuen Release von Baikal. Notlösung des Problems ist nun in Step 5.
Das ist ein stranges neues Release von Baikal. Habe nun eine Lösung des Problems in Step 5 eingebaut.
Dito! Habe das selbe Problem und habe auch „sudo chown -R www-data:www-data baikal/“ ausgeführt!
260225 4 drwx—— 7 www-data www-data 4096 Feb 5 21:31 baikal
Da haben die Macher von Baikal strange Rechte im neuen Release gesetzt. Step 5 ist nun so angepasst, dass es wieder klappen sollte.
Hallo.
Habe jetzt das Tutorial soweit durchgearbeitet konnte auch alles über das Webinterface bearbeiten etc. Das heißt php und nginx sollte ja alles so laufen. Allerdings schaffe ich es nicht das Thunderbird oder iOS auf den Server zugreifen können.
Bei Thunderbird frägt er nie nach einem Passwort und schreibt in der Konsole, dass das Ziel kein gültiges WebDAV Format hat etc.
Weiß du zufällig woran das liegen könnte?
Du bist dir sicher, dass dir eingegebene URL stimmt? Versuch doch mal in „/“ an da Ende der URL zu setzten.
Mit der Version 0.2.7 habe ich auch das Problem dass der Kalender nicht funktioniert. Thunderbird fragt nach einem Benutzer und Passwort jedoch funktioniert keine Kombination von Benutzer und Passwort. Ich weis wirklich nicht weiter …
Habe leider keine konkrete Idee, wobei ich sah, dass du mit dem Problem wohl nicht alleine bist. Siehe GitHub Issues des Projektes.
Moin Jan,
danke für dieses super Tutorial! Ich habe Baikal fein säuberlich danach installiert (mit SSL); läuft auch soweit und ist mittels Browser konfiguriert, aber ich kann leider weder auf die Kalender- noch auf die Kontaktdatein zugreifen (weder defaults, noch selbst erstellte) :/
Beim Versuch die Kontaktdatein in Evolution einzubinden erfolgt die Zertifikatsabfrage und dann folgende Fehlermeldungen:
„Unable to open address book
This address book cannot be opened. This either means that an incorrect URI was entered, or the server is unreachable.
Detailed error message: Unable to connect to ‚Baikal‘: Cannot open book: Not Allowed“
Kalender kann ich gar nicht erst hinzufügen.
Es scheitert scheinbar bereits am Einloggen mit dem angelegten Benutzer. Die Zugangsdaten habe ich bereits mehrfach überprüft, habs mit nem neuen Benutzer versucht, habs vom Smartphone versucht, Pfad mit und ohne eckige Klammern, Pfad nur bis zum ~/calendars/ bzw. ~/addressbooks/ versucht – nix. Bin auch die Zugriffsrechte noch mal durchgegangen – kein Erfolg.
Was könnte ich übersehen haben?
Zum Trost läuft wenigstens Seafile völlig Problemlos 😉
Greetz und weiter so,
Christoph
Es synct! : )
Habe nach deinem Step 5 zunächst den besitzer vom Ordner Specific gändert und dafür (wie auf https://github.com/jeromeschneider/Baikal/blob/master/INSTALL.md beschrieben) …
chown www-data:www-data Specific -Rf
… ausgeführt. Danach hab ich die Zugriffsrechte nach deiner Anleitung in Step 6 angepasst.
Warum auch immer … es geht jetzt!
Greetz
Ich glaube, das Problem wurde oben schonmal angesprochen, aber irgendwie hab ich den Lösungsvorschlag (wenn es denn überhaupt einer war…) nicht so richtig verstanden.
Ich habe die Anleitung Schritt für Schritt ganz brav befolgt; mit nginx und allem drum und dran, aber wenn ich http://[IP]/baikal/admin/install aufrufe, passiert – nix. Die Firefox-Seite (FF Version 28) bleibt weiß. Keine Fehlermeldung, kein Garnix.
Weiß irgendwer, woran das liegen könnte?
Da kann man jetzt viel Raten. Schau dir doch mal die Logfiles in /var/logs an, was diese aussagen. Andernfalls würde ich es an deiner Stelle einfach noch mal versuchen 😉
hallo Jan ist es auch möglich das ganze so zu konfigurieren das man mehrere Benutzer auf dem Server haben kann sprich Mutter Bruder Schwester legen ihre Daten auf dem Server ab jeder hat einen eigenen Benutzer.
des Weiteren wäre noch interessant ob sich dieseso gestalten lässtdass die Daten der einzelnen Benutzer nicht auf der SD-Karte gespeichert sind sondern auf einem über USB angeschlossen USB Stick oder einer externen Festplatte damit wenn das System mal crashed nicht alle Daten weg sind für ein kurzes ja oder nein vielleicht einen deutschsprachigen verweisen Internetwäre ich sehr dankbar
Baikal hat selber kein ausgeprägtes Rechtemanagement. Daher käme nur in Frage, Baikal mehrfach unter verschiedenen Unterordnern, die in den vHosts von Nginx definiert sind, zu installieren. Diese Installationen können jeweils auf z.B. USB-Sticks liegen. Ein einfaches Howto habe ich dazu nicht zur Hand. Ich kann hier lediglich auf das Nginx Wiki verweisen.
Ich hätte so ein Tutorial gern für Apache
Apache ist wesentlich performanter als Nginx und die Ressourcen des Raspberry Pis sind ja beschränkt. Daher verwende ich Nginx in allen Tutorials.
Super Anleitung, Vielen Dank!
Ein Problem habe ich. Umleitung ins Verzeichnis /baikal tut nicht. Innerhalb des Dashboards zeigen alle url’s statt ins Docroot nach Serverroot, sprich
https://hostname.domain/admin/ statt https://hostname.domain/baikal/admin/
Ich würde gerne MySQL einsetzen. Sobald ich das Häkchen in den System Settings setze, springt wirres Zeug herraus.
[…]exception ‚Exception‘ with message ‚SQL ERROR in: ‚SHOW TABLES FROM ‚; Message: Array[…]
Die mysql-db, mysql-user sind eingerichtet und die db.sql importiert.
Bei einer anderen Installation unter Apache (jedoch baikal-regular-0.2.7.tgz) funktionierte es astrein.
Zur ersten Frage: Hast du selbst eine Umleitung eingerichtet? In dem Tutorial wird nämlich keine Umleitung in das „Serverroot“ (wie du es nennst) eingerichtet.
Zur MySQL: Klingt so als wolle Baikal schon auf die MySQL Datenbank zugreifen, die ja noch gar nicht eingerichtet ist. Hast du denn das ENABLE_INSTALL File gesetzt (Step 6)?
Jan, vielen Dank für’s mitdenken.
zu MySQL: Du hast Recht, der touch fehlte. warum auch immer 🙂
zum Rest: meine Abweichung zur Anleitung ist die eingeklammerte location
location /baikal { rewrite ^/.well-known/caldav /baikal/cal.php redirect; rewrite ^/.well-known/carddav /baikal/card.php redirect; charset utf-8; }
ggf. kommt aus dieser Ecke das falsche Umbiegen?
Weiter hab ich herausgefunden, nginx scheint dies nicht zu nehmen:
rewrite ^ https://$server_name$request_uri? permanent;
aber so:
rewrite ^/(.*)$ https://dav.host.domain/$1 permanent;
Habe das ganze nun als eigenständigen vhost unter dav.host.domain konfiguriert. Ist bisserl übersichtlicher als host.domain/baikal.
Ich Danke Dir.
PS: sehr netter Blog, bleibe weiter dran
Hallo Jan,
ich habe auch eine kleine Frage:
Bei mir läuft seit geraumer Zeit die Version 0.2.6 auf einem externen Webhoster.
Nun wollte ich wie beschrieben auf 0.2.7 updaten.
Habe den Specific Ordner mit den Datenbanken gesichert und dann 0.2.7 hochgeladen, specific Ordner zurückgeschrieben und Baikal Admin aufgerufen.
Update wurde erkannt und durchgeführt.
Meine Kalender usw sind alle wieder da, nur habe ich jetzt von meinen Endgeräten keinen Zugriff mehr danach auf die einzelnen Kalender.
zurück zu 0.2.6 und alles läuft wieder perfekt.
Weiss einer was ich falsch mache ?
Leider keine Idee, sorry.
Hallo,
ich hab mich soweit an die Anleitung gehalten, leider kann ich partout nicht auf das Web-gui zugreifen unter 192.xxx.xxx.xx/baikal/admin/install kommt nur die Meldung „Firefox kann keine Verbindung zu dem Server unter 192.xxx.xxx.xx aufbauen.“
Die IP stimmt, ich habe noch einen Logitech Media Server laufen den ich problemlos erreichen kann. Hier kann ich den Fehler partout nicht finden.
Owncloud hatte ich mal testweise installiert, das ging gefühlt einfacher, leider ist der raspberry doch mittelschwer damit überfordert wenn nebenbei noch etwas anderes läuft.
Tobias
Läuft den nginx? Kannst du mit folgendem Kommando prüfen:
sudo /etc/init.d/nginx status
Hallo Jan,
zunächst vielen Dank für das super Tutorial. Ich habe – glaube ich zumindest – alles so gemacht, wie du es beschrieben hast. Gebe ich nun https://mydomain/baikal/Specific/db/db.sqlite in den Browser ein, kann ich ohne mich einzuloggen die gesamte Datenbank von Baikal downloaden. Ich habe die nginx Konfiguration nun entsprechend angepasst, wollte aber trotzdem wissen, ob ich etwas in deiner Anleitung übersehen habe?
VG Philipp
Sollte eigentlich bereits mit Step 3 Line 15 erledigt sein. Falls das nichts gebracht hat bitte ich dich deine Lösung hier zu posten und ich werde diese natürlich ins Tutorial einpflegen.
Hi Jan!
Vielen Dank für deine Anleitung! Ich habe alles so gemacht wie beschrieben und ich konnte auch schon einen User und Kalender im Web Admin anlegen. Jedoch kann ich den Kalender nirgends hinzufügen weil ich immer Fehlermeldungen bekomme in Apple Kalender z.B. Bei der Anfrage bei abonnierten Kalendern ist ein unerwarteter Fehler aufgetreten. (Fehler: -1). Wenn ich die URL im Browser eingeben, werde ich nach meinen Zugangsdaten gefragt und eingeloggt, jedoch steht dann dort folgendes:
This XML file does not appear to have any style information associated with it. The document tree is shown below.
Sabre\DAV\Exception\NotImplemented
GET is only implemented on File objects
1.8.7
Bzw. wenn ich einen Kalender im Apple Kalender veröffentlichen möchte, bekomme ich immer den Fehler 100
Vielen Dank schon mal für deine/eure Hilfe!
LG David
Habe das Tutorial gerade auf Version 0.2.6 angepasst. Mit der aktuellen Version habe ich nämlich nun schon öfter von Problemen gehört. Probier’s mal mit dieser Version 😉
Hallo Jan,
anscheinend liegt die 0.2.6 nicht mehr auf der Hauptseite, da
sudo wget http://baikal-server.com/get/baikal-flat-0.2.6.zip
im Putty nur einen 404er auswirft. Die 0.2.7 lässt sich ohne Probleme von dort runterladen, jedoch mit dem bekannten Problem dass angelegte Kalender im Lightning gelockt sind. Auch ein „aktivieren“ der Kalender in Lightning (rechtsklick auf den Kalender, „Eigenschaften“) funktioniert nicht.
Wäre unter diesen Umständen vielleicht besser, die 0.2.6 direkt von GitHub zu laden und die Anleitung auf diese Version anzupassen
Auf Github gibt es leider keine Flat-Version und das händisch zusammen zu basteln ist auf Grund der etwas eigenwilligen Struktur nicht so easy.
Habe den Link nun auf 0.2.7, trotz den bekannten Problem, umgebogen.
Danke für deinen Hinweis!
So ist es auch bei mir.
Ohne SSL und ohne Anpassungen auf einem kostenlosen Webspace von überall erreichbar.
Hinter dem CalName muss noch ein Slash / !
Und der Kalender Name ist der den du vergeben hast, z.B. privat.
SSL wäre natürlich prima, aber das kriege ich nicht alleine hin. Dazu bräuchte ich Hilfe.
Schöen (Rest)Pfingsten
Thomas
Verbessert, danke!
Ja, Ich hab alles versucht. Die 0.2.7 bekomme ich nicht zum laufen. Die 0.2.6 läuft bei mir jetzt seit 3 Monaten mit 4 Handys, einem Tablet ,mehreren Pc’s mit Lightning einwandfrei.
Wer die 0.2.6 braucht kann sich bei mir melden.
Magst mir die per Mail schicken? Dann lade ich sie entsprechend der Lizenz hoch. E-Mail Adresse findest im Impressum.
Dankeschön. Ist online.
So, die 0.2.6 läuft ohne SSL im internen Netz problemlos. Als kleiner Stolperstein hat sich noch in
CalDav: http://[IP/DynDNS%5D/baikal/cal.php/calendars/%5Busername%5D/%5Bcal name]
bzw. den anderen Beispielen [cal name] erwiesen. Die Bezeichnung [Cal token ID] wie im Admin-Panel verwendet macht schneller klar, was dort eingetragen werden muss ;).
Hallo,
vielen Dank für das klasse Tutorial. Es sollte noch ergänzt werden, dass beim Verwenden von SSL auf Android-Geräten (hab Handy mit Cyanogen-Mod) das baikal.crt händisch importiert werden muß. Ansonsten gelingt der Kontakt nicht. Das Selbe gilt für Windows Thunderbird Lightning. Auch hier mußte ich erst das baikal.crt lokal speichern und dann über „Extras-Einstellungen-Erweitert-Zertifikate-importieren“ das Zertifikat von hand importieren, sonst hing Thunderbird beim Starten von Lightning.
Auf seinen DesktopRechner bekommt man das Zertifikat z.B. unter Windows mit Putty bzw. pscp.exe. Anleitung für das cmd-Fenster unter Windows kann man mit den Stichwort „pscp manual“ schnell finden.
Vielleicht kannhier noch jemand einen Tip abgeben, wie man mehrere KAlender mit Thunderbird synchron hält? Er fragt nur einmal beim Kalenderstarten bzw. ssl-Kontaktieren ein Benutzername/Paßwort für das Zertifikat (?) ab und nimmt dann auch nur diesen Nutzerkalender. Ein zweiter Kalender mit anderem Namen unter der IP (aber ja gleiches Zertifikat) bleibt inaktiv. Irgendeine Idee?
Danke und Gruß
Roy
Hallo Jan,
tolles Turtorial habe nginx mit ssl und Baikal auf dem Raspberry installiert. Das hat auch alles soweit geklappt, Baikal lässt sich konfigurieren und Benutzer anlegen. Aber ich bekomme keinen Zugriff vom Ipad (ios7), wenn ich da einen Caldav Account hinzufüge bekommt er keine Verbindung zum Server. Was kann ich tun? Ich hab schon sämtliche Pfade usw. getestet. In einem anderen Turtorial steht was das PHP 5.3 oder höher benötigt wird kann es sein, das ich ein anderes PHP benötige?
MfG
Antonio
Bist du mit einem iPad vielleicht nicht im selben Netz und du hast die Ports (siehe Ende des Beitrags) nicht freigegeben?
Hallo,
super Anleitung – ich habe Baikal auf einen Cubietruck gemäß dieser Anleitung installiert.
Ich kann in der Admin-Website alles konfigurieren. Habe aber das gleiche Problem wie David beim Ansprechen des KAlenders.
Applegeräte sagen „kein WEBDAV-Server“ und Kalender-Aufrufe übers HTTP durchführe passiert dies:
Wenn ich die URL im Browser eingeben, werde ich nach meinen Zugangsdaten gefragt und eingeloggt, jedoch steht dann dort folgendes:
This XML file does not appear to have any style information associated with it. The document tree is shown below.
Sabre\DAV\Exception\NotImplemented
GET is only implemented on File objects
1.8.7
Kann jemand helfen?
Vielen Dank schon mal vorab
Fritz
das Problem habe ich auch und da würde mich auch eine Antwort interessieren! 🙂
Anmerkung, jedoch keine „richtige“ Lösung:
„lustigerweise“ ist das nicht mit allen Add-Ins so … nach endlosen suchen habe ich ein kostenpflichtiges Programm gefunden, damit funktioniert es: http://www.bynari.de/download/#WebDAV (WebDAV Collaborator)
Mac OS X bzw. iOS benötigt eine andere Linkstruktur. Habe den Artikel am Ende entsprechend erweitert. Mit dem neuen Link sollte es funktionieren 🙂
Hallo Jan,
vielen Dank für die Ergänzung, leider funktioniert diese bei mir auch nicht. Ich finde in meiner Installation kein remote.php.
Hallo,
hier für alle wie es bei mir funktioniert hat (OS X 10.9.4 und iOS 7.1.1)
bei Serverpfad habe ich folgendes eingetragen:
(neuer Internet-Account in OSX carddav)
für Kontakte:
http://name_des_servers/baikal/card.php/principals/username/
(neuer Internet-Account in OSX caldav)
für Kalender:
http://name_des_servers/baikal/cal.php/principals/username/
wie schon gesagt ich benutze kein ssl – mein Cubietruck steht im LAN und ich synce nur hier.
Ich habe die Kontakte als Outlook Visitenkarten importiert – wobei sich baikal dabei ein wenig zickig gezeit hat, einige Visitenkarten (hauptsächlich solche mit zus. Firmen-Infos) kam es zu Fehlern – diese habe ich in OSX dann neu angelegt.
VG Fritz
Hab den Artikel mal nach deinen Erfahrungen ergänzt. Danke!
Hallo zusammen,
ich habs zum Laufen gebracht – war mein Fehler hatte ohne caldav Client versucht den Link über den Firefox im WIndows zu öffnen :-((.
Kalender und Adressen sync mit OSX 10.9.4 / iPad / iPhone funktionieren nun super (da ich nur „inhouse“ synce habe ich kein ssl installiert)
Vielen dank noch mal für die super Anleitung
Fritz
Falls es jemanden, wie mir, ein Anliegen ist nicht als Standard-Benutzer „admin“ einzuloggen, hier ein kleines Tutorial:
1. automatisches ausfüllen von „Benutzer“ entfernen, unter:
/usr/share/nginx/www/baikal/Core/Frameworks/BaikalAdmin/Controller/Login.php
if(trim($sLogin) === „“) {
$sLogin = „admin“;
}
ersetzen durch:
if(trim($sLogin) === „“) {
$sLogin = „“;
}
2. neuen Benutzernamen setzen (Zeile 98), unter:
/usr/share/nginx/www/baikal/Core/Frameworks/BaikalAdmin/Core/Auth.php
if($sUser === „admin“ && $sPassHash === BAIKAL_ADMIN_PASSWORDHASH) {
versetzen durch
if($sUser === „neuerBenutzer“ && $sPassHash === BAIKAL_ADMIN_PASSWORDHASH) {
Anmerkung:
———-
neuerBenutzer ersetzen durch gewünschten Benutzernamen.
Danke Christian für diese Anmerkung!
Jan solltest du vielleicht oben mit bei dir Aufnehmen damit dies nicht unter den ganzen Kommentaren untergeht
Hallo,
echt eine hilfreichen und interessanten bloq hast du hier.
Ich hänge gerade an Step 8/9:
wenn ich nginx erneut starten wil bekomme ich einen meldung: unknown derective „..#“ in /etc/nginx/sites-enabled/default:2.
Weißt Du was ich falsch gemacht habe?
Vielen Dank schonmal!
Steffen
Du hast in /etc/nginx/sites-enabled/default nahe Zeile 2 einen Fehler. Ich tippe du hast da ungewollt was reingeschrieben.
Hi Jan, prima Anlleitung – vielen Dank. Alle Hickups waren durch meine Ungeduld begündet. Jetzt sitz ich beim Restart von nginx in Punkt 9 fest. Erhalte folgende Meldung:
Restarting nginx: nginx: [warn] server name „https://$server_name$request_uri?“ has suspicious symbols in /etc/nginx/sites-enabled/default:23
nginx: [emerg] „server_name“ directive is not allowed here in /etc/nginx/sites-enabled/default:37
nginx: configuration file /etc/nginx/nginx.conf test failed
Die default in sites-enabled sieht so aus:
server {
listen 80;
server_name home-cloud.no-ip.org
rewrite ^ https://$server_name$request_uri? permanent; # enforce https
}
server {
listen 443 ssl;
server_name home-cloud.no-ip.org;
ssl_certificate /etc/nginx/ssl/baikal.crt;
ssl_certificate_key /etc/nginx/ssl/baikal.key;
}
root /usr/share/nginx/www;
index index.html index.htm index.php;
# Make site accessible from http://localhost/
server_name localhost;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ /index.html;
# Uncomment to enable naxsi on this location
# include /etc/nginx/naxsi.rules
}
location /doc/ {
alias /usr/share/doc/;
autoindex on;
allow 127.0.0.1;
allow ::1;
deny all;
}
# pass the PHP scripts to PHP-FPM server listening on unix socket
location ~ ^(.+\.php)(.*)$ {
try_files $fastcgi_script_name =404;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
include /etc/nginx/fastcgi_params;
}
rewrite ^/.well-known/caldav /baikal/cal.php redirect;
rewrite ^/.well-known/carddav /baikal/card.php redirect;
charset utf-8;
location ~ /(\.ht|Core|Specific) {
deny all;
return 404;
}
}
Ich hab die kritische Z23 dreimal händisch ersetzt, tatsächliche server-domain rein und raus, alle Sonderzeichen raus & rein, etc.. Was mach ich falsch?
Sorry, shame on me: am Ende von ’server_name home-cloud.no-ip.org‘ fehlt das „;“ und in der Zeile nach ’ssl_certificate_key /etc/nginx/ssl/baikal.key;‘ ist die „}“ falsch.
Was beweist: absolut gute Anleitung. ESP=exact, specific, precise.
Guten Tag.
Wow, vielen Dank für die vielen tollen Anleitungen hier! Mein Raspberry Pi lag verstaubt hinter dem Fernseher – und hat jetzt dank diesen Anleitungen neue Aufgaben bekommen 🙂
Die Installation von Baikal (und nginx) hat soweit funktioniert. Baikal läuft, ein Benutzer ist eingerichtet… Aber: Irgendwie habe ich keine Schreibrechte auf dem Kalender… Sowohl in Lightning als auch dem iPhone bleibt der Kalender inaktiv… In Lightning werde ich nicht mal nach Benutzername/Passwort gefragt…
Hat jemand eine Idee, woran das liegen kann?
Gelöst!
Ich bin schon in der ersten Runde auf dieses Problem gestossen – und es wurde hier auch schon erwähnt: In Step 3 hat es irgendwelche unsichtbaren Sonderzeichen oder Formatierungen, welche beim direkten kopieren von der Website ins Terminalfenster / nano zu Fehler führen!
Ich hatte diese zwar alle ausgebügelt bis der anschliessende Neustart von nginx klappte – aber offensichtlich war da noch mehr…
Ich habe also den gesamten Codeteil zuerst in einen Text-Editor kopiert, damit er alle Formatierungen verliert, und von dort erst ins Terminalfenster mit nano.
Jetzt kann ich auf den Kalender zugreifen…
Hallo Jan,
ich würde gerne anstatt Baikal, ownCloud verwenden weil dort ja bereits der caldav und cardav server integriert ist. Könntest du mir sagen, wie ich Baikal und die zusätzlichen Sachen wieder sauber entferne, damit ich sauber owncloud aufsetzen kann?
Ich hoffe du kannst mir weiter helfen.
Mfg Ironcurtain
@Ironcurtain
Genau das habe ich gerade gemacht – und aus dem gleichen Grund. Am besten man fängt ganz von vorne an mit einer komplett neuen NOOBS-Installation. Dann gibt es jetzt von owncloud die Version 7.0.1.. Braucht man nur beim Download, Entpacken und Löschen die Version ändern. Ansonsten ist die Anleitung von Jan noch voll gültig. Er hat auch noch eine A für ein Update von V6 auf V7 geschrieben. Wie immer prima.
Ich zacker zur Zeit ein bischen mit der Syntax für den Link Thunderbird-SOGO-owncloud herum. Muss noch das OC Manual studieren.
Viel Glück.
Habe Baikal soweit am laufen. Einziges Problem ist: Wenn ich auf meinem Smartphone mittels Carddav versuche zuzugreifen, prüft er die Servereinstellungen und wirft keine Fehlermeldung aus, bleibt aber im Bearbeitungsmodus des Kontos. Login ist richtig, da mit falschem Login eine Fehlermeldung ausgespuckt wird. Der Fehler muss also in der Adress liegen. Diese habe ich bereits überprüft.
Hast du Benutzername und Kalendernamen eingesetzt und den Platzhalter inklusive eckiger Klammern entfernt?
Jop alles genau so gemacht wie es da steht. Per Browser alles tutti. Nur per Android App geht es nicht!
Endlich läuft es! Habe als Adresse einfach nur domain/baikal/card.php genommen und es funktioniert! Leck mich fett!
Ich würde aber annehmen, dass das eher am verwendeten Client als am Server liegt…
Vielen Dank für die Anleitung Jan.
Das hat alles klasse funktioniert. Thunderbird mit Lightning und SoGo Connector Addon tun, was sie sollen. Auch auf dem iPhone keine Probleme mit der Synchronisiation sowohl für CalDAV als auch für CardDAV.
Unter Android verwende ich die App DAVDroid für die Synchronisation. Die fand leider, dass mein selbst-signiertes SSL Zertifikat nicht vertrauenswürdig ist und hat deshalb erst mal gar keine Verbindung zu meinem Server gestattet. Es erschien die Fehlermeldung „Cannot verify hostname“. In der Dokumentation zu DAVDroid ist beschrieben, was in diesen Fällen zu tun ist: http://davdroid.bitfire.at/faq/entry/cannot-verify-hostname
Das Zertifikat des Servers muss in die Vertrauenswürdigen Anmeldedaten aufgenommen werden. Und das geht wiederum nur im DER-Format. Ich habe daraufhin versucht das mit deinen Befehlen erstellten SSL-Zertifikat ins DER-Format zu konvertieren:
openssl x509 -in cert.pem -outform DER -out cert.crt
und auf das Android-Gerät übertragen. Dort konnte ich es auch mit der Funktion „Einstellungen – Sicherheit – Anmeldedatenspeicher – Von-SD-Karte installieren“ installieren, aber es erschien nicht in den Benutzerzertifikaten unter „Vertrauenswürdige Anmeldedaten“ obwohl Android behauptet hat, dass es erfolgreich installiert wurde.
Nach etwas gegoogel bin ich auf diese Seite gestoßen:
http://android.stackexchange.com/questions/61540/self-signed-certificate-install-claims-success-but-android-acts-as-if-cert-isn
Dort ist diese Seite verlinkt, die gut zusammenfasst, welche Probleme es bei selbst-signierten Zertifikaten bei den unterschiedlichen Mobilplattformen so gibt:
http://pic.dhe.ibm.com/infocenter/wrklight/v6r0m0/topic/com.ibm.worklight.help.doc/admin/c_ssl_config.html
Um es kurz zu machen: Android akzeptiert das mit deinen Befehlen erstellte selbst-signierte Zertifikat nicht, weil es sich nicht um ein selbst-signiertes CA-Zertifikat handelt.
Ich habe mir daraufhin ein neues CA-Zertfikat erstellt, das eine Gültigkeit von 2 Jahren hat. Es kommt dabei vor allem darauf an das ein X.509 Version 3 Zertifikat mit der Extension „basicConstraints = CA:TRUE“ erstellt wird. Das ging so:
cd /etc/nginx/ssl
sudo openssl req -x509 -nodes -days 760 -newkey rsa:2048 -keyout /etc/nginx/ssl/baikal.key -out /etc/nginx/ssl/baikal.crt -reqexts v3_req -extensions v3_ca
und aus dem daraus entstandenen CA-Zertifikat noch mal eine DER-Version gemacht:
sudo openssl x509 -in /etc/nginx/ssl/baikal.crt -outform der -out /etc/nginx/ssl/baikal.der.crt
Die DER-Version des CA-Zertifikats habe ich in das Web-Verzeichnis von nginx kopiert und den Besitzer geändert, damit man es runterladen kann:
cd /usr/share/nginx/www
sudo cp /etc/nginx/ssl/baikal.der.crt /usr/share/nginx/www/baikal.der.crt
sudo chown www-data:www-data baikal.der.crt
Dann habe ich das Zertifikat über den Browser auf dem Android Gerät runtergeladen. Die Adress lautet dabei:
https://[meineIP/DynDNS%5D/baikal.der.crt
Das Zertifikat im root der SD-Karte auf dem Android-Gerät gespeichert und über die Funktion „Einstellungen – Sicherheit – Anmeldedatenspeicher – Von-SD-Karte installieren“ in den Vertrauenswürden Anmeldedaten gespeichert.
Danach war das Zertifikat unter den Benutzer-Zertifikaten dort sichtbar und DAVDroid hat wie gewünscht die Verbindung zu meinem Server aufgebaut und alles synct wie es soll.
Ist das Zertifikat auf allen gewünschten Android-Geräten heruntergeladen, sollte man es wieder im www-Ordner von nginx löschen:
rm /usr/share/nginx/www/baikal.der.crt
Ob jetzt unter iOS Probleme entstehen, weiss ich noch nicht. Vermutlich wird es meckern, dass ein neues Zertifikat benötigt wird. Vielleicht kannst du die Befehle zur Erstellung des selbst-signierten Zertifikats in deiner Anleitung noch anpassen?
Danke für diese ausführliche Schilderung deiner Lösung. Ich lasse diese hier in den Kommentaren mal stehen, da ich persönlich auch Android nutze (4.2.x) und kein Problem feststellen konnte. Wird aber auch Client liegen, den man benutzt.
Hallo zusammen,
erstmal großes Lob für Jan, die Website ist sehr übersichtlich und die Tutorials super!
Bei der oben geposteten Lösung komme ich immer noch nicht weiter.
Ich kann zwar endlich das baikal Zertifikat in Android (genauer: SlimKat 4.[…]) installieren und es wird auch angezeigt, aber DAVDroid zeigt trotzdem an, dass ein nicht vertrauenswürdiges Zertifikat in der Kette vorhanden ist.
Nun hab ich versucht, dieses Zertifikat mit CADroid zu holen. Dabei kann ich erkennen, dass das angeforderte Zertifikat (bei CADroid) ein anderes ist, als das, das ich händisch nach o.a. Anleitung installiert hab.
Wenn ich vom Desktop aus die nginx Startseite ansteuere, dann kann ich das hinterlegte Zertifikat ansehen.
Dieses stimmt mit dem Zertifikat überein, dass mir auch CADroid anzeigt, außer, dass in Seriennummer und SHA-1 die Nullen fehlen.
Jetzt bleibt, soweit ich das Thema durchblicke, nur die Frage: Was ist das für ein Zertifikat und wo finde ich es, sodass ich es nach o.a. Anleitung auf Android installieren kann?
Im Ordner /etc/nginx/ssl befinden sich nur die baikal Dateien!?
@binke Vielen Dank für den ausführlichen Beitrag. Echt super!
Da geht mir nun ein Licht auf, warum mein cert von der CA nicht angenommen wurde.
Mit DAVdroid bin ich kläglich und kopfschüttelnd gescheitert. CalDAV-Sync u. CardDAV-Sync funktionierte hingegen auf Anhieb.
Werde das ganze nochmal nach obiger Anleitung durchspielen.
@jan Guter Stoff um den Hauptbeitrag zu erweitern, ggf. auch als Erweiterungsthema
Ich habe der Anleitung gefolgt, (bis auf in der nginx installation ab dem ruby teil).
Ich konnte alles einrichten. Jedoch erscheint nach dem ich auf das Admin interface zugreifen konnte nur eine weiße seite.
Sonst nichts. Bis dahin hatte alles funktioniert. Ich hatte auch das Admin interface deaktivieren geklickt und danach im Specific Ordner mittels touch ENABLE_ADMIN die datei erstellt. Doch nichts passiert. Als ob nginx ein Problem in der config Datei hätte.
Errorlog von nginx: http://pastebin.com/NjrPASfE
Im Error Log steht:
PHP message: PHP Fatal error: Uncaught exception 'PDOException' with message 'could not find driver'
Daraus resultierend gehe ich davon aus, dass du die Installation von SQLite aus Step 2 nicht beachtet hast.
Hallo Jan,
ich habe Probleme mit dem Abruf des CalDAV Kalenders … Einrichtung klappte, Administration auch, jedoch kann ich weder mit Outlook+cFos noch mit TB+Lightning irgendetwas auf den Kalender schreiben/abholen … in TB wird der nach Eingabe der Zugangsdaten einfach deaktiviert und lässt sich nicht nutzen, erstmalig kam die Aussage, dass kein Kalender gefunden wurde – was mache ich falsch?!
Viele Grüße
Max
Hi Jan,
habe soweit alles installiert und es hat alles gepasst. Konnte ohne Probleme auf das Webadmin Interface Zugreifen und User und Kalender erstellen.
Blos ich kann nicht auf die Kalender zugreifen..
Und nach einem Reboot funktioniert nichts mehr, bekomme nur noch 404-Error
Viele Grüße
Toni
Ich nehme an, du hast dann irgendetwas an der nginx Config rumgebastelt, nicht so wie im Tutorial angegeben. Versuchs doch einfach noch einmal 😉
Hallo Jan,
vielen Dank für die tolle Anleitung! Bei mir hat alles so gut wie auf Anhieb geklappt, und zwar auch mit der 0.2.7er-Version. An SSL habe ich mich allerdings nicht getraut. 🙂
Beim Ersetzen der Zeilen in der Konfigurationsdatei muss man darauf achten, keine Zeile zu viel oder zu wenig wegzunehmen – sonst kommt die Logik der Konfigurationsanweisungen durcheinander und man kassiert beim Neustart von nginx Fehlermeldungen (ist mir einmal passiert, als ich aus Versehen eine } zu viel gelöscht hatte).
Was muss ich nach einem Reboot des Pi tun, damit Baikal wieder läuft? Reicht ein Neustart von nginx und php5-fpm oder gehört noch was anderes dazu? Vielleicht könntest du ein kleines Skript machen, was diese Aufgaben erledigt?
Nochmals danke und viele Grüße,
Harry
Wenn nginx und php5-fpm wie in der Anleitung beschrieben richtig installiert wurde starten diese Anwendungen automatisch mit dem Boot des Raspberry Pis.
Hallo Jan,
zunächst einmal auch von mir einen riesigen Dank für die viele Arbeit, die Du Dir mit den Anleitungen machst.
Alles was ich davon bisher ausprobiert habe, hat auch immer auf Anhieb funktioniert.
Bei Bailka hab ich jetzt allerdings ein Problem: Nach Aufruf des kalenders und Anmeldung daran kommt folgende Fehlermeldung:
This XML file does not appear to have any style information associated with it. The document tree is shown below.
Sabre\DAV\Exception\NotImplemented
GET is only implemented on File objects
1.8.6
nginx hab ich nur bis Schritt 8 installiert. Brauche ich Ruby on Rails auch?
Hast du die CalDav/CardDav URL im Browser aufgerufen? Das geht nicht. Damit du eine ordentliche Ausgabe bekommst musst du sie über einen entsprechenden Client aufrufen. Lediglich das Webinterface kannst du über den Browser ansteuern.
Hallo Jan,
zunächst einmal, super Anleitung! Hat alles auf anhieb geklappt. Lediglich Android wollte das SSL Zertifikat nicht so recht annehmen, was dann aber doch noch so geklappt hat wie ich es wollte.
Nun zu meiner Frage. Von OwnCloud kenne ich einen Geburtstags Kalender in den automatisch alle Geburtstage der Kontakte eingetragen werden. Bis jetzt konnte ich über Google lediglich ein Python Script finden, welches ich nicht zum laufen bekomme (https://github.com/netgusto/Baikal/issues/38). Hast du eine Idee wie man soetwas realisieren kann oder das Script zum laufen bekommt?
Jonas
Jonas,
versuch den Birthday Calendar Adapter. Er extrahiert die Geburtstage in eigenständigen Kalender und stellt ihn z.V.
https://play.google.com/store/apps/details?id=org.birthdayadapter&hl=de
Danke für den Hinweis, funktioniert einwandfrei
[…] Als letztes Kapitel in dieser Tutorial installieren wir “Baikal”. Mit Baikal können wir unseren eigenen Kalender- und Kontakteserver auf dem Raspberry Pi einrichten und so sämtliche Kalendereinträge und Adressen über mehrere Geräte synchron halten. Quasi analog zu Apples iCloud. Die Anleitung stammt ebenso von Jan Karres. […]
Hallo Zusammen,
Interessante Plattform für den Raspi, nun bin ich jedoch auch an meine Grenzen gekommen: Habe Baikal aufgesetzt und es funktionierte – bis mir mein Neztbetreiber einen strich durch die Rechnung machte – CarrierGrade NAT 🙁
Darum versuche ich nun von IPv4 auf IPv6 umzustellen, da ich da immerhin konsistente Adressen bekomme. Ich habe also IPv6 in Raspbian initialisiert und auch nginx entsprechend konfiguriert, das läuft alles. Jedoch bekomme ich, wenn ich über die IPv6 Zugreifen will keine Verbindung zu Baikal (IPv4 klappt) … steht jemand vor ähnlichen Problemen bzw. weiß, was ich vergessen haben könnte?
Liebe Grüße, Mike
Kann den der Client auch mit IPv6 umgehen? Das was dein Provider da veranstaltet wird immer häufiger – und zum Problem.
Hi Jan,
vielen Dank für die schönen Artikel!
Vielleicht will man die Sicherheit für das Zertifikat etwas höher setzen mit SHA2 und einem 4096 Bit Schlüssel.
Dann könnte man das so versuchen:
Grüße!
Nachdem das sowieso noch auf meiner Todo-Liste stand habe ich es nun angepackt und es in allen Anleitungen überarbeitet. Danke!
Hallo,
ich musste noch in der nginx-Konfigurationsdatei etc/nginx/sites-available/default im Abschnitt
location ~ ^(.+\.php)(.*)$
den Eintrag „autoindex on;“ hinzufügen, da baikal keine Dateipfade in den PHP-Skripten hinterlegt hat, sondern nur die Verzeichnisse und sonst nur „Forbidden – 403“ zurückkommt, da das Auflisten nicht erlaubt ist.
Vielleicht kann man das noch ergänzen, das hat mich jedenfalls etwas Zeit gekostet.
Viele Grüße,
Tobias
Sollte meines Erachtens nach, wenn nach dem Tutorial vorgegangen wurde, auch ohne funktionieren.
Das Problem hatte ich zuerst auch, es lag daran dass ich bei der nginx Installation nicht wie von dir beschrieben den Step 7 ausgeführt hatte – es fehlte der Eintrag für index.php. Danach gings dann..
Hi,
vielen vielen Dank für diesen Blog (der 1. für den ich meinen Adblocker ausgeschaltet habe^^). Hat mir sehr geholfen nginx,php, baikal und seafile auf meinem Raspberry Pi zu installieren!
Funktioniert alles tadellos, bis auf ein blödes Problem, zu dem ich einfach keine Lösung finde:
Synce baikal mit OSX Yosemite, ios 7 und whitedoor 7. Das funktioniert alles.
Nur bei ios 6 auf einem ipod Touch (den man nicht weiter upgraden kann), funktioniert carddav nicht!
Habe alles so eingerichtet, dass in den nginx einstellungen (sites-available) sowohl meine dyndns-Adresse, als auch meine internen IP eingetragen ist, weil es sonst von innerhalb meines Heimnetzes bei keinem Gerät funktioniert hat (weiß nicht warum, da alle Ports offen sind vielleicht ein Problem vom Router?!). Nur wenn ich mich über einen VPN verbunden habe ging auch die dyndns vom Heimnetz aus (war ja dann auch quasi nicht mehr das Heimnetz).
Hier mal der Auszug aus der nginx einstellung – /etc/nginx/sites-available/default (vielleicht ist da ja was falsch – logischerweise sind im Original keine X sondern Buchstaben/Zahlen):
server {
listen 80;
server_name XXXX.ddns.net 192.168.X.X;
rewrite ^ https://$server_name$request_uri? permanent; # enforce https
}
server {
listen 443 ssl;
server_name XXXX.ddns.net 192.168.X.X;
ssl_certificate /etc/nginx/ssl/baikal.crt;
ssl_certificate_key /etc/nginx/ssl/baikal.key;
root /usr/share/nginx/www;
index index.html index.htm index.php;
# Make site accessible from http://localhost/
server_name localhost;
So, caldav funktioniert auf dem ipod mit ios 6 übrigens erst völlig problemlos, seidem ich das für ssl verwendete baikal.crt per mail-anhang an mich selbst geschickt und dann auf dem ipod installiert habe (hab ich genauso bei ios7 gemacht, der hat dann zwar immernoch gemeckert es aber akzeptiert).
Wenn ich auf iOS 6 den account anlege, sagt lange lange Zeit „überprüfen…“ mit einem sich drehenden Rad (ohne Fehlermeldung, die kommen würde wenn irgendwas falsch eingegeben wäre), bis er dann sagt (Verbindung mit ssl nicht möglich, wollen sie versuchen ohne ssl anzumelden?) wenn man okay drückt funktioniert es nicht und wenn man abbrechen drückt und trotzdem speichert (ein „Trick“ den ich für das Problem in anderen Foren allerdings bezüglich iOS 7 gefunden habe) wird auch nichts synchronisiert…
Woran kann das liegen???
Vielen Dank schonmal für eine Antwort (und für das Lesen dieses gigantischen Texts)!
Klingt eigenartig, wobei ich leider keine konkrete Idee für dich habe…
Hallo Jan,
Ich habe nach deiner Anleitung Baikal installiert. Webserver und alles weitere hat einwandfrei geklappt. Einzig libcurl3-gnutls-dev und libcurl3-openssl-dev gibt es so nicht (mehr) wie ich mittels apt-cache search [Suchbegriff] herausgefunden habe. Dafür libcurl4-gnutls-dev und libcurl4-openssl-dev die ich dann auch installiert habe. Die installation hat damit bis zum Ende einwandfrei geklappt.
Nun habe ich meinen RasPi neu gestartet und kann das Baikal Admin-Interface nicht mehr aufrufen. Leider habe ich überhaupt keine Idee woran das liegen könnte. Der Webserver läuft einwanfrei da ich die Willkommen-Seite angezeigt bekomme.
Wird den nur die Willkommen-Seite eingezeigt? Falls ja würde ich tippen, dass die Konfiguration von nginx nicht korrekt ist.
Hi,
erstmal vielen Dank für deine Tutorials! Damit bekommt mein Pi endlich mal was zu tun, und meine Kontakte und Kalender sind nun ebenfalls in meinen Händen 🙂
Im access.log sieht man, dass es einige Versuche von unbekannten Dritten gibt, auf den Webserver zu kommen. Sicherlich irgendwelche Portscanner uä., bisher auch erfolglos. Da ich mich mit Thema Sicherheit auf Webservern nicht auskenne wüsste ich gerne, ob es noch weitere Türen gibt, die man evtl. abschotten könnte? Vielleicht wäre das ja auch ein Thema für einen eigenen Blogartikel? 🙂
Ach, und weiterhin wäre schön, wenn du vielleicht eine webbasierte Lösung kennen würdest, mit der man auf seine Kalender und Kontakte zugreifen und diese auch bearbeiten könnte?! Das hat mir an Owncloud gut gefallen..
Ich beraube dich nur ungern der Illusion, aber sobald du die Kontakte und Kalender auf ein Mobilgerät sync’st, sind sie defacto „öffentlich“… 🙂
[…] Links und Dank an: Jan Karres Andrew Oberstar […]
Hallo Leute,
ist vielleicht eine merkwürdige Frage, aber kann man irgendwie die Farben der verschiedenen Kalender beeinflussen? Bei mir sind die leider alle gleich und daher nicht auseinander zu halten.
Gruß
Alexander
Hey,
auf dem iPhone kann ich den verschiedenen Kalendern Farben zuweisen, also ja, das sollte möglich sein. Wie es auf anderen Geräten funktioniert kann ich allerdings nicht sagen 🙂
Nutze den Kalender im Moment über iOS mit der App Calendars 5 und auf meinen Macs über die normale Kalender App.
Bei meinen google Kalendern habe ich bisher die Farbe immer serverseitig bei google eingestellt, weshalb ich mal davon ausgegangen bin, dass man die Farbe auch serverseitig vorgeben kann.
Hallo,
kommt auf das App bzw. System an! …..
…für Android empfehle ich „aCalendar“, der ist echt klasse und kostenlos!
…für Mozilla Thunderbird (Ubuntu/Windows) kann man sich das Add-On „Lightning“ hinzufügen.
…für Outlook hab ich bis dato noch nichts (anständiges) gefunden.
Gruß,
Christian
Hallo Leute,
gibt es auch die Möglichkeit einen Kalender für mehrere Nutzer freizugeben? Alternative wäre wohl nur einen dritten Benutzer zu erstellen, der dann von beiden eingebunden wird, was allerdings nicht annähernd so elegant ist.
Gruß
Alexander
Ist schon länger her als ich Baikal installiert hatte. Hab hier auch keine Lösung gefunden und fand das dies owncloud elegant gelöst hatte, wofür ich mich dann dafür entschied.
Wäre aber schön zu wissen ob dies bei baikal geht.
Meines Wissens nach geht das mit Baikal momentan nicht, da die Software keine ordentliche Rechteverwaltung besitzt.
[…] zu verwenden. Wenn man hingegen nur Kontakte und den Kalender abgleichen möchte kann man neben Baïkal auch auf Radicale als CalDAV und CardDAV Server zurückgreifen. Wie man Radicale auf dem Raspberry […]
Hallo Jan,
erstmals vielen Dank für dein Tutorial. Vielleicht kannst du mir bei meinem Problem helfen.
Ich habe alles so ausgeführt, wie du es beschrieben hast. Im eigenen Netz funktioniert es einwandfrei. Baikal laäuft. Nginx läuft. SSL läuft.
Wenn ich nun versuche von extern meine Kalender zu syncen mit meinem iPhone passiert aber leider nichts. Wenn ich das CalDAV Accout einrichte, klappt es auf anhieb. Überall Häkchen, keine Warnmeldung. (ja, Portweiterleitung ist auch eingerichtet. Komme darüber auf die Nginx Startseite und Baikal Admin Seite)
Wenn ich aber nun den „Kalender“ im iPhone öffne, zeigt er mir keine neuen Kalender an.
Im internen Netz sofort, nach Änderung auf IP sofort.
Extern nichts. Ich bin leider noch neu auf dem Gebiet des Raspberry, aber ich will mich da durch beissen. nur gerade jetzt hänge ich. auf Owncloud möchte ich noch nicht umsteigen.
Danke Sam
Hast du in Step 7 und 8 denn die DynDNS Domain angegeben? Falls nein könnte ich mir vorstellen, dass es daran liegt.
Hallo Jan,
Ja ich habe SSL bei Common Name meine DynDNS Adresse eingegeben. (Im Format: dyndns.de) alles andere habe ich freigelassen. In Schritt 8 steht bei mir die IP des Raspberry. Zudem habe ich noch den Port 8090 auf 443 des Rasp geleitet. Ich komme also von extern via https://dyndns.de:8090/… in mein Netz. OwnCloud z.B. mit einer anderen MicroSD funktioniert WebDAV, aber auch hier ist kein Kalender extern sichtbar. Ebenso hier nimmt das iPhone alle Einstellungen ohne SSL Gemecker an und bindet den Account ein. NUR wiedermal extern kein Kalender sichtbar.
Für jeden Denkanstoß bin sehr dankbar.
Gruß Sam
Baikal und OwnCloud müssen aus verschiedenen Ports oder in verschiedenen Locations laufen. Hast du das bedacht?
Hi, wie kann ich denn eine Weiterleitung in der nginx-Konfig. einstellen (STEP 8) wenn ich Baikal nicht am Standart Port 80, sondern am Port 1234 horchen lasse? vielen dank
In Step 8 listen 80 (http) und listen 443 (https) durch die entsprechend gewünschten Ports einfach ersetzen und nginx neustarten.
Moin Jan,
vielen Dank für dein Tutorial. Baikal funktionert bei mir gut. Danke.
Ich hatte gehofft mit diesem Weg Drittanbieter Server zu umgehen.
Wieso muss ich jedoch bei Erstellung eines Benutzers eine EMail zusätzlich angeben?
Vielen Dank für eine Antwort.
Jannis
Dies wird einfach auf deinen Pi gespeichert. Da kannst du ggf. angeben was du möchtest. Sollte keine besondere Bedeutung aufweisen.
Hi! Danke erstmal für das Tutorial, ich habe da nur eine Frage: Ich habe bereits Seafile auf meinem Raspberry am laufen (nach deinem Tutorial installiert) und würde gerne wissen, ob es da zu Komplikationen kommen kann? Am Anfang wird hier ja was an der nginx Konfig geändert – beeinträchtigt das eventuell Seafile? Wäre nett, wenn ich eine Antwort bekomme, viele Grüße Christian
Du müsstest dir zwei separate nginx config files anlegen. Am besten googelst du nach dieser Thematik, da diese ausführlicher zu behandeln wäre als es ein Kommentar zulässt.
Bei Step 8 und der SSL-Einrichtung hatte ich einige Probleme.
So wie du das hier schreibst, bekomme ich beim Aufruf des RPi ein 404.
Eine bei mir funktionierende Lösung wäre, wenn ich bei beiden server-Einträgen den root-Pfad setze. Packe ich beides in einen server-Eintrag und schreibe das rewrite rein, erhalte ich eine Endlosschleife (Firefox: „Website leitet Anfrage so um, dass sie nie beendet werden kann“ <== oder so ähnlich).
Kannst du das so bestätigen?
Habe es gerade noch einmal durchgespielt – ohne Probleme. Da musst du beim Einrichten irgendetwas entgegen des Artikel gemacht haben.
Hallo Jan,
vielen Dank für deine super Anleitung. Jetzt probiere ich schon seit 2 Tagen den Baikal Server auf meinem Raspberry PI einzurichten und leider funzt es nicht 🙁
Ich habe auch schon alle Kommentare durch inkl. mehrfachen neuinstallation. Obwohl ich default Datei unter sites-available schon zig mal angepasst habe – deine Änderungen per c+p und manuell alles abgeschrieben – komme ich wenn ich die seite http://IP-Adresse/baikal/admin aufrufe immer nur Welcome to nginx angezeigt. Wenn ich aber ein index.php anhänge (http://IP-Adresse/baikal/admin/index.php) kann ich ganz normal auf den Baikal Server zugreifen.
Mir scheint es als würde er die *.php Seiten nicht richtig auflösen/erkennen. Ein Test mit phpinfo() funktioniert aber bestens.
Ich bin echt am verzweifeln. Hast du noch eine Idee woran es liegen könnte.
Hier der Auszu der defaul Konfig
#################################
server {
#listen 80; ## listen for ipv4; this line is default and implied
#listen [::]:80 default_server ipv6only=on; ## listen for ipv6
root /usr/share/nginx/www;
index index.html index.htm index.php;
# Make site accessible from http://localhost/
server_name localhost;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ /index.html;
# Uncomment to enable naxsi on this location
# include /etc/nginx/naxsi.rules
}
location /doc/ {
alias /usr/share/doc/;
autoindex on;
allow 127.0.0.1;
allow ::1;
deny all;
}
# Only for nginx-naxsi used with nginx-naxsi-ui : process denied reques$
#location /RequestDenied {
# proxy_pass http://127.0.0.1:8080;
#}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
#error_page 500 502 503 504 /50x.html;
#location = /50x.html {
# root /usr/share/nginx/www;
#}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
include /etc/nginx/fastcgi_params;
}
rewrite ^/.well-known/caldav /baikal/cal.php redirect;
rewrite ^/.well-known/carddav /baikal/card.php redirect;
charset utf-8;
location ~ /(\.ht|Core|Specific) {
deny all;
return 404;
}
}
# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;
# root html;
# index index.html index.htm;
#
# location / {
# try_files $uri $uri/ =404;
# }
#}
# HTTPS server
#
#server {
# listen 443;
# server_name localhost;
#
# root html;
# index index.html index.htm;
#
# ssl on;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
#
# ssl_session_timeout 5m;
#
# ssl_protocols SSLv3 TLSv1;
# ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:+EXP;
# ssl_prefer_server_ciphers on;
#
# location / {
# try_files $uri $uri/ =404;
# }
#}
#################################
Sehr strange. Die Konfiguration sieht meiner Meinung nach soweit richtig aus. Schau doch mal ob der Ordner von Baikal am richtigen Ort ist.
ls -l /usr/share/nginx/www
Hallo,
ich habe mal eine blöde Frage,oder auch nicht?.
Auf meinem Raspberry läuft schon eine Anwendung für die Hausautomation.Kann ich gleichzeitig noch owncloud installieren(Ist ein raspberry 2mit dem Image Wheezy).
Wenn ja, wie ?
Laufen dann die Anwendungen gleichzeitig?
Mir ist es bei OwnCloud eigentlich nur wichtig, dass ich per Smartphone meine Termine mit einem andren Teilnehmer(meine Frau) teilen kann.
Könnt ihr mir sagen wo und wie ich das Programm installieren muss?
Vielen Dank für Eure Hilfe.
Viele Grüsse
CC
Ja, das geht. Dabei musst du lediglich beachten, dass die Anwendungen auf verschiedenen Ports lauschen. In dem obigen Tutorial wird in Step 8 Port 80 bzw. 443 definiert.
Ist es denn auch möglich das sich zwei User einen Kalender teilen? Ich habe es bisher nur mit einem User erreicht der sich von zwei Geräten anmeldet.
Gruß DH
Hallo,
ich habe leider mein Password für meinen Baikla Server vergessen(login).Habt ihr eine Ahnung wie ich es auslesen kann???
Hallo Jan,
vielen Dank für die vielen Anleitungen.
Ich habe ebenfalls versucht, Baikal zu installieren. Allerdings erhalte ich beim Versuch auf die Admin-Seite zu kommen immer die Fehlermeldung „403 Forbidden“. Was könnte ich falsch gemacht haben? Habe alles genau nach Anleitung installiert (jedoch nicht Rails).
Bin fortgeschrittener Anfänger (oder sagen wir mal einfacher User) und wüsste gerne, wo ich ansetzen kann. Alles was ich hier lesen konnte, habe ich ausprobiert – ohne Erfolg. Könnte es evtl. daran liegen dass ich auf dem RasPi Raspian Jessie Lite drauf habe?
Viele Grüße
AB
Vielleicht hilft das:
In der nginx config
sudo nano /etc/nginx/sites-available/default
habe ich jetzt einfach:
alt: root /var/www/html
geändert in
neu: root /usr/share/nginx/www
speichern und neustarten:
sudo /etc/init.d/nginx restart
Jetzt läuft alles 🙂
Hab vor einiger Zeit nach diesem Tutorial Baikal auf einem Raspberry Pi aufgesetzt und nutze Kalender-Sync via CalDAV mit meinem iMac, auf dem OS X 10.9.5 (Mavericks) läuft. Jetzt ist ein MacBook mit OS X 10.11 (El Capitan) hinzugekommen. Beim Anlegen des Kalender-Internet-Accounts gebe ich exakt die identischen Zugangsdaten ein wie auf meinen anderen Geräten, bei denen es funktioniert, z.B. als Pfad /baikal/cal.php/principals// und für Port 443, alles läuft ausschließlich über SSL. Eine Verbindung wird nicht hergestellt, Passwort und/oder User-ID seinen nicht korrekt. Hat jemand auch schon mit El Capitan solche Erfahrungen gemacht? Welche Anpassungen sind nötig?
Ich habe hier noch einen Thread gefunden, in dem OwnCloud-User das selbe Problem haben. Allerdings muss ich gestehen, dass ich der weiteren Diskussion nicht ganz folgen kann. @Jan, Du verstehst das sicherlich! Wie muss ich hier die meine Raspberry/nginx/baikal-Installation nach Deiner Anleitung modifizieren, bitte? https://github.com/owncloud/contacts/issues/1058
Seit Jessie wurde der Ordner /var/www verändert in /var/www/html .
Muss ich dann das Baikal in var/www/html entpacken und in der config das root var/www um /html ergänzen?
Muss ich nicht auch noch in der config „user www-data;“ ergänzen oder arbeitet nginx automatisch mit diesem Benutzer? Nach meinen recherchen ist Standard bei nginx ist doch „root“.
Mit deiner Anleitung habe ich es bisher noch nicht geschafft. Werde meine Anmerkungen hier heute Abend mal testen.
@TIM57: Wenn seit Jessie das Default-Verzeichnis des Webservers geändert ist, kann man das durch Änderung der entsprechenden Stellen im Tutorial problemlos ändern. In Step 5 gibt Jan übrigens /usr/share/nginx/www als Verzeichnis an, nicht /var/www. Ich habe bei mir kein nginx laufen, sondern Apache. Dort ist es tatsächlich /var/www, bei nginx weiß ich es nicht. Aber eigentlich ist es egal, tendenziell kann jedes Verzeichnis verwendet werden. Eigentümer und Gruppe muss der Benutzer sein, unter dem der Webservers läuft. Womit wir beim Thema wären: Ich finde unterschiedliche Angaben zum Default-Benutzer. Die einen sagen root, die anderen sagen nobody. Root wäre nicht wirklich gut, ich würde also etwas anderes nehmen. www-data bietet sich da an, weil nach meinem Überblick die meisten Tutorials von diesem Benutzer ausgehen.
…das hat mich gestern ein wenig Zeit gekostet.
Sowohl nginx als auch php selber hatten als Standard den www-data Benutzer.
Das Tutorial sagt: „In Step 5 /usr/share/nginx/www als Verzeichnis an“.
Die nginx cofig sagt: „root /var/www/html“.
Das Tutorial muss also ergänzt werden mit dem Schritt root in der conf zu ändern.
In der nginx config habe ich jetzt einfach das root auf /usr/share/nginx/www geändert und sichergestellt, dass www-data Zugriff darauf hat.
Jetzt läuft alles 🙂
Hallo Jan,
hallo Baikal-Gemeinde,
vielen Dank für die gute Anleitung, mit der Baikal gut installiert werden konnte. In den Fragen oben habe ich mein Problem leider nicht gefunden. Beim Aufrufen des Kalenders bzw. Users findet Baikal den User nicht und gibt die folgende Fehlermeldung aus (xyz steht für den angelegten user):
Sabre\DAV\Exception\NotFound Principal with name xyz not found 1.8.7
Der Kalender lässt sich somit weder in IOS einpflegen noch über einen Webbrowser aufrufen. Ist hierzu schon eine Lösung bekannt, wie der User erfolgreich gefunden werden kann?
Aufgerufen wurde wahlweise über:
http://servername/kalender/cal.php/principals/xyz
oder
http://servername/kalender/cal.php/calendars/xyz
Es lässt sich lediglich der Admin ansprechen:
http://servername/kalender/admin/
Der User wurde über den eingeloggten Admin angelegt. Über einen Tip, wie Baikal den User und seine Kalender finden und einbinden kann wäre ich dankbar.
Vielen Dank schon einmal im Voraus
Erri
Ergänzung:
Die gleiche Fehlermeldung kommt übrigens auch, wenn man direkt mit den z.B. „Default“ genannten Kalender aufrufen will.
http://servername/kalender/cal.php/calendars/xyz/default
Ciao
Erri
Sorry für meine späte Antwort.
Ich hatte noch altlasten in der default-Datei. Nach Beseitigung dieser klappte soweit alles.
Nun habe ich allerdings noch ein Problem mit dem Syncen meines Handies (Ubuntu Phone) per Syncevolution. Folgende Fehlermeldung erscheint:
[ERROR @baikal] transport problem: PROPFIND: Neon error code 1, no HTTP status: Server certificate verification failed: certificate issued for a different hostname
Scheint ein Problem mit dem Zertifikat zu sein. Liegt das an Baikal, oder dem Import der *.crt-Datei in mein Handy?
Ich hoffe, da kann jemand helfen. Vielen Dank schon mal.
Gruß
AB
Hallo Jan, Hallo an all die fleißigen Helfer,
ich habe ein kleines Problem. Ich kann bei Step 9 nginx nicht neustarten. Ich bekomme dort die Meldung „Restarting nginx (via systemctl): nginx.serviceJob for nginx.service failed. See ’systemctl status nginx.service‘ and “journalctl -xn* for details. FAILED“
Ich habe alle Schritte nach Anweisung ausgeführt. Lediglich „cd /usr/share/nginx/www“ aus Step 5 habe ich durch “ cd /var/www“ erstetzt, da ich einige Beiträge über diesem den Hinweis hierauf erhalten habe. Der Code aus Step 5 hat bei mir nicht geklappt.
Muss ich nun in der /sites-available/default-Datei etwas ändern?
Nichts desto trotz möchte ich dir, Jan, ganz herzlich für das Tutorial danken. Selbst ich, als totaler Raspberry Pi, Raspbian und Linux-Anfänger kann dem folgen. Teilweise verstehe ich sogar Abschnitte. 😉
Moin Daniel,
nun denn, in der Fehlermeldung beim versuchten Neustart des nginx steht ja, dass man mal „systemctl status nginx.service“ und „journalctl -xn*“ anschauen sollte.
Und dazu: „Der Code aus Step 5 hat bei mir nicht geklappt.“ ist keine ausreichende Information. Das ist ungefähr so konkret wie „Mein Internet geht nicht.“ Was heißt „nicht geklappt“? Fehlermeldungen? Bei welchem Schritt genau? Immerhin sind das acht Befehle. Mit den von Dir gebrachten Infos kann Dir nicht geholfen werden.
Hallo Franz,
danke für deine Rückmeldung.
Der Code auf den ich mich aus Step 5 beziehe, war der von mir genannte „cd /usr/share/nginx/www“. Wenn ich diesen ausführen möchte, bekomme ich nur den Hinweis, dass die Datei / Ordner (weiß den genauen Wortlaut leider nicht mehr) nicht existiert.
Stattdessen hatte ich dann “ cd /var/www“ geschrieben. Dann bin ich auch in den „Ordner“ gekommen.
Muss ich hierfür noch etwas in dem Code bei „/etc/nginx/sites-available/default“ ändern oder nachtragen? Ich vermute, dass hier die Fehlerquelle liegt, denn bis auf diese Abweichung hat bei mir alles geklappt, was ich nach diesem Tutorial ausgeführt hatte.
Wie kann ich mir denn „systemctl status nginx.service“ und „journalctl -xn*“ anschauen?
Entschuldige, das ich Anfängerfragen stelle, allerdings bin ich auch einer. :-S
Ok, jetzt wird es sehr peinlich für mich.
Obwohl ich den Text/Code gefühlte 20 mal durchgegangen bin hatte ich nichts entdeckt. Nun, nachdem ich ein paar Stunden nichts gemacht habe, ist mir aufgefallen, das ein Semicolon fehlte.
Jetzt lässt sich nginx neustarten.
Die Frage, ob ich bei der Änderung des Pfades auch etwas im Code ändern muss bleibt allerdings. 😉
Ich habe kein nginx installiert, kann das also nicht live nachvollziehen. In der /etc/nginx/sites-available/default sollte so etwas stehen wie:
server {
listen 80;
root /pfad/zum/datenverzeichnis;
location / {
}
}
Hier muss bei Dir statt /pfad/zum/datenverzeichnis das bei Dir vorhandene Datenverzeichnis, also /var/www stehen.
Mit systemctl und journalctl ruft man die Logfiles auf. Aber sich fürchte, das sind auf dem Pi nicht die richtigen Befehle. Wo nginx auf dem Pi/unter Debian die Logs speichert, weiß ich nicht. Ich würde zunächst nach /var/log/nginx suchen. Nötigenfalls sollte der Pfad in der Datei /etc/nginx/nginx.conf zu finden sein.
Ok, das Problem habe ich gelöst. Scheinbar war nur die ENABLE_INSTALL-Datei bei mir nicht installiert. Das habe ich nun nachgeholt.
Vorab: VIELEN DANK FÜR DIE TOLLEN ANLEITUNGEN!!!!
Ich bin seit kurzem stolzer Besitzer eines Raspberry Pi 3 auf dem ich das neueste Rasbian installiert habe. Darauf habe ich erst Nginx und Baikal installiert.
Leider ist zwar Nginx erreichbar, nicht aber Baikal.
Inzwischen habe ich herausgefunden, dass sich vermutlich die Basis-Installationspfade geändert haben.
„/usr/share/nginx/www“ in „/usr/share/nginx/html“
„/var/www/“ in „/var/www/html“
Nun finde ich nicht, an welchen Stellen der verschiedenen *.conf ich die Verzeichnisse so korrigieren muß, dass dann Baikal auch erreichbar wird …
Ich bitte um Hilfestellung – DANKE!
mfG, StePfl
Hallo StePfl
ich hatte das selbe Problem.
Bei mir waren es folgende Dinge, die zum Erfolg führten.
In „/etc/nginx/sites-available/default“ habe ich „/usr/share/nginx/www“ mit „/var/www“ ersetzt.
Anschließend könnte ich im Browser auf Baikal zugreifen. Witziger Weise müsste ich beim ersten Zugriff direkt https:// statt http:// angeben.
Ich hatte noch das Problem, dass INSTALL_ENABLE nicht im Specific Ordner hinterlegt war, obwohl dies eigentlich schon gemacht wurde. Danach könnte ich auf Baikal auch wieder über http:// zugreifen bzw. es wurde dann automatisch wieder auf https:// umgestellt.
Ich hoffe das hilft bei dir auch.
Hallo Daniel,
danek für deine Antwort – leider klappt es noch nicht.
Ich vermute, dass es daran liegt, dass es nicht mehr „/usr/share/nginx/www“ sondern „/usr/share/nginx/html“ gibt und dorthin habe ich dann Baikal installiert.
Sollte ich nun „/usr/share/nginx/html“ in „/usr/share/nginx/www“ umbenennen? oder sollte ich die Pfad Verweise entsprechen anpassen (wo genau?)
Sorry, aber ich bin in Raspbian nicht wirklich bewandert und scheitere dann schnell an diesen kleinen Veränderungen …
INSTALL_ENABLE existiert im Specific-Ordner (gerade überprüft) – nur steht Baikal halt im „html“-Unterordner…
Schöne Osterfeiertage … und noch einmal DANKE!
Nachtrag (da mein vorheriger beitrag nicht mehr veränderbar ist)
bei mir meldet nginx bei „/var/www“ „403 forbidden“
mit „/var/www/html“ „Wlecome to nginx on Debian!“
aber Baikal ist nicht erreichbar ….
Hallo StePfl,
Keine Sorge, ich bin selbst ein totaler Anfänger.
Ich würde den Text in der Datei ändern und zwar exakt auf den Pfad wo Baikal bei dir liegt. Wenn das der html-Pfad ist, nimm den.
Hallo Jan,
danke für dein Tutorial, das hat bei mit einigen kleinen Schwierigkeiten, die ich allerdings lösen konnte, geklappt.
Ich habe ein Konfigurationsproblem mit DavDroid und hoffe einer von Euch kann mir hierbei behilflich sein.
Dank der „wellknown“-Konfiguration sollte eine gemeinsame Nutzung von Caldav und Carddav über einen Account nutzbar sein, zumindest laut „https://davdroid.bitfire.at/configuration/“ Allerdings bekomme ich bei Angabe der folgenden Spezifikation einen Fehler angezeigt. Dabei ist vielleicht interessant, das ich die SSL-Variante nutze.
Basis-URL: https://IP/baikal/
Benutzername: PeterPan
Passwort: ***** (ist natürlich das richtige Passwort)
Bei Präemtive Authentifizierung (empfohlen, aber nicht kompatibel mit Digest-Auth) ist ein Häkchen.
Dafür habe ich bei Baikal die WebDav Authentifizierung von „Digest“ auf „Basic“ gestellt.
Anschließend musste ich das Zertifikat einmalig bestätigen. Im nächsten Schritt „Ressourcen-Erkennung“ bekomme ich den Hinweis „Es wurden keine Adressbücher oder Kalender gefunden“
Was muss ich hier alles korrigieren?
Hallo PeterPan,
ich hatte mit einem ähnlichen Problem zu tun.
Was passiert denn, wenn du die Abfrage über einen Browser durchführst? Bekommst du eine XML-Ausgabe angezeigt und was sagt diese?
https://IP/baikal/.well-known/carddav/
https://IP/.well-known/carddav/
Wenn eine XML-Ausgabe erscheint, funktioniert schon einmal die RewriteRule.
Grüße
Marco
PS: Jan, vielen Dank für den detailierten und anschaulichen Artikel!
Hallo Marco,
vielen Dank für deine Nachricht, leider komme ich erst jetzt dazu Dir zu antworten. Bei beiden EIngaben (Cal / Card) muss ich scheinbar das „baikal/“ weglassen. Ansonsten kommt ein Error 404.
„https://IP/.well-known/carddav/“ und „…/caldav/“ geben folgendes wieder:
„This XML file does not appear to have any style information associated with it. The document tree is shown below.
Sabre\DAV\Exception\NotImplementedGET is only implemented on File objects1.8.6“
Scheinbar ist irgend ein Fehler vorhanden. Ich hoffe du kannst damit etwas anfagen. Ich kann es leider nicht.
Schönen Sonntag
PeterPan
Hier noch mal der richtige Fehlercode, da er natürlich umgewandelt wurde.
Code ohne „größer als“, „kleiner als“:
d:error xmlns:d=“DAV:“ xmlns:s=“http://sabredav.org/ns“
s:exception>Sabre\DAV\Exception\NotImplemented /s:exception
s:message>GET is only implemented on File objects /s:message
s:sabredav-version>1.8.6 /s:sabredav-version
/d:error
(Ich hoffe er wird nun richtig angezeigt)
Ich habe nun einfach mal die Adresse
https://IP/baikal/cal.php/calendars/PeterPan/Passwort/
direkt im Browser des Pi´s eingetippt und bekomme eine 404 Fehlermeldung von „nginx/1.6.1“
Im selben Netzwerk von einem anderen Computer (Firefox als Browser) bekomme ich den selben Fehler, nachdem ich das Zertifikat herunterladen und installieren musste.
Ist nginx jetzt nicht richtig installiert?
Ich verzweifle langsam….
Habt ihr noch ratschläge für mich?
Hallo,
entschuldigt, daß ich hier „dazwischenrede“, aber könnt Ihr bitte einem Laien erklären, was „.well-known“ bedeutet, insbesondere wie ich das auf einem Strato-Server einrichte ?
Bzw. falls es irgendwo im Netz eine FAQ oder ein gesondertes Forum gibt, wäre ich auch für einen entsprechenden Hinweis dankbar.
(ich möchte CalDav und DAVDroid zusammen nutzen)
Danke, Matthias
Hat jemand Erfahrung mit den neuen Versionen?
https://github.com/fruux/Baikal/releases bzw. http://sabre.io/baikal/upgrade/
Spät aber doch, nun selbst getestet. Funktioniert einwandfrei (Nginx)!
nicht vergessen (siehe auch Tutorial):
sudo chown -R www-data:www-data baikal/
sudo find baikal/ -type d -exec chmod 755 {} \;
Hallo Jan,
wollte Baikal auch mal installieren, jedoch komme ich immer auf die Seite von http://sabre.io
Ist das was anderes oder ist Baikal jetzt ein Teil von Sabre/Dav geworden? Da mein Englisch nicht so besonders ist, verstehe ich nicht viel was da steht.
Würde mich über eine Antwort sehr freuen.
Hallo,
kann ich nicht genau sagen wie da die urheberrechte und linzenzen sind, aber die Seite die du suchst ist: http://sabre.io/baikal/ bzw. https://github.com/fruux/Baikal/releases
MfG
Christian
ich bekomme baikal 0.4.6 einfach nicht ans laufen.
in der
/etc/nginx/sites-available/default
habe ich als root folgendes gesetzt:
/usr/share/nginx/html/;
dann kommt beim Aufruf von http://xyz.myfritz.net/baikal/html/ die Meldung „502 bad gateway“
„Erweitere“ ich die /etc/nginx/sites-available/default beim root um
/usr/share/nginx/html/baikal/html;
erhalte ich „403 forbidden“
Jemand einen Lösungsvorschlag?
Ich habe Baikal noch nie installiert. Ich würde aber vermuten, dass Du die index-Datei noch angeben musst. Schreibe mal unter
root /usr/share/nginx/html/baikal;
eine weitere Zeile:
index index.php;
Weitere Infos:
http://sabre.io/baikal/install/
Danke für den Tipp.
index index.html index.htm index.php;
ist da aber schon vorhanden
Dann ist es möglicherweise ein Berechtigungsproblem. Zunächst einmal habe ich mich in meinem Kommentar vertippt, das Rootverzeichnis müsste /usr/share/nginx/html/baikal/html sein – also so, wie Du es zuletzt geschrieben hattest. Dieses Verzeichnis muss dem Benutzer und der Gruppe gehören, unter der nginx läuft. Das sollte www-data sein, sicher bin ich mir aber nicht. Mache mal ein
ps aux | grep nginx
In der ersten Spalte sollte dann der Benutzer stehen, unter der nginx läuft. Dann ein
sudo chown -R www-data.www-data /usr/share/nginx/html/baikal/html
wobei Du natürlich beide www-data ggf. ersetzen musst.
laut ps aux | grep nginx ist root der Benutzer. So wie in der /etc/nginx/sites-available/default angegeben.
habe dann
sudo chown -R www-data:www-data /usr/share/nginx/html/baikal/html
sudo chown -R www-data:www-data /usr/share/nginx/html/baikal/
sudo chown -R www-data:www-data /usr/share/nginx/html/baikal/Specific
probiert. Alles ohne Erfolg. Nach wie vor „502 bad gateway“.
Sorry, meine Antwort ist falsch platziert. Ich kann sie nicht unter Deinen letzten Beitrag setzen, deshalb schreibe ich drüber.
Fangen wir vorn an: Die Meldung 502 Bad Gateway bekommst Du, wenn das Server-Root-Verzeichnis nicht richtig angegeben ist. Die Meldung 403 Forbidden bekommst Du u.a., wenn das Server-Root-Verzeichnis richtig ist, aber die Berechtigungen falsch.
Der Benutzer, unter dem nginx läuft, ist also root. Deshalb muss das Server-Root-Verzeichnis auch root gehören. Also:
In /etc/nginx/sites-available/default muss es heißen:
root /usr/share/nginx/html/baikal;
Dann musst Du den Verzeichnissen den richtigen Benutzer konfigurieren:
sudo chown -R root.root /usr/share/nginx/html/baikal/
Das -R heißt rekursiv. Alle Unterverzeichnisse bekommen so ebenfalls den Eigentümer und die Gruppe root.
In der Datei /etc/nginx/sites-available/default stellst Du übrigens nicht ein, unter welchem Benutzer der Webserver läuft. Das wird, wenn ich richtig informiert bin, beim Kompilieren bestimmt. Das, was Du in dieser Konfiguration einstellst, ist das Wurzelverzeichnis des Servers, also zu Neudeutsch Server-Root. Das hat nichts mit dem Benutzer zu tun.
Hallo Styler,
ich möchte mich hier nicht einmischen, Franz leistet nämlich schon einen guten Support 🙂 ….
Ich würde dir gerne folgende Webseite empfehlen: http://www.cenz.at/linux_grundlagen bzw. http://www.cenz.at/raspberry samt Unterseiten.
Wenn dir nur die nginx-conf Probleme verursucht, kannst hilft dir das weiter: http://sabre.io/baikal/install/
Hallo!
Ich versuche gerade Baikal auf dem Raspberry zum laufen zu bringen. Das klappt soweit auch Prima. Über die Admin Oberfäche habe ich auch einen user, samt Kalender anlegn können.
Nun will ich über OS X über das CalDAV Protokoll auf eben diesen Kalender zugreifen. Als Adresse gebe ich
http://[IP/DynDNS%5D/baikal/html/dav.php
an. Dazu Benutzer und Passwort, so wie ich es administriert habe. Über den Browser klappt das mit dieser Adresse auch. Bei OS X lässt sich der Kalender aber nich syncen.
Allerdings macht OSX aus der http://[IP/DynDNS%5D/baikal/html/dav.php auch immer eine http://[IP/DynDNS%5D/baikal/html/dav.php/
Diese Adresse führt im Browser bei mir auch zu einem Fehler (404).
Hat einer ne Idee?
Leider hat das auch nicht geholfen. Nach Aufruf der Baikal Installationsseite bekomme ich „404 Not Found … nginx/1.6.2“ angezeigt. 🙁
Gibt es noch eine Idee, ansonsten versuche ich es nochmal komplett von vorne.
Danke schon mal im Voraus.
Hallo Zusammen,
jetzt hat doch alles funktioniert. Thunderbird synchronisierte doch bereits mit baikal. Nach mehrfachen Konfigurationsversuchen in syncevolution funktionierte dann auch die Synchronisation des Ubuntuphones.
Vielen Dank nochmal für die Anleitung.
Hi, Danke für die Anleitung. Ich hab die neue Version 0.46 lokal frisch installiert, dabei den alten „Special“-folder beibehalten und alles schien gut durchulaufen. Admin-Interface findet sich im Browser und ich sehe, dass meine Kalender und Kontakte der Nutzer vorhanden sind. So weit so gut.
Gehe ich jetzt per DavDroid oder Thunderbird ran, wird leider nichts erkannt. DavDroid sagt, es findet keine Kontakte und Thunderbird (Cardbook extension) bleibt es beim erfolglosen Versuch. Verbindung an sich klappt, da er mir zuerst das eigene ertifikat um Abnicken präsentiert.
Im nginx-access log auf dem, Raspberry findet sich dann der Eintrag
10.10.10.3 – testuser [02/Apr/2017:21:10:19 +0200] „PROPFIND /baikal/html/dav.php/addressbooks/testuser/default/ HTTP/1.1“ 404 142 „-“ „Thunderbird Lightning/4.7.8“
Also sieht nach 404 – aus, nicht gefunden, oder? Aber das Admin-Interface geht – also muß dochroot richtig gesett sein. Wo kann ich nachschauen?
Danke für tips
Richtig, 404, not found. Ich habe selbst kein Baikal installiert. Eine kurze Suche im Netz zeigt mir aber, dass einige im URL nicht dav.php, sondern cal.php bzw. card.php verwenden. Also: https://servername/baikal/card.php/addressbooks/testuser/default/
Vielleicht hilft das weiter.
Danke für die Antwort. Hatte ich aber auch schon probiert (gleiches Ergebnis). Hätte ich vlt gleich erwähnen sollen, sry.
Errorlog von nginx ist leer, da gibt es keine weiteren Hinweise. Hmmm…sonst noch einen Tip?
Vielen Dank schon Mal
Hallo, vielen Dank für die gute Anleitung. Die Einrichtung hat bestens funktioniert.
MfG dj_blue06