Содержание статьи
Поздравляю, тебе досталась, возможно, первая в мире статья, в которой системы персонального файлохранилища, разворачиваемые на домашних серверах и NAS’ах, не называют «персональным облаком». На этом радости не заканчиваются — мы сравним лучшие продукты этого класса. В качестве бонуса мы поговорим о нескольких интересных устройствах, на базе которых можно все это богатство разворачивать с максимальным комфортом.
Есть очень простой способ понять, нужно ли тебе поднимать собственное хранилище, или же можно обратиться к услугам Dropbox. Стоимость дисков в пересчете на терабайт достигает 50 долларов в рознице. Железо может быть самым разным, от старого ПК до Raspberry Pi или традиционного NAS. Стоимость аренды облачного пространства в пересчете на три года (при том что средняя длительность службы современных дисковых накопителей значительно больше этого периода) существенно превышает эту сумму на один-два порядка (так, недавно появившийся у Dropbox «бизнес-аккаунт» будет стоить 750 долларов за терабайт, причем число участников ограничено пятью). Таким образом, если тебе нужно иметь доступ к большим объемам данным или же организовать хранилище для группы пользователей — это однозначно твой путь.
BitTorent Sync
В BitTorrent Sync используется подход, принципиально отличный от других систем. Синхронизация построена на основе децентрализованного peer-to-peer протокола. Если файл доступен сразу на нескольких устройствах, они могут передавать его одновременно, достигая при этом максимально возможной скорости. Для начала синхронизации каталога необходимо через веб-интерфейс указать каталог и сгенерировать для него секретный 20-байтный ключ, который одновременно и определяет права доступа (ключ может давать полные права или права только на чтение, при этом синхронизация с другими устройствами будет односторонней), и уникально идентифицирует этот каталог. На другом устройстве с установленным BitTorrent Sync теперь необходимо выбрать локальную папку и указать этот код (на мобильном устройстве можно отсканировать QR-код непосредственно с экрана компьютера). Все. Не требуется указывать никаких адресов сервера — устройства с одним и тем же кодом найдут друг друга автоматически. Для этого используется несколько механизмов: поиск в локальной сети с помощью широковещательных пакетов, пиры могут обмениваться друг с другом информацией о других известных им пирах, пир может быть задан статически указанием адреса и порта, может быть использована DHT либо BitTorrent трекер-сервер, который пиры уведомляют о своей доступности и который может быть ими использован для проксирования трафика при невозможности установить прямое соединение.
Безопасность
При передаче файлы шифруются (AES-128) и не сохраняются на каких-либо устройствах, кроме тех, что были авторизованы пользователем. Для взаимной аутентификации устройств используется SRP. Сама компания BitTorrent хотя и имеет доступ к статистике сервиса, но заявляет, что никакие данные пользователей ей принципиально не могут быть доступны.
Совместимость
Работает под OS X, Windows (начиная с XP), Linux (включая платформы ARM и PowerPC), FreeBSD, Android, iOS.
Установка
Под Ubuntu самое простое — поставить из репозитория, всего тремя строчками
$ sudo add-apt-repository ppa:tuxpoldo/btsync
$ sudo apt-get update
$ sudo apt-get install btsync
При этом нужно учесть, что BTSync будет запускаться под пользователем root и новые файлы будут создаваться с правами root. Проверим:
$ ps ax|grep btsync
8413 ? Sl 0:04 /usr/lib/btsync/btsync-daemon --nodaemon --config /etc/btsync/debconf-default.conf
Для настройки синхронизации каталогов необходимо зайти на страницу http://localhost:8888 . На ней доступно добавление/удаление каталогов, показывается их размер и статус синхронизации, можно посмотреть секретный код каталога и сгенерировать его заново (все клиенты со старым ключом потеряют к нему доступ). Также можно задать имя устройства, которое будет отображаться на других клиентах, порт (по умолчанию он выбирается случайным при запуске), установить ограничения на скорость загрузки и выгрузки, включить UPnP и сменить пароль доступа к веб-интерфейсу. Для других настроек необходимо заглянуть в конфигурационный файл (в Ubuntu лежит здесь):
$ sudo nano /etc/btsync/debconf-default.conf
Если в него были внесены изменения, сервис нужно перезапустить:
$ btsync-restart
Примеры конфигурационных файлов лежат здесь:
$ ls /etc/btsync/samples/
complex.conf simple.conf user-new.conf user-old.jdoe.conf
Хакер #178. Mesh-сети или строим свой интернет
В случае если BitTorrent Sync не может синхронизировать какой-то файл (это можно понять по тому, что в веб-интерфейсе, несмотря на то что устройство подключено к каталогу, постоянный объем данных постоянно остается несинхронизированным), необходимо заглянуть в журнал. По умолчанию в Ubuntu его размещение — /var/lib/btsync/sync.log . Если процесс синхронизации нужно запускать под текущим пользователем, можно установить другой пакет:
$ sudo apt-get install btsync-user
В этом случае настройки будут доступны (после запуска) по адресу http://localhost:8888. Установка BitTorrent Sync, к примеру, на WD My Book Live ненамного сложней. Сначала нужно загрузить и распаковать архив:
# mkdir ~/btsync && cd ~/btsync
# wget http://btsync.s3-website-us-east-1.amazonaws.com/btsync_powerpc.tar.gz
# tar -xvf btsync_powerpc.tar.gz
Создадим конфигурационный файл по умолчанию:
# ./btsync --dump-sample-config > btsync.conf
Добавим файл автозапуска:
# nano /etc/init.d/btsync
#! /bin/sh
# /etc/init.d/btsync
case "$1" in
start)
/root/btsync/btsync --config /root/btsync/btsync.conf
;;
stop)
killall btsync
;;
*)
echo "Usage: /etc/init.d/btsync {start|stop}"
exit 1
;;
esac
exit 0
Дадим права на выполнение и обновим ссылки на скрипт автозапуска:
# chmod 755 /etc/init.d/btsync
# update-rc.d btsync defaults
И стартуем:
# /etc/init.d/btsync start
Обязательно нужно сменить пароль для доступа через веб, а лучше запретить веб-доступ с помощью конфигурационного файла.
Выводы
Поскольку центрального хранилища в BTSync нет, все участники равны, и, если две группы участников некоторое время выйдут из синхронизации, потом будет сложно разобраться в том, какая из версий основная. Синхронизация через HTTP/HTTPS не поддерживается (в конце концов, это же торрент-протокол), поэтому далеко не всегда он сможет пройти через сетевые экраны, и в современной защищенной корпоративной среде ему приходится туго. Нет возможности дать общий доступ к отдельному файлу/каталогу через веб. Администрирование большого количества каталогов и устройств затруднено. Невозможно дать доступ для синхронизации к каталогу, находящемуся внутри уже синхронизируемого каталога. Недостатки BTSync — нельзя синхронизировать подпапку уже синхронизированной папки. BitTorrent Sync производит отличное впечатление профессионально сделанного сервиса и прекрасно покрывает задачи синхронизации огромных объемов данных между любым количеством пользователей при сравнительно небольшом количестве синхронизируемых каталогов и в не очень закрытых сетях. Он удобен в установке и использовании и надежен. Но функционал его строго ограничен, и это решение может оказаться не очень подходящим для более сложных задач.
OwnCloud
OwnCloud — одна из самых старых, развитых и наиболее известных систем. Она распространяется в исходных кодах и предоставляет очень широкий функционал: хранилище файлов с версионированием, календарь, задачи, контакты, новости, закладки, просмотр документов, музыкальные и фотогалереи, синхронизация всего этого с настольными компьютерами и мобильными устройствами, совместный доступ через веб, поиск по содержимому файла. Использование в качестве внешних хранилищ Dropbox, FTP, S3, WebDAV. Возможность написания собственных плагинов. Поддержка LDAP. Это далеко не полный перечень того, что может OwnCloud. Функционально она превосходит многие бесплатные сервисы, в том числе предоставляемые Google (Mail, Calendar, Contacts, Tasks, покойный уже Reader и другие), но при этом может быть полностью развернута в своей сети. Также поддерживается шифрование на серверной стороне.
Клиент для синхронизации использует протокол HTTP/HTTPS и поддерживает прокси, соответственно, будет работать в большинстве корпоративных сетей через сетевые экраны и прокси. Конечно, синхронизация будет медленнее, чем у BitTorrent Sync, зато он работает практически везде. Пользователи могут не только предоставлять доступ к файлам и папкам через веб, но и раздавать их зарегистрированным пользователям для синхронизации, при этом они будут доступны в папке Shared. К сожалению, не поддерживается синхронизация между серверами и нет горячего резервирования из коробки. Можно только сделать резервную копию. Хотя в случае отказа сервера на клиентских устройствах копии сохранятся, в схеме с центральным хотелось большей надежности, чем дает ручное восстановление из бэкапа при отказе.
Совместимость
Работает под Windows, OS X, Linux, iOS, Android. Сервер можно поднять даже под OpenWRT, и она заработает (хотя и не быстро) даже на домашнем маршрутизаторе, есть версия для ARM (ни то, ни другое Dropbox никогда не планировал даже для клиента). Поддерживается широким перечнем коммерческих сетевых хранилищ: WD My Book Live, QNAP, Synology… К сожалению, официальные клиенты OwnCloud для мобильных устройств платные, но, поскольку сервер поддерживает открытые протоколы (WebDAV для доступа к файлам, CalDAV — для календаря и так далее), использовать только их необязательно. Написан OwnCloud на PHP, и для его развертывания на выбор доступен широкий выбор стандартных средств: веб-серверы Apache, nginx, lighttpd и другие, базы данных SQLite, MySQL, PostgreSQL и другие.
Установка
Сервер ставится просто (хотя в репозиториях Ubuntu 13.04 и есть пакет OwnCloud, но он старой версии): Добавляем ключи:
$ wget http://download.opensuse.org/repositories/isv:ownCloud:community/xUbuntu_13.04/Release.key
$ sudo apt-key add - < Release.key
$ sudo sh -c "echo 'deb http://download.opensuse.org/repositories/isv:ownCloud:community/xUbuntu_13.04/ /' >> /etc/apt/sources.list.d/owncloud.list"
$ sudo apt-get update
И ставим:
$ sudo apt-get install owncloud
Если нужно установить только клиент, то:
$ sudo apt-get install owncloud-client
Поставили сервер — открыли в браузере http://localhost/owncloud . В окне первого запуска нужно указать, что будет использоваться SQLite (не рекомендуется, если пользователей больше одного, но для пробы вполне подойдет), имя-пароль администратора — и вуаля! В клиенте необходимо для начала синхронизации указать адрес сервера. На самом деле нужно проверить и подправить еще несколько параметров. По умолчанию PHP ограничен максимальный размер загружаемых файлов. В файле /etc/php5/apache2/php.ini нужно изменить параметры uploadmaxfilesize и postmaxsize, задав их, скажем, равными 2 и 2,2 Гб соответственно:
$ sudo nano /etc/php5/apache2/php.ini
# upload_max_filesize = 500 MB
upload_max_filesize = 2 GB
# post_max_size = 600 MB
post_max_size = 2.2 GB
И рестартовать Apache:
$ sudo service apache2 restart
Также не помешает проверить, что в настройках Apache разрешено использование файлов .htaccess и mod_rewrite: убедиться, что в разделе /var/www файла виртуальных хостов Apache (как правило, /etc/apache2/sites-enabled/000-default) AllowOverride установлен в All, выполнить a2enmod rewrite и a2enmod header и рестартовать Apache (подробнее см. ). Безусловно, веб-сервер будет необходимо переключить на работу по HTTPS. Модификации конфигурационных файлов, необходимые при применении nginx вместо Apache, приведены здесь.
Безопасность
Данные между клиентом и сервером передаются по протоколу HTTPS (если, конечно, он включен). Шифрование файлов, как уже отмечалось, поддерживается только на серверной стороне. Это значит, что тот, кто контролирует сервер, может получить к ним доступ.
Выводы
При всей уникальности функционала OwnCloud впечатление сильно портят различные недоработки и баги. Когда клиент после штатного обновления внезапно начинает пересинхронизировать 300 Мб файлов или когда ошибка в конфигурации внешнего WebDAV-хранилища приводит к тому, что веб-интерфейс становится полностью недоступен, и единственное средство это исправить — корректировка базы данных прямыми SQL-запросами, сложно решиться доверить ему действительно ценные данные.
AeroFS
AeroFS предназначен для синхронизации файлов и предоставления к ним общего доступа. Обмен данными идет между устройствами напрямую, сервер используется для управления и администрирования пользователей; поддерживается версионирование фалов. Попробовать AeroFS можно без развертывания сервера, воспользовавшись облачным сервисом, который в бесплатной версии поддерживает до трех участников (teammates) и одного внешнего пользователя (collaborator) без ограничений на объем (так как файлы не хранятся на сервере) и количество устройств на одного пользователя.
Совместимость
Сервер Team Server работает под Windows, Linux, OS X. Клиент AeroFS Desktop поддерживает Windows, Linux, OS X, Android.
Безопасность
По заявлению разработчиков, все данные, передаваемые между устройствами, шифруются с помощью AES-256-CBC. Файлы не хранятся на серверах, хотя могут проксироваться через relay-сервер, если устройствам не удалось установить прямое соединение друг с другом. Подробнее здесь.
Установка
Для установки клиента под Ubuntu необходимо загрузить deb-пакет и установить его:
$ sudo dpkg -i aerofs-installer.deb
Затем нужно запустить Applications → Internet → AeroFS. При щелчке правой кнопкой мыши на появившейся в трее иконке появится меню, похожее на меню Dropbox. В настройках можно задать свое имя и имя компьютера, локальный каталог для синхронизации, ограничить полосу пропускания и так далее. Также с его помощью можно предоставить общий доступ к каталогу, указав список почтовых адресов тех, кому дается доступ. При нажатии на кнопку «Network Diagnostics…» можно просмотреть список компьютеров, доступных для данного устройства. Есть клиенты для работы в командной строке: aerofs-cli — демон и aerofs-sh — работа в интерактивном режиме. Аналогичная процедура нужна для установки сервера:
$ sudo dpkg -i aerofsts-installer.deb
Запустим:
$ aerofsts
В появившемся окне зададим почтовый адрес администратора сервера, его пароль и имя сервера. Выберем, где будем хранить данные, на локальном диске или Amazon S3. Для локального диска укажем папку, в которой будут храниться данные, и их вид: с сохранением файловой структуры или в сжатом виде. Во втором случае можно достичь значительной экономии дискового пространства, но доступ к файлам можно будет получить только с помощью утилит, идущих в комплекте с сервером.
По завершении начальной настройки сервер автоматически синхронизирует локальный каталог с другими устройствами, идентифицировав пользователя AeroFS по почтовому адресу, введенному при настройке. При этом, хотя и установленный локально, сервер будет являться частью облака AeroFS и на него будут распространяться ограничения бесплатной версии (три участника и один внешний пользователь). В системном трее появится точно такая же иконка, как у клиента, отличающаяся выпадающим меню. В нем будет пункт Manage Team, ведущий на страницу администрирования, и не будет Pause syncing for an hour и Invite a friend to AeroFS.
Как и в случае с клиентом, для сервера есть варианты для работы из командной строки: aerofsts-cli и aerofsts-sh.
Выводы
Если число пользователей, требующих разных прав доступа, никогда не превысит трех (число устройств, напомним, не ограничено), можно присмотреться к Seafile поближе — сервис очень простой и удобный, хотя и ограниченный по функциональности. Если же пользователей может в перспективе стать больше, то начиная с четырех придется платить по 10 долларов в месяц за каждого (!) участника (число внешних пользователей при этом будет неограниченным).
Seafile
Seafile создан китайскими разработчиками и распространяется в исходных кодах. Он позиционируется как средство синхронизации файлов и совместной работы для команд. Seafile, как и OwnCloud, использует центральное хранилище, к которому подключаются клиенты. Серверная часть существует в двух редакциях: Open Source и Professional. Пользователи профессиональной версии, кроме технической поддержки, получают дополнительные функции, такие как возможность использовать Amazon S3 в качестве хранилища файлов, WebDAV, поиск файлов, предварительный просмотр для файлов doc и ppt, масштабирование, повышенную доступность и улучшенную интеграцию с почтой. Профессиональная версия доступна также для персонального использования с ограничением до пяти пользователей. Поскольку Seafile позиционируется не только как сервис файловой синхронизации, но и как средство совместной работы, в нем предусмотрены такие инструменты, как встроенная вики, ведение списков задач, общий доступ к файлам через веб, онлайн-просмотр файлов с дискуссиями, управление учетными записями и группами, поддержка LDAP, обмен сообщениями.
Seafile основан на модифицированной под задачи файловой синхронизации модели Git. Основным понятием в Seafile является библиотека (аналог Git-репозитория), которая соответствует группе каталогов. В отличие от Git, файлы разделяются на блоки для более эффективной передачи по сети и хранения. Для начала синхронизации нужно загрузить библиотеку с сервера к себе на диск. При необходимости можно создавать sub-library для подкаталогов. Можно не только давать права пользователям и группам на синхронизацию библиотек, но и открывать общий доступ через веб как к отдельным файлам, так и к каталогам с правами только на чтение или и на чтение, и на запись. В качестве сервера баз данных Seafile может использовать SQLite, MySQL, PostgreSQL, веб-серверы Apache и nginx. Воспользоваться Seafile можно и без установки своего сервера — облачный сервис Seacloud, построенный на основе Seafile, в бесплатном тарифном плане предоставляет 1 Гб бесплатного дискового пространства и 5 Гб включенного трафика. Для оценки возможностей, предоставляемых Seafile, можно ознакомиться с демо-версией.
Совместимость
Сервер работает под Linux (существует специальная версия для Raspberry Pi) и Windows. Клиенты для настольных систем есть для Windows XP, 7, Vista, Linux (как апплеты, так и терминальные), Mac OS X 10.6+. Мобильные клиенты работают на Android и iPad/iPhone.
Безопасность
Библиотеке при ее создании можно задать пароль, с которым она будет зашифрована алгоритмом AES-128. Также на основе пароля генерируется специальный токен, который будет потом использоваться сервером для проверки возможности доступа к библиотеке. После задания пароль изменить нельзя, можно только создать новую библиотеку. Дальнейшее шифрование/дешифрование файлов с использованием пароля, по утверждению авторов, осуществляется только на клиентской стороне. Обмен между клиентом и сервером также шифруется AES-128.
Установка клиента
Зарегистрируемся в сервисе seacloud.cc. На странице загрузки выберем версию клиента, соответствующую нашей системе. Для Ubuntu это deb-пакет, устанавливаемый обычным способом, например:
$ sudo -i seafile_1.8.1_amd64
Запустим:
$ seafile-applet
При двойном клике на появившейся в трее иконке в браузере откроется веб-интерфейс клиента с предложением зайти на сайт облачного сервиса Seacloud, создать библиотеку и загрузить ее в локальный каталог. Когда это будет сделано, автоматически будет открыт веб-интерфейс локального клиента, который покажет прогресс загрузки файлов библиотеки. После этого файлы будут автоматически синхронизироваться с сервером.
Если у Windows-клиента предусмотрена возможность автозапуска, то под Linux нужно вручную, скажем, добавить запуск апплета в cron:
$ crontab -e
Добавить строку:
@reboot /usr/bin/seafile-applet
Поэкспериментировав с клиентским приложением, подключенным к Seacloud, продолжим с серверной частью. Для установки сервера необходимо загрузить архив со страницы http://seafile.com/en/download/ и разархивировать его:
$ mkdir haiwen
$ mv seafile-server_* haiwen
$ cd haiwen
$ tar -xzf seafile-server_*
И на всякий случай сохранить архив
$ mkdir installed
$ mv seafile-server_* installed
Установить дополнительные пакеты:
$ sudo apt-get update
$ sudo apt-get install python2.7 python-setuptools python-simplejson python-imaging sqlite3
Запустить установщик
$ cd seafile-server-*
$ ./setup-seafile.sh
$ ulimit -n 30000
и ответить на несколько вопросов, подтвердив в конце правильность данных:
This is your config information:
server name: server-name
server ip/domain: 192.168.1.1
server port: 10001
seafile data dir: /home/alykoshin/haiwen/seafile-data
seafile port: 12001
httpserver port: 8082
If you are OK with these configuration, press [ENTER] to continue.
Обратите внимание, что адрес/домен должен быть именно тем адресом или доменом, по которому к нему будут обращаться клиенты, то есть если у сервера несколько адресов (приватный и публичный), работать с ним клиенты смогут только по одному из них. И еще пара ответов:
This is your seahub admin username/password
admin user name: mail@domain.com
admin password: **************
If you are OK with these configuration, press [ENTER] to continue.
Для запуска сервера необходимо стартовать два сервиса: $ ./seafile.sh start $ ./seahub.sh start
После запуска сервера администрирование доступно по адресу http://localhost:8000/. Для входа необходимо указать почтовый адрес и пароль, введенные при установке. Новые пункты System Admin и Workspace в верхней строке предоставляют доступ к системному администрированию и уже привычному рабочему пространству Seafile соответственно. Создадим новую библиотеку и загрузим ее. В открывшемся веб-интерфейсе локального клиента мы увидим обе библиотеки, и с seacloud.cc, и с нашего локального сервера.
Автоматический запуск можно настроить аналогично настройке автозапуска BitTorrent Sync под WD My Book Live выше. Подробнее установка описана в интернете.
Резервное копирование
Если нет необходимости организовать синхронизацию, а нужен механизм для резервных копий, можно взглянуть в сторону CrashPlan, с помощью которого можно настроить бесплатный бэкап, например, на компьютер приятеля, и, наоборот, с его компьютера — на твой. CrashPlan не предоставляет возможность развернуть у себя свой сервер, и за резервное копирование в облако придется платить.
Amazon Glacier
Чуть больше года назад Amazon запустила облачный сервис под названием Glacier (ледник), предназначенный для хранения резервных копий, с крайне низкой стоимостью хранения данных (1 цент за гигабайт данных) и большим временем доступа к сохраненной на нем информации — несколько часов. В целом Glacier очень интересный вариант для резервного хранения, однако при оценке общих затрат на него следует учитывать, что Амазон взимает плату не только за хранение, но и за передачу данных и запросы к хранилищу. Для его использования можно применять утилиту s3sync, с помощью которой настраивается синхронизация в облачное хранилище S3, и уже в нем настроить политику переноса данных в Glacier. Альтернативой s3sync является файловая система s3fs, которая позволяет удаленно смонтировать bucket S3.
Домашние сетевые хранилища
WD My Book Live и WD My Book Live Duo
Тем, кто не хочет играть в конструктор и собирать сетевой накопитель самостоятельно, стоит посмотреть на продвигаемые как персональное облачное хранилище продукты Western Digital. My Book Live содержит один жесткий диск емкостью 1, 2, 3 Tб и порт гигабитного Ethernet. В накопителе My Book Live Duo находятся два жестких диска суммарной емкостью 4, 6, 8 Тб, которые можно либо использовать в нерезервируемой конфигурации, либо зеркалировать в массив RAID 1. Кроме того, в него добавлен USB-порт, которого нет в версии с одним диском. Тихий, небольшой, стильно выглядящий, напоминающий дизайном толстую (очень) черную книгу. Внутри — процессор ARM и полнофункциональный Debian. В Сети можно найти много инструкций по установке и настройке на нем многих популярных программ.
Raspberry Pi
С Raspberry Pi нельзя добиться скоростей, доступных настоящим NAS’ам и домашним серверам. Для серьезных жестких дисков понадобится дополнительное питание, а для подключения будут доступны только USB-порты, никаких SATA/eSATA. Однако у «малинки» есть ощутимое преимущество — ее поддерживают разработчики почти всех описываемых в статье продуктов. В большинстве случаев проблем не возникнет и с двумя другими платформами, но Raspberry Pi остается явным фаворитом.
Seagate GoFlex Net/Home
Решение от Seagate — это брендированная версия популярного на Западе, но почти неизвестного у нас семейства Pogoplug. Во многом это похоже на то, что предлагает Western Digital. Версия Net позволяет установить два фирменных диска объемом от 0,5 до 1,5 Тб каждый, версия Home поставляется сразу с диском и замены не предполагает. Внутри — полноценная NAS-платформа от Marvel с процессором, работающим на частоте 1,2 ГГц и 128 Мб памяти. Доступен гигабитный Ethernet-разъем и один USB-порт. Очень легко перепрошивается на Arch Linux, также совместим с последними версиями Debian.
Заключение
Каждый из четырех инструментов синхронизации и совместной работы с файлами, рассмотренных в статье, имеет положительные и отрицательные стороны. Описанные программы не единственные — за рамками обзора остался, к примеру, SparkleShare, использующий систему контроля версий Git. Идеального инструмента, к сожалению, среди них нет. Однако можно точно сказать, что с их помощью можно избавиться от Dropbox-зависимости и развернуть собственный приватный сервис с несопоставимо большим объемом и за существенно меньшие деньги, не подвергая свои приватные данные рискам хранения на внешнем хостинге.