परिचय
- यह उस श्रृंखला का पहला भाग है जिसका उद्देश्य डेटा और तकनीक पर सीधे स्वामित्व रखना है, और इसमें self-hosted calendar solution को एकीकृत करने का तरीका समझाया गया है.
- बार-बार यात्रा करने से schedule management जटिल हो गया था, और मौजूदा calendar systems की असुविधाओं को हल करने के लिए एक self-hosted solution बनाया गया.
आवश्यकताएँ
- schedules को work calendar में blocked items के रूप में दिखना चाहिए.
- पत्नी calendar को subscribe कर सके.
- event केवल एक बार दर्ज करना पड़े.
- कई devices पर edit किया जा सके.
- data पर पूर्ण नियंत्रण हो.
- work calendar को पत्नी के साथ share करके इस समस्या का समाधान नहीं किया जा सकता.
पिछला समाधान
- मौजूदा calendar sharing solutions या तो common platform की मांग करते थे या सीमित features देते थे.
- शुरुआत में YAML files का उपयोग करके calendar events लिखे गए, फिर उन्हें ICS files में बदलकर share किया गया, लेकिन इसे maintain करना कठिन हो गया.
आर्किटेक्चर
- CalDAV server का उपयोग करके ऐसा समाधान बनाया गया जिससे कई devices पर calendar manage किया जा सके.
- अलग-अलग data sources से जोड़कर events को अपने-आप update किया गया, और उन्हें ICS files के रूप में उपलब्ध कराया गया.
Baïkal सेटअप
- Baïkal का उपयोग करके CalDAV server सेट किया गया, और Docker Compose के ज़रिए इसे आसानी से deploy किया गया.
- nginx reverse proxy का उपयोग करके इसे web पर accessible बनाया गया.
event classification scheme सेटअप
- iCalendar की CATEGORIES property का उपयोग करके events को classify किया गया, और Python enum का उपयोग करके data model लिखा गया.
- इससे events को आसानी से search करना या colors के आधार पर अलग करना संभव हुआ.
calendar compile और share करना
- IMAP, API, ICS files आदि के माध्यम से events को अपने-आप लाकर Baïkal में जोड़ा गया, और फिर उन्हें ICS files में बदलकर web पर share किया गया.
- cron job के माध्यम से इसे हर 15 मिनट में update होने के लिए सेट किया गया.
work calendar के साथ share करना
- Google Script Engine का उपयोग करके events को work calendar में copy किया गया, और CATEGORIES property के आधार पर color coding लागू की गई.
निष्कर्ष
- 6 महीनों के परीक्षण से पता चला कि यह system अच्छी तरह काम करता है और यात्रा schedules को manage करने में बहुत मददगार है.
- server cost के रूप में हर महीने $100 खर्च होते हैं, लेकिन schedule management की सुविधा को देखते हुए इसे पर्याप्त मूल्यवान माना गया.
1 टिप्पणियां
Hacker News राय
CalDAV जटिल है और सहज नहीं है। मैंने Radicale इस्तेमाल करके देखा, लेकिन संतुष्ट नहीं हुआ। मैंने खुद CalDAV server implement करने की कोशिश की, लेकिन छोड़ दिया
Radicale, Python में लिखा गया एक modular CalDAV server है, जिसकी सिफारिश की जा सकती है
मैं अपने personal server पर Mailcow(SoGO) और Fastmail इस्तेमाल कर रहा हूँ। दोनों calendar ठीक से sync नहीं होते
2000 के शुरुआती दशक में मैंने Mozilla Sunbird का इस्तेमाल करके Win2k server पर calendar host किया था। शायद तब CardDAV नहीं था
मैं कई सालों से Baikal इस्तेमाल कर रहा हूँ और यह stable है। इसे Thunderbird, DAVx5 और Fossify Calendar से connect करता हूँ
मैं photos के लिए कोई feature बनाना चाहता हूँ। Dropbox और Google से बाहर निकलना चाहता हूँ
Outlook और Google Calendar को HTTP पर sync करना भरोसेमंद नहीं है
Baikal दिलचस्प लग रहा है। पहले DAViCal इस्तेमाल किया था, लेकिन iOS version बदलने के बाद यह भरोसेमंद नहीं रहा
हाल ही में cloud से बाहर निकलने की कोशिश कर रहा हूँ। data migration में 2 हफ्ते लगे और यह उम्मीद से बेहतर चला
serverless तरीके से DecSync इस्तेमाल करने का विकल्प भी है। Thunderbird या Evolution, Android app के साथ sync हो जाता है