На фоне паранойи, происходящей на территории России, я уже несколько лет задумываюсь над тем, как обезопасить свои данные от внезапных санкций «их» против нас и нас против «их»… Не ну а что, хлобысь, и все – китайский или корейский сценарий – геморрой, паника, неразбериха, а твои письма и контакты где-то там, на серверах Google или Apple. Случиться это, конечно, не должно, но… «это Россия, детка» и лучше быть готовым.
Следующей птичкой стала регистрация собственного домена, поднятия на нем своей почты и постепенная миграция социальных связей на свой новый ящик. Однако, Beget не гигант, типа всем известных Google-Apple-Mail.Ru-Yandex, и для почты предоставляет только базовые службы, которые не включают сервер контактов и календарей. Почесав тогда в затылке, я пошел на компромисс, добавив новый ящик в аккаунт Google и временно забив на все, т.к. на тот момент основная цель – всем писать с нового ящика и получать на него ответы – была решена1) по методу «и овцы целы (контакты и календари) и волки сыты (довольный я с красивым адресом)».
И вот, с покупкой Apple Watch пора пришла! Ну да, не понятно, как это все связано… Но нет, все просто – Google что-то не торопится делать приложение для часов и… надо менять почтовый клиент на телефоне! Вот черт!
Естественно, т.к. я давно и плотно переехал на iPhone и обратно на ведроиды не собираюсь2), я стараюсь по максимуму использовать предоставляемые Apple приложения, ибо они, не побоюсь сказать, крутые и простые3) – сперва перенес «Напоминания», «Заметки», потом перетащил данные в «Календарь».
А вот когда настал черед контактов, пришла засада – если использовать Gmail, как основное и единственное приложение для доступа к почте, но контакты хранить в iCloud, то они будут видны только на телефоне и ни как иначе! Но обратно – если хранить контакты в Google, то доступны они будут и в Gmail и на телефоне во всех приложения. Засада же, ну!
И как быть? Да просто! Скрипя сердцем отказаться от приложения Gmail и его web-реализации4), не отказываясь от старого адреса, а контакты перенести куда?.. Куда-то, где они будут доступны всем – и телефону, и почтовому клиенту.
Кстати, для тех, у кого нет паранойи, но есть часы и не хочется или не можется заморачиваться, есть промежуточный вариант, описанный в конце статьи, а всем остальным Welcome в мир боли и геморроя!
Все службы и программы, описанные ниже, можно использовать, как с поддомена, типа contacts.soloshin.su
, так и из каталога домена, к примеру, soloshin.su/contacts
. Но тут я буду исходить из первого варианта, как более красивого и элегантного.
Считаем, что у нас уже есть поддомен mail.<domain.zone>
6) и contacts.<domain.zone>
, направленные на сайт, находящийся в каталоге <site-name>/public_html
. А также установлены сертификаты для домена и поддменов и настроена переадресация с HTTP на HTTPS. Ну и сразу – выбрана версия PHP не ниже 7.1.
contacts.<domain.zone>/baikal/html
и попадаем в конфигуратор, где ничего, кроме часового пояса и пароля администратора можно не менять;Теперь осталось авторизоваться и на закладке «Users and resources» добавить пользователей. Адресная книга и календарь по умолчанию создаются автоматически.
Для автоматического обнаружения сервиса контактов, в корневой папке web-сервера нужно создать файл .htaccess
со следующим содержимым:
<IfModule mod_alias.c> Redirect 308 /.well-known/carddav https://contacts.<domain.zone>/baikal/html/dav.php </IfModule>
В качестве фронтэнда… хотел бы сказать «я выбрал», но увы, выбора нет, т.к. это единственный найденный мной вариант. Однако, полностью функциональный.
Если вы предполагаете использовать календари, вам нужен «CalDavZAP» или «InfCloud»10). Но мне пока нужны только контакты, поэтому я выбрал «CardDavMATE».
И так. Не взирая на кажущуюся сложность настройки11), все, в общем случае, крайне просто!
config.js
;globalNetworkCheckSettings
меняем значение параметра href на 'https://contacts.<domain.zone>/baikal/html/dav.php/principals/'
;globalInterfaceLanguage
на ru_RU
, а globalDefaultAddressCountry
на ru
;
Все! Профит! Теперь переходим по адресу contacts.<domain.zone>/carddavmate/
, вводим логин и пароль, выбираем язык и видим созданные ранее адресные книги – ура, можно добавлять14), удалять и редактировать контакты.
Для удобства обращения к контактам в файл .htaccess
можно добавить:
RewriteEngine On RewriteCond %{HTTP_HOST} ^contacts.<domain.zone>$ [NC] RewriteRule ^$ https://contacts.<domain.zone>/carddavmate/ [R=308,L]
Теперь CardDavMATE будет открываться при переходе по адресу contacts.<domain.zone>
, что намного удобнее, чем contacts.<domain.zone>/carddavmate/
!
В этом месте я затормозился надолго… Перебрал много разных вариантов, которые так или иначе работали не так, как нужно и, в итоге, нашел! Основными критериями поиска были – простота и воспроизводимость.
Этим оказался почтовый клиент «Mozilla Thunderbird» и дополнение для него «CardBook»15)! Причем настраивать клиент не обязательно – его необходимо просто установить, запустить и добавить дополнение, которое и нужно настроить:
https://contacts.<domain.zone>
;.VCF
и открываем.Далее редактируем контакты, если нужно, и нажимаем «Синхронизация»20).
Перед тем, как остановиться на этом клиенте, я перепробовал некоторое количество прочих и этот оказался самым простым, легким и… в общем, подойдет, как для личного использования, так и коммерческого – причем в обоих случаях можно бесплатно и легально!
Если хотите бесплатно для личного использования, то лучше «Standard edition», т.к. доступны обновления в «один клик»; если для коммерческого использования, но также бесплатно, то нужно качать «Community edition».
https://mail.<domain.zone>/?admin
и вводим логин/пароль «admin»/«12345»;Все остальные настройки просты и интуитивны. Стоит обратить внимание только на закладки:
Все, теперь можно авторизоваться в своем ящике перейдя по адресу https://mail.<domain.zone>
и добавить в настройках созданную и заполненную ранее адресную книгу24)! Осталось немного подождать, чтобы она автоматически синхронизировалась25) и теперь вот совсем уже все!
Еще из приятного – авторизовавшись в основном аккаунте, можно подключить любые другие дополнительные аккаунты, домены для которых были настроены в админке, и с легкостью между ними переключаться. Причем при последующей авторизации в основном аккаунте, они уже будут.
Для подключения контактов на iPhone, нужно зайти «Настройки» → «Контакты» → «Учетные записи» → «Новая учетная запись» → «Другое» → «Учетная запись CardDAV», ввести адрес contacts.<domain.zone>
и логин с паролем. Все.
Это немного не в тему, но достоверной информации на русском я не нашел.
У Контактов Google тоже есть CardDAV сервер и для его использования в том же «RainLoop» нужно использовать адрес https://www.googleapis.com/carddav/v1/principals/<user-name>@gmail.com/lists/default/
, логин вида <user-name>@gmail.com
и сгенерированный тут пароль приложения.
В Apple iOS, скорее всего, будет работать адрес https://www.googleapis.com/.well-known/carddav
или даже просто https://www.google.com
, но лично не проверял. Знаю точно, что в «RainLoop» они не работают.
<domain.zone>
, это ваш домен, типа «soloshin.su»<site-name>/public_html
./home/a/<account-name>/<site-name>/databases/baikaldb.sqlite
. Отсутствующие каталоги нужно заранее создать через панель управления хостингом или FTP – в данном примере у меня нет каталога «databases».
Обсуждение
Что вижу - я создаю аккаунт, создаю адресную книгу.
у каждого аккаунта свои адресные книги, которыми они пользуются дополняют/удаляют.
CardDavMATE - решит мой вопрос?