Организация хранилища файлов с доступом с мобильного (Nextcloud)
В этой лабораторной работе вы развернете решение для работы с личными файлами на основе продукта Nextcloud. После развертывания продукта вы сможете работать с файлами через веб-интерфейс или с помощью приложений (Windows, MacOS X, Linux, Android и iOS).
Для развертывания вы будете использовать следующие сервисы:
Виртуальная машина free tier — сервис, в рамках которого предоставляется бесплатная виртуальная машина с готовой конфигурацией.
Object Storage — объектное S3-хранилище с бесплатным хранением файлов, объемом до 15 ГБ. Подробнее об условиях free tier — в документации сервиса.
Публичный IP-адрес для доступа к веб-интерфейсу хранилища.
Бесплатный сервис nip.io для получения публичного доменного имени и сертификата. Вы также можете использовать собственное зарегистрированное доменное имя и SSL-сертификат для организации доступа.
Шаги:
Перед началом работы
Зарегистрируйтесь в личном кабинете Cloud.ru.
Если вы уже зарегистрированы, войдите под своей учетной записью.
1. Разверните ресурсы в облаке
На этом шаге вы создадите бесплатную виртуальную машину и бакет в хранилище Object Storage.
Создайте бесплатную виртуальную машину со следующими параметрами:
В поле Название укажите название виртуальной машины, например, nextcloud-server.
На вкладке Маркетплейс выберите образ Ubuntu 22.04.
Назначьте публичный IP-адрес виртуальной машине — оставьте включенной опцию Подключить публичный IP. Для виртуальной машины будет арендован и назначен прямой публичный IP.
В поле Имя пользователя укажите логин пользователя виртуальной машины, например, user1.
Выберите метод аутентификации — пароль.
В поле Имя хоста укажите уникальное имя устройства, по которому можно идентифицировать виртуальную машину в сети, например, nextcloud-server.
Создайте бакет в сервисе Object Storage со следующими параметрами:
В поле Название укажите название бакета в формате {name}-nextcloud-data, например ivan-nextcloud-data.
В поле Доменное имя укажите название домена в формате {name}-nextcloud-data, например ivan-nextcloud-data.
Выберите Класс хранения по умолчанию — стандартный.
(Опционально) Укажите значение в поле Максимальный размер бакета.
Выберите из списка созданный бакет и сохраните ID тенанта.
Убедитесь, что в личном кабинете:
На странице сервиса «Виртуальные машины»:
отображается виртуальная машина nextcloud-server;
статус виртуальной машины — «Запущена»;
виртуальной машине назначен публичный IP-адрес.
На странице сервиса Object Storage отображается бакет nextcloud-data.
2. Настройте группы безопасности
Группы безопасности в облаке Cloud.ru Evolution позволяют контролировать входящий и исходящий трафик для создаваемых ресурсов.
Вы настроите правила фильтрации трафика — разрешите весь входящий трафик по порту 443 (HTTPS) и весь исходящий трафик. Создайте новую группу безопасности со следующими параметрами:
Выберите Зону доступности, в которой необходимо разместить группу безопасности. Укажите ту же зону доступности, что выбрана для виртуальной машины nextcloud-server.
Укажите Название группы безопасности, например, nextcloud-server
Добавьте правила входящего и исходящего трафика.
Правила входящего трафика:
Правило 1:
Протокол — TCP
Порт — 443
Тип источника — IP-адрес
Источник — 0.0.0.0/0
Правило 2
Протокол — TCP
Порт — 80
Тип источника — IP-адрес
Источник — 0.0.0.0/0
Правила исходящего трафика:
Протокол — любой
Порт — оставьте пустым
Тип адресата — IP-адрес
Адресат — 0.0.0.0/0
Назначьте созданную группу безопасности виртуальной машине wordpress-server. Если в группе безопасности присутствуют другие виртуальные машины, исключите их из группы.
Убедитесь, что в личном кабинете на странице сервиса «Виртуальные машины», в разделе Сетевые параметры отображается группа безопасности nextcloud-server.

3. Установите и настройте Nextcloud
Для настройки виртуальной машины вы будете использовать серийную консоль в браузере.
Подключитесь к виртуальной машине nextcloud-server через серийную консоль.
Обновите индекс пакетов ОС и установите обновления пакетов:
sudo apt update -ysudo apt upgrade -yУстановите пакет Nextcloud:
sudo snap install nextcloudВыделите объем памяти для Nextcloud:
sudo snap set nextcloud php.memory-limit=2048MВключите компрессию HTTP:
sudo snap set nextcloud http.compression=trueСоздайте пользователя — укажите username и password:
sudo nextcloud.manual-install username passwordДождитесь появления надписи «Nextcloud was sucessfully installed».
Для настройки Object Storage:
Подключитесь к виртуальной машине nextcloud-server через серийную консоль.
Выполните построчно команды для настройки хранения данных в Object Storage. Замените {ID тенанта}, {Key ID} и {Key Secret} на значения, полученные ранее.
sudo nextcloud.occ config:system:set objectstore class --value="\\OC\\Files\\ObjectStore\\S3"sudo nextcloud.occ config:system:set objectstore arguments bucket --value="nextcloud-data"sudo nextcloud.occ config:system:set objectstore arguments key --value="{ID тенанта}:{Key ID}"sudo nextcloud.occ config:system:set objectstore arguments secret --value="{Key Secret}"sudo nextcloud.occ config:system:set objectstore arguments hostname --value="s3.cloud.ru"sudo nextcloud.occ config:system:set objectstore arguments port --value="443"sudo nextcloud.occ config:system:set objectstore arguments use_ssl --value=truesudo nextcloud.occ config:system:set objectstore arguments region --value="ru-central-1"
Для проверки корректности настройки выполните команду:
snap changes nextcloud
В выводе команды вы должны увидеть информацию об установке Nextcloud и изменении его конфигурации.
4. Настройте доменное имя
В рамках лабораторной работы вы можете воспользоваться сервисом nip.io для создания доменного имени и SSL-сертификата. Или использовать собственный домен и SSL-сертификат.
Подготовьте доменное имя вида {Публичный IP-адрес виртуальной машины nextcloud-server}.nip.io, например 1.1.1.1.nip.io.
Настройте доверенное доменное имя:
sudo nextcloud.occ config:system:set trusted_domains 1 --value={Публичный IP-адрес виртуальной машины nextcloud-server}.nip.ioВывод командыНастройте SSL-сертификат:
sudo nextcloud.enable-https lets-encryptНажмите y в ответ на вопрос «Have you met these requirements?»
Укажите свою почту.
Укажите домен вида {Публичный IP-адрес виртуальной машины nextcloud-server}.nip.io, например 1.1.1.1.nip.io
Вывод команды
Укажите в браузере адрес {Публичный IP-адрес виртуальной машины nextcloud-server}.nip.io, например 1.1.1.1.nip.io.
Откроется страница авторизации Nextcloud.
5. Загрузите файлы в хранилище через Nextcloud
Для проверки работы системы загрузите файл через браузер:
Откройте в браузере {Публичный IP-адрес виртуальной машины nextcloud-server}.nip.io, например 1.1.1.1.nip.io.
Войдите, используя username и password, который вы задавали :ref:` на шаге 3 <nextcloud__step3>`.
Перейдите в раздел Все файлы и загрузите любой файл.
Убедитесь, что файл появился в Nextcloud.
Для работы с Nextcloud через мобильный телефон:
Скачайте приложение Nextcloud.
Нажмите Войти и укажите в качестве адреса сервера {Публичный IP-адрес виртуальной машины nextcloud-server}.nip.io, например 1.1.1.1.nip.io.
В приложении отобразится загруженный через веб-интерфейс файл.
Загружайте файлы через браузер и мобильный телефон, работайте с ними с любого удобного устройства.
6. Проверьте отображение файлов в Object Storage
Проверьте, что в качестве хранилища для файлов используется Object Storage.
В личном кабинете перейдите на страницу сервиса Object Storage.
Выберите бакет, созданный на шаге 1.
В бакете вы увидите файлы — служебные и загруженные. Реальные имена файлов при этом заменены на служебные.
Что дальше
В этой лабораторной работе вы настроили и запустили собственный сервер для работы и обмена файлами на базе Nextcloud, а также проверили его работу в браузере и на мобильном устройстве. Узнавайте больше о работе с сервисами и получайте практические навыки управления облаком, выполняя лабораторные работы.
- Перед началом работы
- 1. Разверните ресурсы в облаке
- 2. Настройте группы безопасности
- 3. Установите и настройте Nextcloud
- 4. Настройте доменное имя
- 5. Загрузите файлы в хранилище через Nextcloud
- 6. Проверьте отображение файлов в Object Storage
- Что дальше