2 पॉइंट द्वारा GN⁺ 2025-04-11 | 1 टिप्पणियां | WhatsApp पर शेयर करें

परिचय

  • यह उस श्रृंखला का पहला भाग है जिसका उद्देश्य डेटा और तकनीक पर सीधे स्वामित्व रखना है, और इसमें 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 टिप्पणियां

 
GN⁺ 2025-04-11
Hacker News राय
  • CalDAV जटिल है और सहज नहीं है। मैंने Radicale इस्तेमाल करके देखा, लेकिन संतुष्ट नहीं हुआ। मैंने खुद CalDAV server implement करने की कोशिश की, लेकिन छोड़ दिया

    • इसकी बजाय मैंने iCal फ़ाइलों को S3 bucket पर host किया और Android पर sync करने के लिए ICSx5 का इस्तेमाल किया। CalDAV की ज़रूरत नहीं पड़ी, सिर्फ HTTPS इस्तेमाल किया
    • FOSS calendar अभी भी कमज़ोर हैं और GrapheneOS पर ICSx5 काम नहीं करता, इसलिए मैंने Proton Calendar पर स्विच किया। यह परफेक्ट नहीं है, लेकिन ज़रूरतें पूरी करता है
    • iCalendar format का इस्तेमाल एक अच्छा तरीका है, लेकिन हर software की supported features अलग हैं, इसलिए मैंने metadata को description field में डालने का फैसला किया
    • software का इस्तेमाल करके अलग-अलग साइटों से data इकट्ठा करता हूँ, और सिर्फ रुचि वाले social events को filter करके एक ही calendar में जोड़ता हूँ
  • Radicale, Python में लिखा गया एक modular CalDAV server है, जिसकी सिफारिश की जा सकती है

    • data text files में store होता है और git से track व backup किया जाता है
    • authentication host system के pam का इस्तेमाल करता है
    • calendar sharing के लिए समय-समय पर script चलाकर calendar को सभी अधिकृत users के लिए symbolic link किया जाता है
    • custom CalDav properties और modified web plugin का इस्तेमाल करके access control list को support करता है
    • public calendar में ACL के ज़रिए 'public' user को read permission दी जाती है
  • मैं अपने personal server पर Mailcow(SoGO) और Fastmail इस्तेमाल कर रहा हूँ। दोनों calendar ठीक से sync नहीं होते

    • Mailcow के calendar को दूसरे tools के साथ ठीक से काम नहीं करा पाया, इसलिए semi-automatic तरीके से sync करता हूँ
    • Baïkal को आज़माना चाहता हूँ। यह Mailcow को किसी दूसरे self-hosted mail service से बदलने का मौका भी हो सकता है
  • 2000 के शुरुआती दशक में मैंने Mozilla Sunbird का इस्तेमाल करके Win2k server पर calendar host किया था। शायद तब CardDAV नहीं था

    • मैंने सारा data Google Calendar में import कर लिया, और अब भी पुराने university assignments वगैरह देख सकता हूँ
  • मैं कई सालों से Baikal इस्तेमाल कर रहा हूँ और यह stable है। इसे Thunderbird, DAVx5 और Fossify Calendar से connect करता हूँ

    • Fossify Calendar, Simple Mobile Tools के calendar app से fork किया गया app है, और यही सबसे feature-rich है
    • यह सरल तरीके से सभी options देता है, इसलिए इस्तेमाल करना सुविधाजनक है
  • मैं photos के लिए कोई feature बनाना चाहता हूँ। Dropbox और Google से बाहर निकलना चाहता हूँ

    • मैं चाहता हूँ कि photos को anniversary, activity, family आदि के हिसाब से group करके phone पर भेजा जा सके
    • मैं चाहता हूँ कि device से ली गई photos को server पर store किया जा सके
    • मैं 2TB space वाली true-nas machines तीन जगह लगाकर यह functionality बना रहा हूँ
  • Outlook और Google Calendar को HTTP पर sync करना भरोसेमंद नहीं है

    • timezone समस्याओं की वजह से meeting का समय हमेशा गलत हो जाता है
    • लगता है अपना system इस्तेमाल करने से यह हल हो जाएगा, लेकिन डर है कि कहीं दो घंटे के अंतर से meeting create न हो जाए
  • Baikal दिलचस्प लग रहा है। पहले DAViCal इस्तेमाल किया था, लेकिन iOS version बदलने के बाद यह भरोसेमंद नहीं रहा

    • जब फिर से कोशिश करूँगा, तो DAViCal, Radicale और Baikal पर विचार करूँगा
  • हाल ही में cloud से बाहर निकलने की कोशिश कर रहा हूँ। data migration में 2 हफ्ते लगे और यह उम्मीद से बेहतर चला

    • email को छोड़कर बाकी सभी services मैं खुद संभालता हूँ, और Asus PN40 इसमें बहुत मददगार है
    • CalDAV अस्थिर है, लेकिन Nextcloud ज़्यादातर ज़रूरतें पूरी करता है
    • कई open source solutions को मिलाकर मेरी सारी ज़रूरतें पूरी हो जाती हैं
  • serverless तरीके से DecSync इस्तेमाल करने का विकल्प भी है। Thunderbird या Evolution, Android app के साथ sync हो जाता है

    • Cal, Cards, tasks, RSS दूसरे peers पर replicate हो जाते हैं