Baikal ist eine einfache Kalendersoftware, mit der Sie CardDAV- und CalDAV-Dateien online synchronisieren können. Im Gegensatz zu Google Kalender synchronisiert es Kalenderdateien nahtlos zwischen verschiedenen Clients und Geräten. Die App unterstützt auch Multi-User-Instanzen, was bedeutet, dass es möglich ist, Baikal mit anderen Personen zu verwenden und Kalenderereignisse zu teilen, wie Sie es in Google Kalender tun. Beispielsweise können Sie einen persönlichen Baikal-Server für Ihre Freunde und Familie sowie Kollegen hosten.
Voraussetzungen
Bevor Sie Baikal installieren, halten Sie die folgenden Ressourcen bereit:
- Eine Maschine, auf die von außerhalb Ihres Heimnetzwerks zugegriffen werden kann: Dies kann entweder ein Heimserver sein, dessen Ports offen sind, oder ein dedizierter VPS, den Sie derzeit mieten.
- Ein Domänenname, der auf Ihren Computer verweist: Ich werde für dieses Tutorial den Namen „yetanotherbaikalserver.xyz“ verwenden.
- Root-Zugriff auf Ihren Computer: Hiermit werden die Dienstprogramme und Programme installiert, die für das Funktionieren von Baikal erforderlich sind.
Unter Berücksichtigung dieser Faktoren konzentriert sich dieses Tutorial nur auf die Installation von Baikal auf einem Debian 11 VPS von DigitalOcean.
Baikal-Abhängigkeiten installieren
Erstellen Sie zunächst ein separates Benutzerkonto auf Ihrem Computer, um sicherzustellen, dass sich Fehler und Fehler während des Vorgangs nicht auf das gesamte System auswirken:
sudo useradd -s /bin/bash -d /home/baikal -m -G sudo baikal sudo passwd baikal

Wenn Sie fertig sind, wechseln Sie zu diesem neuen Benutzer, indem Sie ihn ausführen su baikal. Von hier aus können Sie nun die Abhängigkeiten von Baikal installieren, indem Sie den folgenden Befehl ausführen:
sudo apt install php php7.4-fpm php7.4-xml php-sqlite3 sqlite3 nginx certbot python3-certbot-nginx iptables iptables-persistent ufw net-tools unzip

Konfigurieren der Firewall des Servers
Die Konfiguration der Firewall Ihres Computers ist erforderlich, um sicherzustellen, dass Ihr Server alle unnötigen Anfragen an ihn blockiert. Um dies einzurichten, führen Sie die folgenden Befehle aus:
sudo ufw allow 80 sudo ufw allow 443
Die obigen Befehle öffnen nur die Ports 80 und 443 für die externe Verbindung und schließen alle Netzwerkports im Gerät.

Nginx für den Baikalsee einrichten
Während es möglich ist, eine Vielzahl von Webservern für Baikal zu verwenden, konzentriert sich dieser Abschnitt auf die Einrichtung neben Nginx.
Erstellen Sie zunächst eine Site-Konfigurationsdatei unter „/etc/nginx/sites-available“:
sudo nano/etc/nginx/sites-available/baikal

Schreiben Sie von dort aus a server{} block innerhalb dieser neuen Konfigurationsdatei. Das Folgende ist eine grundlegende Einrichtung, die sofort funktionieren sollte:
server { listen 80; server_name yetanotherbaikalserver.xyz; root /var/www/baikal/html; index index.php; rewrite ^/.well-known/caldav /dav.php redirect; rewrite ^/.well-known/carddav /dav.php redirect; charset utf-8; location ~ /(\.ht|Core|Specific|config) { deny all; return 404; } location ~ ^(.+\.php)(.*)$ { try_files $fastcgi_script_name =404; include /etc/nginx/fastcgi_params; fastcgi_split_path_info ^(.+\.php)(.*)$; fastcgi_pass unix:/var/run/php/php-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; } }
Es funktioniert so, dass Nginx auf Verbindungen an Port 80 für den Hostnamen „yetanotherbaikalserver.xyz“ lauscht. Sobald ein Client eine Verbindung herstellt, leitet der Webserver diese Verbindung in das Stammverzeichnis von Baikal um, wo Nginx dann einen UNIX-Socket für alle .php-Dateien öffnet, sodass sie als Webanwendung ausgeführt werden können.
Beschaffung und Auspacken des Baikalsees
Um Baikal auf Ihren Computer herunterzuladen und zu installieren, erstellen Sie zuerst das Root-Webverzeichnis und wechseln Sie dorthin:
sudo mkdir -p /var/www/ && cd /var/www/
Dann benutze wget um die neueste Binärversion von Baikal zu ziehen:
sudo wget https://github.com/sabre-io/Baikal/releases/download/0.9.2/baikal-0.9.2.zip

Installieren Sie von hier aus die Webanwendung, indem Sie ihr Binärarchiv mit dem folgenden Befehl entpacken:
sudo unzip ./baikal-0.9.2.zip

Stellen Sie abschließend sicher, dass Nginx das Stammverzeichnis Baikal lesen und schreiben kann, indem Sie es ausführen chown auf dem „baikal“-Ordner:
sudo chown -R www-data:www-data ./baikal
Nginx neu starten und SSL installieren
Sie können jetzt Ihre Nginx-Konfigurationsdatei aktivieren, indem Sie einen symbolischen Link zu „/etc/nginx/sites-enabled“ erstellen. Danach müssen Sie auch Nginx neu laden, um die neuen Einstellungen zu übernehmen. Führen Sie die folgenden Befehle aus, um diese beiden Aktionen auszuführen:
sudo ln -s /etc/nginx/sites-available/baikal /etc/nginx/sites-enabled sudo systemctl restart nginx

Aktivieren Sie jetzt SSL für Ihren Server, indem Sie entweder Lassen Sie uns verschlüsseln oder manuell über OpenSSL installieren. In diesem Fall verwende ich das Dienstprogramm certbot von Let’s Encrypt.
Führen Sie den folgenden Befehl aus, um ein Let’s Encrypt-Zertifikat zu installieren:
certbot --nginx yetanotherbaikalserver.xyz
Abschluss des Baikal-Setups
Um den Einrichtungsvorgang abzuschließen, öffnen Sie Ihren Webbrowser und greifen Sie über Ihren Domainnamen auf die Website zu. In meinem Fall gehe ich zu „yetanotherbaikalserver.xyz“.
Sobald Sie dort angekommen sind, leitet Baikal Sie zu seiner Admin-Installationsseite weiter, wo Sie nach einer Reihe serverspezifischer Optionen gefragt werden, die Sie für Ihre Instanz festlegen müssen.
Geben Sie zunächst die Zeitzone Ihres Computers ein. Wenn Sie einen VPS verwenden, geben Sie die Zeitzone für diesen VPS an.

Da sich mein VPS in Singapur befindet, wähle ich „Asien/Singapur“.

Wählen Sie als Nächstes die gewünschten Funktionen für Ihre Instanz aus. Überprüfen Sie sowohl CalDAV als auch CardDAV, wenn Sie sowohl Kalender- als auch Adressbuchunterstützung für Ihren Server aktivieren möchten.

Sie haben auch die Möglichkeit, eine E-Mail-Adresse für Ihre Instanz anzugeben. Damit dies funktioniert, muss Ihr Server in der Lage sein, SMTP-Nachrichten über TLS zu senden. Ich lasse dieses Feld leer, um das Senden von E-Mails zu deaktivieren.

Wählen Sie als Nächstes das Authentifizierungsformat für Ihre Instanz aus. In den meisten Fällen sollte das Digest-Format sofort einsatzbereit sein. Sie müssen auch ein Passwort für das Administratorkonto angeben. Danach können Sie auf „Änderungen speichern“ klicken.

Zuletzt fragt Baikal Sie nach den Datenbankeinstellungen Ihrer Instanz. In den meisten Fällen müssen Sie keine Einstellungen auf dieser Seite ändern. Drücken Sie erneut auf „Änderungen speichern“, um die Installation abzuschließen.

Hinzufügen des ersten Baikal-Benutzers
Wenn Baikal ausgeführt wird, können Sie jetzt Ihren ersten Benutzer erstellen, indem Sie zum Administratorbereich zurückkehren und „Benutzer und Ressourcen“ auswählen.

Wählen Sie auf dem nächsten Bildschirm „Benutzer hinzufügen“, um eine einfache Erstellungsseite aufzurufen, auf der Sie die Details für den neuen Benutzer eingeben können. Beispielsweise kann ich einen neuen Benutzer für mich selbst erstellen.

Thunderbird mit Baikal verbinden
Nachdem Sie nun ein Baikal-Benutzerkonto haben, können Sie es mit jedem Planungsprogramm verknüpfen, das CalDAV und CardDAV unterstützt, wie z. B. Thunderbird.
Um Baikal mit Thunderbird zu verwenden, klicken Sie auf der Startseite des E-Mail-Clients auf die Option „Kalender“.

Dadurch wird ein kleines Fenster geöffnet, in dem der Client Sie nach dem Speicherort Ihrer Kalenderdatei fragt. Wählen Sie „Im Netzwerk“ und klicken Sie auf „Weiter“, um fortzufahren.

Wenn Thunderbird Sie nach dem Benutzernamen Ihres Baikal-Kontos sowie seiner URL fragt, geben Sie diese Details ein und klicken Sie auf „Kalender suchen“. Geben Sie als URL die Adresse Ihres Servers gefolgt von „/dav.php“ an.

Sobald der Client alle Kalenderdateien für Ihr Baikal-Konto erhält, listet er sie auf und fragt Sie nach ihrem „Kalendertyp“. Wählen Sie „CalDAV“ und klicken Sie auf „Abonnieren“.

Ihr Baikal-Server ist nun einsatzbereit.
Häufig gestellte Fragen
Systemctl meldet, dass Nginx „nicht binden konnte“.
Nein! Der Fehler „Failed to Bind“ tritt immer dann auf, wenn ein Programm die Kontrolle über einen bestimmten Netzwerkport nicht übernehmen kann. In diesem Fall hat Nginx einen Konflikt auf den Ports 80 oder 443 mit einem bestehenden Dienst auf Ihrem Computer. Sie können feststellen, welches Programm diese Ressource belegt, indem Sie diesen Befehl ausführen: netstat -tulpn | grep -e :80 -e :443.
Sobald Sie wissen, welches Programm den Fehler verursacht, führen Sie es aus apt remove oder systemctl disable um das Programm zu stoppen.
Beispielsweise ist Apache ein gängiges Programm, das die gleichen Ports wie Nginx verwendet. Sie können dies in Debian deaktivieren, indem Sie den folgenden Befehl ausführen: sudo systemctl disable apache2.
Mein Webserver zeigt immer noch die Debian-Willkommensseite, nachdem ich Baikal eingerichtet habe. Wie behebe ich das?
Dieses Problem ist höchstwahrscheinlich auf widersprüchliche Nginx-Konfigurationsdateien zurückzuführen. Standardmäßig stellt Debian ein grundlegendes Nginx-Setup bereit, das eine Konfigurationsdatei in „/etc/nginx/sites-enabled“ enthält. Sie müssen diese bestimmte Datei löschen, indem Sie diesen Befehl ausführen: sudo rm /etc/nginx/sites-enabled/default.
Ich kann meinen Kalender nicht synchronisieren und die Website meldet einen „DOM-Fehler“.
Nein. Ein „DOM-Fehler“ weist darauf hin, dass dem PHP-Backend für Ihren Baikal-Server ein XML-Modul fehlt. Um dies zu beheben, installieren Sie entweder PHP neu oder installieren Sie das XML-Modul manuell. Sie können beispielsweise den folgenden Befehl ausführen, um das fehlende Modul in Debian zu installieren: sudo apt install php7.4-xml.
Unterstützen Sie unsere Arbeit ❤️
Wenn Ihnen dieser Artikel gefallen hat, können Sie uns mit einem Trinkgeld unterstützen, damit wir weiterhin großartige Inhalte veröffentlichen können.

























