diff --git a/knowledge base/baikal.md b/knowledge base/baikal.md
index e354e39..320a88b 100644
--- a/knowledge base/baikal.md
+++ b/knowledge base/baikal.md
@@ -1,6 +1,8 @@
-# Baikal
+# Baïkal
1. [TL;DR](#tldr)
+1. [Troubleshooting](#troubleshooting)
+ 1. [`Error: Class 'DOMDocument' not found in /mnt/are/www/dav/vendor/sabre/dav/lib/DAV/Server.php:256`](#error-class-domdocument-not-found-in-mntarewwwdavvendorsabredavlibdavserverphp256)
1. [Further readings](#further-readings)
1. [Sources](#sources)
@@ -26,6 +28,17 @@ docker run --rm -p '80:80' 'ckulka/baikal:nginx'
+## Troubleshooting
+
+### `Error: Class 'DOMDocument' not found in /mnt/are/www/dav/vendor/sabre/dav/lib/DAV/Server.php:256`
+
+Refer [Baikal PHP Error], then [Baïkal dependencies].
+
+Ensure the following are available:
+
+- PHP's XML module (`php-xml` in [APT]).
+- PHP's MBSTRING module (`php-mbstring` in [APT]).
+
## Further readings
- [Website]
@@ -35,6 +48,8 @@ docker run --rm -p '80:80' 'ckulka/baikal:nginx'
### Sources
- [ckulka/baikal-docker]
+- [Baikal PHP Error]
+- [Baïkal dependencies]
+[apt]: apt.md
[self-hosting]: self-hosting.md
+[baïkal dependencies]: https://github.com/sabre-io/Baikal/wiki/Ba%C3%AFkal-dependencies
+[baikal php error]: https://github.com/sabre-io/Baikal/issues/701
[github]: https://github.com/sabre-io/Baikal
[website]: https://sabre.io/baikal/
diff --git a/knowledge base/turris os.md b/knowledge base/turris os.md
index a73158f..fd5f2d7 100644
--- a/knowledge base/turris os.md
+++ b/knowledge base/turris os.md
@@ -289,7 +289,7 @@ config container
> lxc-create -n 'baikal' -t 'download' -- -d 'Debian' -r 'Bookworm' -a 'armv7l'
> ```
-Refer .
+Refer [baikal] and .
```sh
# Set the correct hostname.
@@ -299,15 +299,18 @@ sed -i 's/LXC_NAME/baikal/' '/etc/hosts'
# Install baikal.
# Also install `unattended-upgrades` to ease updates management.
DEBIAN_FRONTEND='noninteractive' apt-get install --assume-yes --no-install-recommends \
- 'apache2' 'ca-certificates' 'curl' 'php' 'php-sqlite3' 'unattended-upgrades' 'unzip'
+ 'apache2' 'ca-certificates' 'curl' 'php' 'php-sqlite3' 'php-sabre-dav' 'unattended-upgrades' 'unzip'
a2dismod 'mpm_event'
-a2enmod 'rewrite' 'php*'
+a2enmod 'rewrite' 'php*' 'ssl'
systemctl restart 'apache2'
+openssl req -nodes \
+ -newkey 'rsa:4096' -keyout '/etc/ssl/private/baikal.key' -out '/etc/ssl/private/baikal.crt' -x509 -days '365' \
+ -subj '/C=NL/ST=North Holland/L=Amsterdam/O=Example Org/OU=Infra/CN=baikal.lan'
curl -fsL -o '/var/www/baikal.zip' 'https://github.com/sabre-io/Baikal/releases/download/0.10.1/baikal-0.10.1.zip'
unzip -ud '/var/www/' '/var/www/baikal.zip' && rm '/var/www/baikal.zip'
chown -R 'www-data:www-data' '/var/www/baikal/Specific' '/var/www/baikal/config'
cat < '/etc/apache2/sites-enabled/010-baikal.conf'
-
+
DocumentRoot /var/www/baikal/html
ServerName baikal.lan
@@ -334,10 +337,20 @@ cat < '/etc/apache2/sites-enabled/010-baikal.conf'
ExpiresActive Off
+ SSLEngine on
+ SSLCertificateFile /etc/ssl/private/baikal.crt
+ SSLCertificateKeyFile /etc/ssl/private/baikal.key
+
EOF
```
+Testing (after installing and creating a user):
+
+```sh
+curl -svvvko - --digest --user 'mark@baikal.lan:123p' https://baikal.lan/dav.php/calendars/mark@baikal.lan/default/
+```
+
@@ -661,6 +674,7 @@ All the references in the [further readings] section, plus the following:
[further readings]: #further-readings
+[baikal]: baikal.md
[lxc]: lxc.md
[openwrt]: openwrt.md
[opkg]: opkg.md
diff --git a/snippets/openssl.sh b/snippets/openssl.sh
index 598c373..4fb4117 100644
--- a/snippets/openssl.sh
+++ b/snippets/openssl.sh
@@ -94,7 +94,7 @@ openssl req -in 'request.csr' -verify -text -noout # prints the data given in i
# Create self-signed certificates with their new private key from scratch
openssl req -nodes -newkey 'rsa:2048' -keyout 'private.key' -out 'certificate.crt' -x509 -days '365'
openssl req -newkey 'rsa:4096' -keyout 'private.key' -out 'certificate.pem' -x509 -days '365' -sha256 \
- -subj '/C=US/ST=Oregon/L=Portland/O=Company Name/OU=Org/CN=www.company.com'
+ -subj '/C=US/ST=Oregon/L=Portland/O=Example Org/OU=R&D/CN=www.example.org'
# Create self-signed certificates using existing CSRs and private keys
openssl x509 -req -in 'request.csr' -signkey 'private.key' -out 'certificate.crt' -days '365'