Synology DS411slim in iCal koledarji
Ena izmed funkcij oz. en izmed servisov, ki jih nudi Synology DS411slim oz. vse Synology-jeve naprave, ki temeljijo na DSM 3.x, je tudi CalDAV strežnik.
CalDAV je oznaka za Calendaring Document Authoring and Versioning in pomeni protokol oz. jezik, s katerim se različne naprave dogovorijo o podatkih v koledarju. CalDAV temelji na WebDAV-u oz. ga uporablja kot transporni mehanizem. Pa naj bo dovolj tehnike oz. žargona. Kaj sem torej ugotovil?
Naj začnem na začetku.
Ker smo zelo aktivna družina, nas je vedno basalo usklajvanje dogodkov in aktivnosti. Hkrati smo vsi opremljeni z iDevice-i ali telefoni, ki imajo koledar. Zato sem se že pred nabavo DS411slim ukvarjal (bolj ali manj uspešno) s sinhronizacijo koledarjev med računalniki in nato prenosnimi napravami. Da skrajšam zgodbo: veliko muk za malo mleka. Še največ uspeha sem imel z Googlovim koledarjem v skupni rabi. Več o tem kdaj drugič.
Sinhronizacijske rešitve torej niso bile tisto kar bi človeku res olajšalo življenje. Ne rečem, da niso delale, ampak ... Že pred nabavo sem zato začel iskati CalDAV strežnik. Našel sem Applov Calendar Server, DaviCAL, RadiCALe in še nekaj drugih, ki pa jih nekako nisem uspel ali hotel usposobiti. Še najbližje prototipni postavitvi je prišel RadiCALe, a mi nekatere njegove cvetke niso bile po volji.
Z nabavo DS411slim, pa sem dobil uradno delujoč CalDAV strežnik in ne bodi ga len, sem ga takoj vklopil in začel preskušati. Prvi korak je seveda vklop na sami napravi, to naredimo v Control Panel v appletu Web Services. Vklopiti moramo najprej WebDAV in nato še CalDAV. S tem smo sicer vklopili funkcijo CalDAV strežnika, vendar še nismo definirali novenega koledarja, do katerega bi potem lahko dostopali z odjemalcem (kot je recimo iCal ali iOS koledar). Sledi torej kreiranje koledarja. Dejansko to pomeni kreiranje mape vkateri se bodo nahajale datoteke vnosov v koledarji (.ics).
V ta namen sem najprej kreiral osnovno mapo v skupni rabi (na najvišjem nivoju) in jo poimenoval Calendars. Seveda mora biti ta mapa na enem izmed volumnov na disku, in če ne označimo posebej, je vidna v omrežni soseščini. Ko je ta posebna mapa ustvarjena, sledi kreiranje map s koledarji. To storimo v appletu za Web Services z gumbom View Calendars. Kot že rečeno, dodajanje koledarja zgolj ustvari mapo v naši krovni mapi Calendars. Ustvarimo toliko koledarjev, kolikor različnih potrebujemo. Lahko tudi za vsakega uporabnika svojega. Meni je bilo dovolj, da sem ustvaril dva: javnega in družinskega. Da preprečimo zlorabe, je pametno nastaviti tudi pravice dostopa, kdo kaj lahko dela (Users, Groups in Application Privileges appleti).
Sledilo je konfiguriranje odjemalcev. Doma ima dva tipa: iCal na meku in iOS koledar na iPodu, iPadu in iPhoneu. Seveda sem najprej poskusil na meku, kar je trivialen postopek. V Preferences v zavihku Accounts dodamo CalDAV račun, s klikom na +. Posebnost na katero moramo paziti je ta, da poleg imena strežnika (ali IP naslova) vpišemo tudi port preko katerega naprava posluša. Po kliku za nadaljevanje sicer iCal zajamra, da ni uspel preveriti uporabnika, a nam vseeno dovoli nadaljevanje. V naslednjem oknu popravimo podatke o strežniku, če jih je iCal morebiti spremenil (odstranimo port ob imenu in ga vpišemo v posebno okence za port) ter vpišemo pot do koledarja. Izkaže se, da je to najpomembnejši del nastavitve (vse ostalo je namreč trivialno). Pot do koledarja je sestavljena iz imena naše osnovne mape v skupni rabi in imena koledarja, v mojem primeru npr. /Calendrs/Public.
Ko je na tak način koledar vpisan, že lahko vnašamo vanj dogodke.
Med testiranjem in preizkušanjem sem ugotovil, da v primeru, ko želimo v iCalu dodati nov koledar (kar je sicer čisto običajno početje), se CalDAV strežnik upre. In to na zelo čuden način! Dovoli sicer kreiranje novega koledarja (ki se vidi kot podmapa na napravi), a ne dovoli preimenovanja in kasneje vpisovanja dogodkov vanj. Prav tako se iCalu sfuzla in ne more več pravilno shranjevati dogodkov v osnovni koledar. Zato POZOR: Ne kreirajte dodatnih koledarjev znotraj CalDAV strežnika iz iCal-a.
Postopek konfiguracije odjemalca na iOS napravi je podoben. Izberemo nov CalDAV račun, vpišemo ime strežnika (s portom) ter uporabniško ime in geslo. Če se (oz. ko se) iOS upre, da ne najde koledarja, tapnemo na Advanced Settings in popravimo pot do koledarja. iOS pričakuje, da uporabljamo poln CalDAV strežnik in zato ponudi pot /principals/users/uporabnik, to popravimo tako, da se celotni naslov glasi nekaj podobnega kot: https://uporabnik@server.domena.com/Calendars/Public, kot smo to vpisali v iCalu.
Med preskušanjem, kako se vnešeni dogodki vidijo med iOS napravami, sem naletel na čudno stvar. Dogodek vnešen na eni napravi je bil sicer viden na njej, a na drugih napravah ga ni bilo. In tudi obratno. Po preverjanju na serverju ali so zapisi prisotni se izkaže, da so, le nekako jih naprave ne zaznajo. Brskanje na spletu ni obrodilo nekih pametnih informacij, zato sem malce eksperimentiral - in ko sem vklopil, da naprava sinhronizira VSE dogodke (in ne samo tiste, ki so mlajši od 2. tednov) so se VSI dogodki pojavili na VSEH napravah. Ko je tudi to popravljeno, bo iOSov koledar zadovoljno sodeloval s CalDAV strežnikom, ki ga nudi Synlogy DS411slim.
Pri vsem skupaj moramo seveda poskrbeti, da so na usmerjevalniku (routerju) nastavljene ustrezne preusmeritve portov iz javnega omrežja na domače. V nasprotnem primeru, bodo stveri deloval zgolj v domačem WiFi omrežju.
Še ena stvar je, ki je nisem posebej omenjal, in to je šifriran prenos podatkov. DS411slim omogoča uvoz certifikata in ključa s katerima lahko nato omogoča šifrirano komunikacijo z odjemalci po protokolu SSL, ki za domače potrebe omogoča dovolj varen prenos podatkov. Če certifikat in ključ nista uvožena šifrirana komunikacija ni mogoča. DS411slim omogoča tudi izdelavo lastnega certifikata in ključa, v primeru, da se odločimo, da ne kupimo ustreznega para pri certifikacijski hiši.