DEV Community

Cover image for Manage Calendar & Address Book Micro-services
Alex M. Schapelle for Otomato

Posted on

Manage Calendar & Address Book Micro-services

Greetings gentle reader. Gratitude for returning to update your insights on various topics. I am Silent-Mobius, also known as Alex M. Schapelle, walking and babbling computer droid.

Within my short time my of existence, on this blue planet, I have learned that in case you are not paying for product, then you are product yourself... while that being true of my digital existence, much of services I use, are financed by me. Mainly due to AI not being fully trusted.

Much of the services we use today, are seamlessly connected to one or more cloud providers, such as Google or Microsoft. Simple things, such calendar and address book are standardized by corporations which govern our quality of life, and we hook into the network of infinite computing grid of processing power.

When considering applications, almost any endpoint device, such as laptop or phone, can provide client to be used as mail, calendar and so on, yet problem with those are that there is no backing up those endpoint applications... unless once again you use cloud provider... que: enter radicale
Radicale is calendar and phone back-end application that uses CardDav and CalDav protocols. These are extension of the WebDav, a HTTP-based protocol for data manipulation.

Motivation for this effort

For a very long period of time, I wanted to create my own cloud, based on simple services such as mail, calendar, contacts and many others which Google and Microsoft provide so graciously .
Based on my knowledge of Linux OS distributions, with addition of constant search of interesting Open-Source projects, combined with my studies of micro-service architectures, I wish to build eco-system that can enable me, the use of cloud, without using cloud-based providers.
Although this project does not builds cloud serving platform out of thin air, yet it brings one step closer to building essential tools, which will enable us build my own cloud one day in the future, just like GNU and Linux Kernel were combined in early 90's.
This project is an experiment, which will lead me and you gentle reader, to something new, and hopefully, we'll enjoy our journey through it.

Code

You can find environment of deployment that I have created based of the existing projects, mainly nginx for being secured load-balancer serving as a connector to a radicale CalDav/CardDav server. It is all managed with docker compose to be a POC, but also can be swapped with helm charts later to be deployed to K8s. The whole implementation saved at gitlab and you are more then welcome to visit, suggest, open issues and add additional features that did not think about, by myself.... please use Merge Request do to all the above suggested.

Structure

.
├── docker-compose.prod.yml
├── docker-compose.yml
├── gunicorn.conf
├── nginx.conf
├── radicale.conf
├── Dockerfile.cal
├── Dockerfile.https
├── LICENSE
└── README.md
Enter fullscreen mode Exit fullscreen mode

Note: access.txt file, with the password for radicale container, is required to create calendar image.

The application is structured as two container micro-services, one for secure connection with nginx web server that uses https protocol that passes the communication to radicale server that manages the calendar and address book data. It uses external volume backed up on raid 50 storage. Raid 50 is secured storage service provided by local ISP, to which only I and ISP have access.

Each container is build with its dedicated Dockerfile, and every container uses its own dedicated application configuration file. As mentioned, docker compose is in charge of handling the local run.

Conclusion

I hope that this little fun project was an inspiration for you to go on adventure of your own with any software there is for your needs. One last for me to suggest would be: Do Try To Have Some Fun.

Top comments (0)