baikal

baikal

Docker app from Joshndroid's Repository

Overview

Baïkal is a lightweight CalDAV+CardDAV server

Baikal

This repository is a fork of ckulka/baikal-docker who has made an amazing job providing this image and work to build it.

There are some variants from the original repository. Default images are the *-nginx.

Latest images Experimental images Docker Architectures

These dockerfiles provide a ready-to-go Baikal server.

Supported tags and respective Dockerfile links

Tags without a version are weekly re-builds to include the latest base image with the most recent updates:

From now on latest images will be the nginx version.

  • latest and nginx are re-builds of the latest *-nginx version

Experimental images now default to using the nginx images

  • experimental-nginx and experimental are re-builds of the latest *-nginx version

I follow the same version naming scheme as Baikal themselves.

The following tags support multiple architectures, e.g. amd64, arm32v7, arm64v8 and i386.

Quick reference

What is Baikal?

From sabre.io/baikal:

Baikal is a Cal and CardDAV server, based on sabre/dav, that includes an administrative interface for easy management.

For more information, read the main website at baikal-server.com.

Baikal is developed by Net Gusto and fruux.

How to use this image

The following command will start Baikal:

docker run --rm -it -p 80:80 ghcr.io/aalmenar/baikal:nginx

Alternatively, use the provided examples/docker-compose.yaml from the Git repository:

docker compose up

You can now open http://localhost or http://host-ip in your browser and use Baikal.

Persistent Data

The image exposes the /var/www/baikal/Specific and /var/www/baikal/config folders, which contain the persistent data. These folders should be part of a regular backup.

If you want to use local folders instead of Docker volumes, see examples/docker-compose.localvolumes.yaml to avoid file permission issues.

When the container starts, the startup script /docker-entrypoint.d/40-fix-baikal-file-permissions.sh (Apache httpd, nginx) ensures that the file permissions are correct. You can disable this behaviour by setting the environment variable BAIKAL_SKIP_CHOWN to any value, e.g. FALSE.

Further Guides

You can find more installation and configuration guides here:

Image Variants

The ghcr.io/aalmenar/baikal images come in several flavors, each designed for a specific use case.

ghcr.io/aalmenar/baikal:experimental

This image has the latest code from the source repository, mainly used for testing before a version is released. Use this at your own risk.

ghcr.io/aalmenar/baikal:latest

This image relies on nginx and uses the official nginx image.

Compared to the Apache variant, it is significantly smaller (less than half the size) and produces no warning messages out-of-the-box.

Install Baikal on Unraid in a few clicks.

Find Baikal in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.

Open the Apps tab on your Unraid server Search Community Apps for Baikal Review the template variables and paths Click Install

Categories

Related apps

Explore more like this

Explore all

Details

Repository
ghcr.io/aalmenar/baikal:latest
Last Updated2026-07-15
First Seen2026-04-12

Runtime arguments

Web UI
http://[IP]:[PORT:80]/
Network
bridge
Shell
sh
Privileged
false
Extra Params
--restart=unless-stopped

Template configuration

ConfigPathrw

Container Path: /var/www/baikal/config

Target
/var/www/baikal/config
Default
/mnt/user/appdata/baikal/config
Value
/mnt/user/appdata/baikal/config
Container PortPorttcp

Container Port: 80

Target
80
Default
80
Value
80
SpecificPathrw

Container Path: /var/www/baikal/Specific

Target
/var/www/baikal/Specific
Default
/mnt/user/appdata/baikal/specific
Value
/mnt/user/appdata/baikal/specific