This dockerfile provides a ready-to-go Baikal server.
For more details, see ckulka/baikal-docker (GitHub).
Tags without a version are weekly re-builds to include the latest base image with the most recent updates:
latest
and apache
are re-builds of the latest *-apache
versionapache-php8.2
are re-builds of the latest *-apache-php8.2
versionnginx
are re-builds of the latest *-nginx
versionnginx-php8.2
are re-builds of the latest *-nginx-php8.2
versionI follow the same version naming scheme as Baikal themselves.
The following tags support multiple architectures, e.g. amd64
, arm32v7
, arm64v8
and i386
.
0.10.0
, 0.10.0-apache
0.10.0-apache-php8.2
, 0.10.0-php8.2
0.10.0-nginx
0.10.0-nginx-php8.2
0.9.5
, 0.9.5-apache
0.9.5-apache-php8.2
, 0.9.5-php8.2
0.9.5-nginx
0.9.5-nginx-php8.2
0.9.4
, 0.9.4-apache
0.9.4-php8.0
, 0.9.4-apache-php8.0
, apache-php8.0
, latest-php8.0
0.9.4-nginx
0.9.4-nginx-php8.0
, nginx-php8.0
0.9.3
, 0.9.3-apache
0.9.3-php8.0
, 0.9.3-apache-php8.0
0.9.3-nginx
0.9.3-nginx-php8.0
For earlier versions all the way back to version 0.2.7, please search in the tags tab. Version 0.4.5 and older are only available for amd64
. Version 0.9.0 and older do not support i386
.
amd64
, arm32v7
, arm64v8
, i386
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.
The following command will start Baikal:
docker run --rm -it -p 80:80 ckulka/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.
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
.
You can find more installation and configuration guides here:
The ckulka/baikal
images come in several flavors, each designed for a specific use case.
ckulka/baikal:<version>
This is the defacto image and follows the official guidelines the closest using Apache httpd.
With that being said, it's worth checking out the nginx
variant as it requires fewer resources and produces no warning messages out-of-the-box.
If you are unsure about what your needs are, you probably want to use this one though.
ckulka/baikal:apache
This image relies on Apache httpd and uses the official PHP image that's packaged with the Apache web server.
It also ships with HTTPS support and self-signed certificates, which can be replaced by user-provided certificates - for more details, see the SSL Certificate Guide.
This image uses environment variables to set Apache's ServerName
and ServerAlias
directives to avoid Apache httpd's warnings in the logs.
The BAIKAL_SERVERNAME
environment variable is used to set the global ServerName
directive, e.g. dav.example.io
. For more details, see Apache Core Features: ServerName Directive.
The BAIKAL_SERVERALIAS
environment variable is used to set the ServerAlias
directive of the VirtualHost
s, e.g. dav.example.org dav.example.com
. For more details, see Apache Core Features: ServerAlias Directive.
ckulka/baikal:experimental
This image has the latest code from the source repository ckulka/baikal-docker, mainly used for testing before a version is released. Use this at your own risk.
ckulka/baikal:nginx
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.