Raspberry Pi: Baïkal CalDAV und CardDAV Server installieren

15 Jan
15. Januar 2014

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

Step 1

Zunächst einmal müssen wir nginx mit PHP installieren. Wie dies funktioniert, erklärte ich bereits in dem Artikel Webserver Nginx installieren.

Step 2

Wir müssen nun noch SQLite Pakete installieren, die später in Baïkal Verwendung finden.

sudo apt-get install sqlite php5-sqlite

Step 3

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

ersetzen durch

Step 4

Nach den Änderungen aus dem vergangenen Schritt müssen wir nginx nun neustarten.

sudo /etc/init.d/nginx restart

Step 5

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/2014/01/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/

Step 6

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

Step 7 (optional)

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

Step 8 (optional)

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

ersetzen durch

Step 9 (optional)

Abschließend müssen wir, damit das SSL Zertifikat seine Wirkung entfaltet, nginx neustarten.

sudo /etc/init.d/nginx restart

Step 10

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.

Step 11

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.

80
443

Der Artikel wurde am 21. April 2014 überarbeitet.

Dir hat der Artikel gefallen?
Teile ihn mit deinen Freunden!
208 Antworten
  1. Markus says:

    Vielen Dank für die Anleitung

    Leider kommt bei mir im Browser nur

    502 Bad Gateway
    nginx/1.2.1

    Antworten
  2. Markus says:

    mh scheine das verzeichnis init.d nicht zu haben
    da muss ich wohl noch was anderes installieren

    Antworten
    • Markus says:

      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.

      Antworten
  3. Markus says:

    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.

    Antworten
    • Jan Karres says:

      Im Webinterface kann man momentan lediglich die Benutzer verwalten, weshalb dies auch nur über das Admin Account geht.

      Antworten
  4. lukas says:

    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?

    Antworten
  5. Thorsten says:

    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

    Antworten
    • Jan Karres says:

      Ich tippe mal ganz stark drauf, dass du in der nginx Anleitung den PHP Teil nicht abgearbeitet hast.

      Antworten
      • Thorsten says:

        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

        Antworten
  6. Mike Schulz says:

    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.

    Antworten
  7. Micha says:

    Danke! Ich würde aber noch SSL verschlagen.

    Antworten
  8. Thomas says:

    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

    Antworten
    • Thomas says:

      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

      Antworten
      • Jan Karres says:

        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.

        Antworten
    • Lars says:

      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 =)

      Antworten
  9. Andreas says:

    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

    Antworten
    • Andreas says:

      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

      Antworten
      • Jan Karres says:

        Sicher, dass der Pfad zu Baikal in der Nginx Sites Config richtig gesetzt ist? – Auch wenn du mehrfach kontrolliert hast.

        Antworten
    • Jan Karres says:

      Logo. Musst lediglich zwei Sites in Nginx definieren. Dazu empfehle ich dir mal, die Doku von Nginx anzusehen.

      Antworten
  10. Jan Karres says:

    Der Artikel wurde am 31. Januar 2014 überarbeitet. Zuvor geschriebene Kommentare können ihre Gültigkeit verloren haben.

    Antworten
  11. Andreas says:

    Hallo Jan, bevor ich wieder einen Fehler mache: Welchen Port muss ich für ssl freigeben ? 80 oder 443 oder beide?

    Gruß Andreas

    Antworten
  12. Michael says:

    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.

    Antworten
    • Micha says:

      Stimmt!! remote.php ist glaube ich auf bestandteil con Owncloud.
      Allerdings bekomme ich carddav sync über Thundebird nicht zu laufen. Android funktioniert.

      Antworten
    • senftimes says:

      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?

      Antworten
      • senftimes says:

        Habe die Fehlermeldung wegbekommen. war ein fehler in der baikal config. wenn ich nun die installation aufrufen möchte, bekomme ich die 404 angezeigt…

        Antworten
        • Jan Karres says:

          Ü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/

          Antworten
          • senftimes says:

            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 ??

          • Jan Karres says:

            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 😉

  13. Franz says:

    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.

    Antworten
    • Jan Karres says:

      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 😉

      Antworten
  14. cthulhu40k says:

    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!

    Antworten
    • Jan Karres says:

      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.

      Antworten
      • cthulhu40k says:

        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!

        Antworten
        • Jan Karres says:

          Sehr interessanter Tipp. Klingt interessant und ist nun auf der Todo-Liste. Jedoch wird diese Anleitung nicht vor Ende März kommen.

          Antworten
  15. Micha says:

    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?

    Antworten
  16. Frank Baumeister says:

    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,

    Antworten
    • Micha says:

      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

      Antworten
    • Jan Karres says:

      Ich nehme an, ihr habt aus Step 5 folgenden Befehl nicht ausgeführt:

      sudo chown -R www-data:www-data baikal/

      Antworten
    • Jan Karres says:

      Sicher, dass folgende Zeile aus Step 5 ausgeführt wurde?

      sudo chown -R www-data:www-data baikal/

      Antworten
      • Jonny says:

        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 ….“

        Antworten
    • Jan Karres says:

      Das ist ein stranges neues Release von Baikal. Habe nun eine Lösung des Problems in Step 5 eingebaut.

      Antworten
  17. s.d. says:

    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

    Antworten
    • Jan Karres says:

      Da haben die Macher von Baikal strange Rechte im neuen Release gesetzt. Step 5 ist nun so angepasst, dass es wieder klappen sollte.

      Antworten
  18. Jan says:

    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?

    Antworten
    • Jan Karres says:

      Du bist dir sicher, dass dir eingegebene URL stimmt? Versuch doch mal in „/“ an da Ende der URL zu setzten.

      Antworten
  19. punto says:

    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 …

    Antworten
  20. Christoph says:

    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

    Antworten
  21. Leon says:

    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?

    Antworten
    • Jan Karres says:

      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 😉

      Antworten
  22. Michael says:

    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

    Antworten
    • Jan Karres says:

      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.

      Antworten
  23. Paperjack says:

    Ich hätte so ein Tutorial gern für Apache

    Antworten
    • Jan Karres says:

      Apache ist wesentlich performanter als Nginx und die Ressourcen des Raspberry Pis sind ja beschränkt. Daher verwende ich Nginx in allen Tutorials.

      Antworten
  24. Mr. AtiX says:

    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.

    Antworten
    • Jan Karres says:

      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)?

      Antworten
      • Mr. AtiX says:

        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

        Antworten
  25. Thomas M. says:

    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 ?

    Antworten
  26. Tobias Müller says:

    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

    Antworten
  27. Philipp says:

    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

    Antworten
    • Jan Karres says:

      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.

      Antworten
  28. David says:

    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

    Antworten
    • Jan Karres says:

      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 😉

      Antworten
      • Markus says:

        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

        Antworten
        • Jan Karres says:

          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!

          Antworten
          • Thomas says:

            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

          • Jan Karres says:

            Verbessert, danke!

        • Thomas says:

          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.

          Antworten
  29. Roy says:

    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

    Antworten
  30. Antonio says:

    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

    Antworten
    • Jan Karres says:

      Bist du mit einem iPad vielleicht nicht im selben Netz und du hast die Ports (siehe Ende des Beitrags) nicht freigegeben?

      Antworten
  31. Fritz says:

    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

    Antworten
    • Christian says:

      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)

      Antworten
    • Jan Karres says:

      Mac OS X bzw. iOS benötigt eine andere Linkstruktur. Habe den Artikel am Ende entsprechend erweitert. Mit dem neuen Link sollte es funktionieren 🙂

      Antworten
    • Fritz says:

      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

      Antworten
  32. Christian says:

    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.

    Antworten
  33. Steffen says:

    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

    Antworten
    • Jan Karres says:

      Du hast in /etc/nginx/sites-enabled/default nahe Zeile 2 einen Fehler. Ich tippe du hast da ungewollt was reingeschrieben.

      Antworten
  34. Detlef says:

    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?

    Antworten
    • Detlef says:

      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.

      Antworten
  35. Martin says:

    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?

    Antworten
    • Martin says:

      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…

      Antworten
  36. Ironcurtain says:

    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

    Antworten
    • Detlef says:

      @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.

      Antworten
  37. senftimes says:

    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.

    Antworten
  38. Binke says:

    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?

    Antworten
    • Jan Karres says:

      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.

      Antworten
    • Mitch says:

      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!?

      Antworten
  39. Mr. AtiX says:

    @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

    Antworten
  40. Paul Hein says:

    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.

    Antworten
  41. Max Richter says:

    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

    Antworten
  42. Toni says:

    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

    Antworten
    • Jan Karres says:

      Ich nehme an, du hast dann irgendetwas an der nginx Config rumgebastelt, nicht so wie im Tutorial angegeben. Versuchs doch einfach noch einmal 😉

      Antworten
  43. Harry says:

    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

    Antworten
    • Jan Karres says:

      Wenn nginx und php5-fpm wie in der Anleitung beschrieben richtig installiert wurde starten diese Anwendungen automatisch mit dem Boot des Raspberry Pis.

      Antworten
  44. Werner says:

    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?

    Antworten
    • Jan Karres says:

      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.

      Antworten
  45. Jonas says:

    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

    Antworten
  46. Mike says:

    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

    Antworten
    • Jan Karres says:

      Kann den der Client auch mit IPv6 umgehen? Das was dein Provider da veranstaltet wird immer häufiger – und zum Problem.

      Antworten
  47. Phil says:

    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!

    Antworten
    • Jan Karres says:

      Nachdem das sowieso noch auf meiner Todo-Liste stand habe ich es nun angepackt und es in allen Anleitungen überarbeitet. Danke!

      Antworten
  48. Tobias says:

    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

    Antworten
    • Jan Karres says:

      Sollte meines Erachtens nach, wenn nach dem Tutorial vorgegangen wurde, auch ohne funktionieren.

      Antworten
      • doesel360 says:

        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..

        Antworten
  49. Micha says:

    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)!

    Antworten
  50. Thilo says:

    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.

    Antworten
    • Jan Karres says:

      Wird den nur die Willkommen-Seite eingezeigt? Falls ja würde ich tippen, dass die Konfiguration von nginx nicht korrekt ist.

      Antworten
  51. Mark says:

    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? 🙂

    Antworten
    • Mark says:

      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..

      Antworten
    • Martin says:

      Ich beraube dich nur ungern der Illusion, aber sobald du die Kontakte und Kalender auf ein Mobilgerät sync’st, sind sie defacto „öffentlich“… 🙂

      Antworten
  52. Alexander says:

    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

    Antworten
    • doesel360 says:

      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 🙂

      Antworten
      • Alexander says:

        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.

        Antworten
    • Christian says:

      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

      Antworten
  53. Alexander says:

    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

    Antworten
    • Markus says:

      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.

      Antworten
    • Jan Karres says:

      Meines Wissens nach geht das mit Baikal momentan nicht, da die Software keine ordentliche Rechteverwaltung besitzt.

      Antworten
  54. Sam says:

    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

    Antworten
    • Jan Karres says:

      Hast du in Step 7 und 8 denn die DynDNS Domain angegeben? Falls nein könnte ich mir vorstellen, dass es daran liegt.

      Antworten
      • Sam says:

        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

        Antworten
  55. Fabi says:

    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

    Antworten
    • Jan Karres says:

      In Step 8 listen 80 (http) und listen 443 (https) durch die entsprechend gewünschten Ports einfach ersetzen und nginx neustarten.

      Antworten
  56. Jannis says:

    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

    Antworten
    • Jan Karres says:

      Dies wird einfach auf deinen Pi gespeichert. Da kannst du ggf. angeben was du möchtest. Sollte keine besondere Bedeutung aufweisen.

      Antworten
  57. Christian says:

    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

    Antworten
    • Jan Karres says:

      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.

      Antworten
  58. Stefan says:

    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?

    Antworten
    • Jan Karres says:

      Habe es gerade noch einmal durchgespielt – ohne Probleme. Da musst du beim Einrichten irgendetwas entgegen des Artikel gemacht haben.

      Antworten
  59. nico_fifi says:

    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;
    # }
    #}

    #################################

    Antworten
    • Jan Karres says:

      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

      Antworten
  60. loloa says:

    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

    Antworten
    • Jan Karres says:

      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.

      Antworten
      • DH says:

        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

        Antworten
  61. Stefan says:

    Hallo,
    ich habe leider mein Password für meinen Baikla Server vergessen(login).Habt ihr eine Ahnung wie ich es auslesen kann???

    Antworten
  62. Schnulli says:

    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

    Antworten
    • Tim57 says:

      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 🙂

      Antworten
  63. jancoenen says:

    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?

    Antworten
  64. Tim57 says:

    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.

    Antworten
    • Franz says:

      @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.

      Antworten
      • Tim57 says:

        …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 🙂

        Antworten
  65. Erri says:

    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

    Antworten
  66. Erri says:

    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

    Antworten
  67. Schnulli says:

    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

    Antworten
  68. Daniel says:

    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. 😉

    Antworten
    • Franz says:

      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.

      Antworten
      • Daniel says:

        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

        Antworten
        • Daniel says:

          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. 😉

          Antworten
        • Franz says:

          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.

          Antworten
          • Daniel says:

            Ok, das Problem habe ich gelöst. Scheinbar war nur die ENABLE_INSTALL-Datei bei mir nicht installiert. Das habe ich nun nachgeholt.

  69. stepfl says:

    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

    Antworten
    • Daniel says:

      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.

      Antworten
      • stepfl says:

        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!

        Antworten
      • stepfl says:

        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 ….

        Antworten
      • Daniek says:

        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.

        Antworten
  70. PeterPan says:

    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?

    Antworten
    • Marco says:

      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!

      Antworten
    • Peter Pan says:

      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\NotImplemented
      GET is only implemented on File objects
      1.8.6

      Scheinbar ist irgend ein Fehler vorhanden. Ich hoffe du kannst damit etwas anfagen. Ich kann es leider nicht.

      Schönen Sonntag

      PeterPan

      Antworten
    • PeterPan says:

      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)

      Antworten
    • PeterPan says:

      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?

      Antworten
      • Matthias B. says:

        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

        Antworten
  71. Christian E. says:

    Hat jemand Erfahrung mit den neuen Versionen?
    https://github.com/fruux/Baikal/releases bzw. http://sabre.io/baikal/upgrade/

    Antworten
    • Christian says:

      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 {} \;

      Antworten
  72. ZerkMen says:

    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.

    Antworten
  73. styler says:

    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?

    Antworten
    • Franz says:

      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/

      Antworten
      • styler says:

        Danke für den Tipp.
        index index.html index.htm index.php;
        ist da aber schon vorhanden

        Antworten
        • Franz says:

          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.

          Antworten
          • styler says:

            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“.

          • Franz says:

            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.

        • Christian says:

          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/

          Antworten

Trackbacks & Pingbacks

  1. […] 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 […]

  2. […] Links und Dank an: Jan Karres Andrew Oberstar […]

  3. […] 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. […]

Antworten

Kommentar verfassen

JanKarres.de © 2007-2016