So erstellen Sie einen Kalenderserver mit Baikal 1

So erstellen Sie einen Kalenderserver mit Baikal

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
Installieren Sie Baikal Linux 04 Erstellen Sie einen neuen Benutzer

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
Installieren Sie Baikal Linux 05 Installationsabhängigkeiten

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.

Installieren Sie Baikal Linux 06 Aktivieren Sie die Server-Firewall

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
Installieren Sie Baikal Linux 07. Erstellen Sie die Nginx-Konfiguration

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 Baikal Linux 08 Laden Sie das Binärarchiv herunter

Installieren Sie von hier aus die Webanwendung, indem Sie ihr Binärarchiv mit dem folgenden Befehl entpacken:

sudo unzip ./baikal-0.9.2.zip
Installieren Sie Baikal Linux 09 Entpacken Sie das Binärarchiv

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
Installieren Sie Baikal Linux 10. Starten Sie Nginx neu

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.

Installieren Sie die Standardeinstellungen von Baikal Linux 11

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

Installieren Sie Baikal Linux 12 Zeitzone einstellen

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.

Installieren Sie Baikal Linux 13. Installieren Sie neue Funktionen

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.

Installieren Sie Baikal Linux 14 Entfernen Sie die E-Mail-Adresse

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.

Installieren Sie die Baikal Linux 15-Authentifizierungsmethode

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.

Installieren Sie die Standarddatenbankeinstellungen von Baikal Linux 16

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.

Installieren Sie Baikal Linux 17 Wählen Sie die Registerkarte Benutzer

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.

Installieren Sie Baikal Linux 18 Neue Benutzerdetails

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

Installieren Sie Baikal Linux 19 Wählen Sie Kalender Thunderbird

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.

Installieren Sie Baikal Linux 20 Link Calendar To Network

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.

Installieren Sie Baikal Linux 21 Serverdetails Thunderbird

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

Installieren Sie Baikal Linux 22 Set Calendar Type

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.

Sichere Zahlung mit PayPal
Moyens I/O-Personal. motivierte Sie und gab Ratschläge zu Technologie, persönlicher Entwicklung, Lebensstil und Strategien, die Ihnen helfen werden.