Международная конференция разработчиков
и пользователей свободного программного обеспечения

Свой уласны Dropbox, з календаром, кантактамі і RSS.

Андрэй Захарэвіч, Мінск, Belarus

LVEE Winter 2016

THIS IS A TRUE STORY. At the request of the survivors, the names have been changed. Out of respect for the dead, the rest has been told exactly as it occurred. This is a story of attempt to get some open source and provider independent solutions for some task we usually allow to perform companies and corporations like Dropbox Inc or Google Inc.

Папярэджанне

Ад пачатку хацеў бы заўважыць, што гэта не спроба разглядзець усе магчымасці ownCloud. Гэта расказ пра прымяненне яго як інструмента для задавальнення пэўных (маіх) патрэб такім чынам, каб гэты было зручна мне.

Мэты і задачы

Пачнем, вядома ж, з вызначэння задач і таго, наколькі абраны інструмент дазваляе іх выканаць.

Файлаабменнік

Задачы:

  • Магчымасць падзяліцца спасылкай на нейкі файл з кім заўгодна (з нейкім механізмам абмежавання доступа);
  • Магчымасць стварыць агульны набор рэсурсаў для некалькіх карытальнікаў
  • Звычайныя магчымасці па абнаўленню файлаў з адной крыніцы на ўсе месцы, дзе ляжыць яго копія
  • Кліент пад Linux для сінхранізацыі ўсяго акаўнта ці асобных яго папак. Пажадана, каб дазваляў дадаваць некалькі акаўнтаў.

Кантакты і календар

  • Цэнтралізаванае сховішча для календара і кантактаў
  • З магчымасцю сінхранізацыі на прылады Android. У ідэале каб сінханізацыя адбывалася гэтак жа, як са звычайнымі правайдэрамі, то бок как не абмяжоўваць спіс праграм, якія потым з гэтымі кантактамі ці календарнымі запісамі змогуць працаваць
  • Зручны (хаця б мінімальна) інтэрфейс для кампьютэра з магчымасцю аб’ядноўваць кантакты ў групы.
  • Групы кантактаў павінны быць бачныя і даступныя для любых аперацый як з кампа, так і з тэлефона.
  • Магчымасць імпарту кантактаў і календара ў Thunderbird
  • Магчымасць экспарту у файл і пераносу на іншы сервер

RSS

  • Магчымасць чытаць як з кампьютэра, так і з Android-прылад
  • Магчымасць дадаваць з кампьютэра і андроід-прылад
  • Магчымасць сінхранізаваць стан (прачытаны, пазначаны як цікавы) для розных крыніц
  • У ідэале, магчымасць атырмаць доступ праз вэб-інтэрфейс
  • Магчымасць экспарту у файл і пераносу на іншы сервер

Спасылкі

  • Магчымасць чытаць як з кампьютэра, так і з Android-прылад
  • Магчымасць дадаваць з кампьютэра і андроід-прылад
  • Групіроўка па групах ці тэгах, даступная для ўсіх кліентаў
  • Магчымасць экспарту у файл і пераносу на іншы сервер

Як атрымаць уласнае воблака ад пачатку да канца

Тут я паспрабую караценька расказаць, як можна атырмаць усё што я шукаў ва ўласным воблачным сховішчы.

Як паставіць ownCloud.

Самы просты варыянт атрымання інстансу ownCloud – гэта паставіць яго, карыстаючыся парадамі з афіцыйнага кіраўніцтва да бягучай стабільнай версіі 1.

Калі караценька: узяць гатовы пакет да большасці папулярных дыстрыбутываў, ці можна нават прапісаць адпаведную крыніцы для інсталяцыі пакетаў. Другі спосаб дазваляе даволі зручна абнаўляцца. Я такім чынам перажыў ужо нават апдэйт паміж мажорнымі версіямі.

Парады па наладцы

Працягваючы слаўную традыцыю, прапаную звярнуцца да парад па інсталяцыі1 i настройцы базы дадзеных4.

Хаця сам я спрабаваў сёе-тое з прыведзеных парад, але вымушаны заўважыць, што на серверы з не надта вялікім аб’ёмам памяці кэш можа не паскараць працу, а замаруджваць яе, насуперак парадам з афіцыйнага кіраўніцтва. А неправільная настройка PHP-кэшавання можа зрабіць вашае воблака бясконца бяспечным (то бок, недаступным нікому).

Даволі неблага працуе выкананне задач па раскладзе з дапамогай cron-задач, хаця, нажаль, некаторыя задачы могуць павісаць. У выпадку з RSS калі працэс не здолее атрымаць абнаўленні за пэўны час і перастане працаваць не знішчыўшчы lock-файл, то абнаўленне будзе немагчымае без таго, каб гэты файл знішчыць. Гэта магчыма зрабіць рукамі, альбо натравіць асобны скрыпт, які будзе па раскладзе маніторыць стан працэсу.

Калі вы плануеце карыстацца вэб-інтэрфейсам каб дадаваць файлы ў воблака, то варта будзе яшчэ выканаць дадатковыя настройкі для гэтага6. Паколькі мне дастаткова якіх 150-250 мегабайтаў, то хапіла проста настройкі адпаведных зменных у настройках PHP.

Што сапраўды варта зрабіць, гэта настройка бяспекі. Зноўку ж, варта звярнуцца да адпаведнага раздзелу афіцыйнага кіраўніцтва3. Вельмі раю адключыць доступ не па HTTPS і выканаць іншыя парады. З дапамогай гэтых мер я змог падняць сайт па рэйтынгу SSL Server Test5 ад T(\C) да T(A).

Але з любымі мерамі бяспекі варта помніць: калі вы нешта публікуеце ў інтэрнэце, то даць стопрацэнтную гарантыю таго, што інфармацыя будзе даступная толькі і выключна вам ужо немагчыма. Але не варта панікаваць.

Перанос дадзеных ва ўласнае воблака

Прасцей за ўсё з файламі: перанос можна пачаць адразу ж, выкарыстоўваючы вэб-інтэрфейс. Ці дэсктопны кліент7. Калі вы вышкталцоны аматар рэдкіх вычварэнняў і надзвычайных прыгод, то можна скарыстацца і мабільным кліентам8. Уласна, карыстацца можна з дапамогай таго ж заапарку. Дэсктопныя кліенты з нядаўніх часоў дазваляюць сінхранізацыю з некалькімі акаўнтамі.

Кантакты я пераносіў шляхом экспарту з Google Contacts і паўторным імпартам ужо ў ownCloud. Калі вы ўсё яшчэ карыстаеццеся кірыліцай і іншым састарэлым юнікодам па-за межамі ASCII, то я б параіў выбіраць фармат vCard, інакш будуць праблемы з кадзіроўкаю. Ну і каб закрыць пытанні з кадзіроўкаю: выкарыстанне знакаў у імёнах груп кантактаў недапушчальнае – у выніку дзе-небудзь пасля сінхранізацыі імёны будуць ламацца. Давялоса міграваць групу “Сям’я” у групу “Сваякі”.

Калі вы — як і я — прасцей запамінаеце твары асоб чым імёны, то для вас благая навіна: выявы для кантактаў вы страціце. А вось для аматараў усё акуратна раскладаць па папачках і каталагізаваць у мяне добрая навіна: кантакты фактычна не належаць да нейкай групы, яны проста маюць адпаведны тэг. То бок, калі у вас сябар, з якім вы разам працавалі на нейкую кампанію, займаліся спортам і падзяляеце захапленне Linux, прычым для кожнай прыгаданай прыкметы ў вас ёсць асобная група, то гэты ваш знаёмы можа патрапіць у чатыры ці болей груп. Пацешце ўнутранага бюракрата!

На гэтым месцы лепш за ўсё настроіць двухбаковую сінхранізацыю з нейкім Android-смартфонам ці планшэтам. Добрая навіна: пачынаючы з версіі 4.0 Андроід дазваляе дадаваць правайдэры кантактаў і календара. Я спрабаваў карыстацца рознымі праграмамі, але DAVdroid – CalDAV/CardDAV Sync паказаў сябе лепш за ўсё: сіхранізацыя працуе хутка і надзейна. Дазваляе сінхранізаваць адразу кантакты і календар. Перажыў некалькі абнаўленняў як воблака, так і сваіх уласных.

З календаром было крыху больш складана: я не знайшоў спосабу штатным чынам экспартаваць яго з гуглаўскага календара. Я скарыстаўся метадам з блога Man and Keyboard9. Калі караценька:

  1. Выдаліць непатрэбныя падзеі
  2. Настроіць двухбаковую сінхранізацыю календара паміж Android-прыладай і ownCloud
  3. Скрыстацца праграмай iCal Import/Export CalDAV10 і перанесці сінхранізаваць календар паміж аблокамі

Ну і раз ужо усё гэта так удала сінхранізавалася, то можна сінхранізаваць з дэсктопам.12 13

RSS-чыталка пакуль мне лепш за ўсё спадабалася адна 14, якая дазваляе зручна чытаць і сінхранізаваць. Нажаль, у сэнсе кіравання падпіскамі па-за межамі дадаць новую крыніцу лепш карыстацца веб-інтэрфейсам. Але, з іншага боку, карыстацца веб-інтэрфейсам для чытання не так зручна.

Са спасылкамі прасцей за ўсё: карыстацца праз веб-інтэрфейс досыць зручна. Ёсць неблагі кліент Андроід15. Нажаль, кліент не дазваляе дадаваць групы для спасылак і рэдагаваць спасылкі. Ва ўсім астатнім кліент досыць зручны (і невялікі).

Усе функцыі былі рэалізаваныя праз штатны плагіны.

Літаратура і спасылкі

1. ownCloud 9.0 Server Administration Manual: Installation
2. ownCloud Server Administration Manual:Server Tuning & Performance Tips
3. ownCloud Server Administration Manual: Hardening and Security Guidance
4. ownCloud Server Administration Manual: Database Configuration"
5. Qualys SSL Labs SSL Server Test
6. ownCloud Server Administration Manual: Uploading big files
7. ownCloud Desktop Clients
8. ownCloud client for Android
9. Man and Keyboard: Google to Owncloud, Contacts and Calendar
10. iCal Import/Export CalDAV
11. DAVdroid – CalDAV/CardDAV Sync
12. Moving your Contacts and Calendar Away from Google
13. Birthday Calendar with ownCloud via CalDAV
14. ownCloud News Reader
15. ownCloud Bookmarks

Abstract licensed under Creative Commons Attribution-ShareAlike 3.0 license

Назад