Graham Eddy

Baikal server

CalDAV and CardDAV server.

2022-08-31 Ubuntu 20.04-22.04, Raspian buster-bullseye

This installs into a new Virtual Server


graham:~ cd /tmp graham:/tmp wget graham:/tmp unzip graham:/tmp sudo mkdir -p /srv/http graham:/tmp sudo mv baikal /srv/http/ graham:/tmp cd /srv/http/ graham:/srv/http/ sudo chown -R root:root . graham:/srv/http/ sudo chown -R www-data:www-data config Specific graham:/srv/http/ cd /etc/nginx/sites-available graham:/etc/nginx/sites-available sudo vi
/etc/nginx/sites-available/ new file
# - virtual server

server {
    listen 80;
    listen [::]:80;
    root /srv/http/;

    index index.html index.htm index.php;

    location / {
        try_files $uri $uri/ =404;

    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)(.*)$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php-fpm.sock;
graham:/etc/nginx/sites-available cd ../sites-enabled graham:/etc/nginx/sites-enabled sudo ln -s ../sites-available/ . graham:/etc/nginx/sites-enabled sudo systemctl reload nginx

Browse to, which starts a wizard:

Baikal wizard first screen
Timezone           Australia/Melbourne
Enable CardDav     ✓
Enable CalDav      ✓
Email invite addr  empty
WebDav auth type   Digest
Admin password     password
Confirm password   password
Database setup
SQLite file        /srv/http/
Use MySQL          ☐

then Login screen is presented for you to login as admin to configure users etc. Defer this for now.

graham:/etc/nginx/sites-enabled sudo certbot -d --nginx

Add users, address books, calendars

Browse to, login as admin.