Baïkal¶
License: GPLv3
This guide is tested with Baïkal 0.12.1 on Uberspace 8.0.85. We can't guarantee it to work with newer versions.
Baïkal is a lightweight CalDAV+CardDAV server. It offers an extensive web interface with easy management of users, address books and calendars. It is fast and simple to install and only needs a basic php capable server. The data can be stored in a MariaDB or a SQLite database.
Prerequisites¶
Baïkal requires at least version 8.2 of PHP. The versions provided by default in Uberspace 8 Asteroids are already higher:
[isabell@moondust ~]$ php -v
PHP 8.4.22 (cli) (built: Jun 26 2026 11:09:06) (NTS)
[...]
Your website domain needs to be set up:
[isabell@moondust ~]$ uberspace web domain list
isabell.uber.space
[...]
Baïkal can store its data in SQLite or MariaDB. We'll be using SQLite for this guide. Keep in mind that once you've chosen either system, there's no automated way to migrate your data to the other.
Installation¶
Check what version the latest release is from the project's repository and download the pre-compiled .zip:
[isabell@moondust ~]$ cd /var/www/virtual/$USER/
[isabell@moondust isabell]$ VERSION="0.12.1" # This number can differ!
[isabell@moondust isabell]$ wget "https://github.com/sabre-io/Baikal/releases/download/${VERSION}/baikal-${VERSION}.zip"
[...] ‘baikal-0.12.1.zip’ saved [...]
Extract the app:
[isabell@moondust isabell]$ unzip "baikal-${VERSION}.zip"
[...]
[isabell@moondust isabell]$ rm "baikal-${VERSION}.zip"
Make its html directory the one where your Uberspace URL is pointing to:
[isabell@moondust isabell]$ rm isabell.uber.space
[isabell@moondust isabell]$ ln -s baikal/html isabell.uber.space
Warning
Make sure you point to the html subfolder, and not baikal, as this may expose private data to the public.
You can also install Baïkal under a subdomain or an external domain, but that's out of the scope of this guide. The manual is a good starting point for that.
Configuration¶
After the installation you need to open isabell.uber.space in your web browser to finish your setup with the help of Baïkal's own graphical interface.
Configure your timezone, whether you want to enable Cal/CardDAV; and the invite mail address, if any.
The authentication type we used for this guide is "basic". More information about other options can be found at https://sabre.io/dav/authentication.
Choose a strong password for the admin account and confirm it.
After saving, Baïkal should present you with "SQLite" selected by default, and the path where the database will be stored. Choose any of the other two options if you know what you are doing.
Save, log into Baïkal with the admin credentials you just created, and you should be good to go.
Debugging¶
If something goes wrong, you might find some clues:
- in your
/home/$USER/logs/php_error.logfile, - in your
/home/$USER/logs/apache/error_log_apachefile, or - on Baïkal's troubleshooting page.
Updates¶
Note
Check the update feed regularly.
The Admin web console shows the current version number every time you log in, and whether there is a more up-to-date one.
A third-party script to check for newer versions exists.
Make a backup or your Specific and config directories:
[isabell@moondust ~]$ cd /var/www/virtual/$USER/
[isabell@moondust isabell]$ cp --recursive baikal/Specific /home/$USER/
[isabell@moondust isabell]$ cp --recursive baikal/config /home/$USER/
Your SQLite database will be also backed up. If you are using MariaDB the procedure will be different.
Download the newer version and extract it as shown in this guide.
Restore your backed up files:
[isabell@moondust isabell]$ mv /home/$USER/Specific baikal/
[isabell@moondust isabell]$ mv /home/$USER/config baikal/
Open the administration panel (isabell.uber.space/admin) and follow the prompts.
Baïkal's website offers detailed upgrade instructions.
Further Reading¶
For help, you can reach the development team through their mailing list or IRC channel.
