Технологией облачных хранилищ уже никого не удивишь. Наверняка вы пользуетесь Яндекс Диском или Google Drive, скидывая туда нужные файлы и делясь ими со знакомыми. Однако мало кто может похвастаться персональным облачным хранилищем. В этой статье расскажем, как создать собственное облачное хранилище на основе NextCloud.
Кстати, в официальном канале Timeweb Cloud собрали комьюнити из специалистов, которые говорят про IT-тренды, делятся полезными инструкциями и даже приглашают к себе работать.
Облачное хранилище — это способ хранения информации, при котором данные распределены по разным серверам в сети. Обычно такие сервера предоставляются пользователям в виде услуги со стороны провайдера. При этом клиенту неизвестно внутреннее устройство инфраструктуры. Обработка и хранение данных происходит собственно в «облаке» (англ. cloud), которое для пользователя выглядит как единый сервер.
Список популярных облачных хранилищ: Облако Mail.Ru, Google Диск, Dropbox, OneDrive, Яндекс.Диск.
cloud
Облачные хранилища стали популярными благодаря сервисам, которые они предоставляют. Вот некоторые из них:
При этом преимущества облачного сервиса крупного провайдера заключаются в том, что обслуживанием инфраструктуры, резервированием и сохранением данных занимаются сотрудники «облачного» data центра. Пользователь никак не вовлечен в эти внутренние процессы.
Согласитесь, удобно приобрести подписку на год у провайдера и ни о чем не думать. Но что делать, если вы не доверяете корпорациям, хотите полностью контролировать серверы с вашими данными и не беспокоиться об ограничениях со стороны поставщиков услуг?
В таком случае вы можете поднять собственное облачное хранилище с помощью специальной платформы. Существует множество вариантов решений: NextCloud, Seafile, Pydio, OwnCloud и другие. Выбирать можно любое. Все они различаются по функционалу, у некоторых есть платные версии. Будем использовать бесплатный NextCloud.
NextCloud — это форк проекта OwnCloud с полностью открытой архитектурой, разработанный Фрэнком Карличеком. Платформа позволяет создать контролируемое и надежное облачное хранилище, а также предоставляет дополнительный функционал (например, список контактов, календарь, потоковое мультимедиа, видеозвонки и многое другое).
Итак, чтобы создать облачное хранилище данных, нам понадобится следующее:
Устанавливать NextCloud будем с помощью системы развертки и управления пакетами Snap (в Ubuntu доступна по умолчанию). Все зависимости и конфигурации, необходимые для NextCloud (веб-сервер, база данных), будут находиться в самодостаточном snap-пакете.
Скачиваем и устанавливаем snap-пакет:
sudo snap install nextcloud
Вывод:
nextcloud 24.0.1snap1 from Nextcloud✓ installed
Далее настроим учетную запись администратора. Чтобы избежать появление окна регистрации в веб-интерфейсе, сделаем это с помощью командной строки:
sudo nextcloud.manual-install <login> <password>
Вывод:
Nextcloud was successfully installed
Здесь <login> — логин администратора, <password> — пароль.
После создания учетки администратора настроим список доверенных доменных имен, по которым можно будет обращаться в облачному хранилищу. По умолчанию разрешен только localhost:
sudo nextcloud.occ config:system:set trusted_domains 1 --value=<доменное имя>
Вывод:
System config value trusted_domains => 1 set to string <доменное имя>
Здесь <доменное имя> — домен, по которому вы хотите обращаться к хранилищу.
Если у вас установлен и настроен фаервол, то не забудьте открыть порты для веб-интерфейса — 80/tcp и 443/tcp. В серверной Ubuntu фаервол по умолчанию отключен, но из соображений безопасности его лучше включить.
Открытие портов с использованием firewalld (подробности работы с firewalld можно узнать в нашей статье):
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-service=https --permanent
sudo firewall-cmd --reload
С использованием ufw:
sudo ufw allow 80,443/tcp
Все, на данном этапе уже можно подключаться и пользоваться cloud storage:
Видим, что соединение будет проходить по небезопасному протоколу http. Чтобы обеспечить защиту веб-интерфейса, настроим сертификат SSL от Let’s Encrypt. Если у вас нет своего доменного имени, можно настроить самоподписанный сертификат. В этом случае весь веб-трафик будет шифроваться, однако браузер не будет автоматически доверять ему.
Получаем сертификат Let’s Encrypt:
sudo nextcloud.enable-https lets-encrypt
На появившийся вопрос отвечаем yes, вводим адрес электронной почты для восстановления и доменное имя сервера:
Please enter your domain name(s) (space-separated): <доменное имя>
Если все прошло корректно, то вы увидите следующий вывод:
Attempting to obtain certificates... done
Restarting apache... done
В случае, если у вас нет доменного имени, NextCloud все равно позволит защитить ваш веб-интерфейс. Для этого нужно настроить SSL сертификат с собственной подписью. Веб-трафик будет шифроваться, однако подлинность сервера подтвердить не удастся. Поэтому, когда будете делиться хранилищем с кем-то, не забудьте предупредить, что при попытке подключения браузер будет выдавать предупреждение.
Сгенерируем сертификат, которым будет пользоваться NextCloud:
sudo nextcloud.enable-https self-signed
Если в выводе будут следующие строки, значит все сконфигурировано корректно:
Generating key and self-signed certificate... done
Restarting apache... done
Теперь можно подключиться к серверу по https:
Вводим настроенные данные администратора и попадаем в интерфейс, где вы можете управлять файлами.
Установка и настройка завершена. Теперь вам остается изучить интерфейс.
Подготовили для вас выгодные тарифы на облачные серверы
Итак, мы рассмотрели, как создать облачное хранилище. У NextCloud имеется обширный функционал, похожий на возможности других популярных облачных хранилищ. Вы можете делиться файлами, делать их общедоступными и многое другое. И все это под полностью вашим контролем. Возможности сервиса можно расширить с помощью плагинов, доступных в магазине приложений NextСloud.