I have been looking for a solution to sync my contacts across devices. Etesync seemed great for this, but it seems the IOS app is no longer maintained.
And then I found Radicale, a lightweight and easy to setup server for Caldav/Cardav syncing, and in true FarisZR fashion, I’m going to install it with docker compose.
Now radicale doesn’t seem to have an official docker image, but luckily for us tomesquest did the hard part for us and created a docker image for Radiacle.
docker-compose.yml
*Note that this uses an external network called web
to connect the service to the reverse proxy, you could just expose the ports directly.
|
|
config
There’s a template config file for the docker image, we still need to change something to be able to set up htpasswd auth.
Create a file named config inside the mounted config directory with the raw content of the config file from github
and modify it to your liking, if you want to change the data directory, make sure to adjust the mount points in docker compose accordingly.
Auth
We need to adjust the auth section to enable authentication with a password, here’s an example:
|
|
Hashing your password with bcrypt
Now, as you probably noticed, htpasswd encryption is set to bcrypt, which means we need to hash the password in bcrypt format.
|
|
Then create a file called users
in the mounted config
directory.
It should be formatted like this:
|
|
and now it should be ready to run!
Caddy reverse proxy
|
|
Importing data
For me, importing data from the web UI didn’t work, I just re-imported my contacts on my phone and it worked.