| .github/workflows | ||
| docker | ||
| .dockerignore | ||
| compose.yml | ||
| Dockerfile | ||
| README.md | ||
baikal-alpine
A single-container image for Baikal
(CalDAV/CardDAV server), built on php:8.4-fpm-alpine + nginx, supervised
by s6-overlay.
- Baikal version pinned via
BAIKAL_VERSIONbuild arg (default: 0.12.0) - PHP extensions: pdo_sqlite, sqlite3, pdo_mysql, mysqli, pdo_pgsql, pgsql, dom, simplexml, xml, curl, mbstring, ctype, iconv, zip, opcache
- Mail via msmtp (configurable through env vars, see below)
- nginx + php-fpm both run as the
nginxuser
Run
Copy compose.yml to the directory of your choice and edit as needed. Then, from that directory:
docker compose up -d
Then open http://localhost:8080/admin/ to run the install wizard.
Persistent data
Two named volumes hold everything that needs to survive:
/var/www/baikal/config— baikal.yaml, generated after install/var/www/baikal/Specific— the SQLite db (if you use that backend) and any DAV auth backend, ACL Rules, etc.
Mail configuration
Set one of:
- Discrete vars:
SMTP_HOST,SMTP_PORT(default 587),SMTP_USER,SMTP_PASS,SMTP_FROM,SMTP_TLS(set tooffto disable STARTTLS) - Or
MSMTPRC— full msmtp config file contents, if you need something the discrete vars don't cover.
See docker/cont-init.d/20-msmtp.sh.
Database backend
Defaults to SQLite (zero config, stored in /var/www/baikal/Specific/db).
For MySQL/Postgres, uncomment the db service in docker-compose.yml (or
point at an existing server) and select it in the Baikal install wizard —
the container already has both driver sets installed.
Image tags
Published to both ghcr.io/justadri/baikal-alpine and justadri/baikal-alpine
| Tag | Meaning |
|---|---|
latest |
The current main |
x.y.z (e.g. 0.12.0) |
Whatever ARG BAIKAL_VERSION in the Dockerfile currently is — moves with main |
<short-sha> |
Pinned to that exact commit, for rollback/debugging |
latest and the version tag always point at the same image.
Notes
BAIKAL_SKIP_CHOWN=1skips the ownership fix-up in cont-init.d, if you're managing permissions yourself on the mounted volumes.
Credits
Baikal is the work of Jérôme Schneider fruux, and the Baikal volunteers. Inspired by ckulka with substantial help from Claude