Читайте также: Краткое руководство по работе с SQLite
Технологией облачных хранилищ уже никого не удивишь. Наверняка вы пользуетесь Яндекс Диском или Google Drive, скидывая туда нужные файлы и делясь ими со знакомыми. Однако мало кто может похвастаться персональным облачным хранилищем. В этой статье расскажем, как создать собственное облачное хранилище на основе NextCloud.
Что такое облачное хранилище?
Облачное хранилище — это способ хранения информации, при котором данные распределены по разным серверам в сети. Обычно такие сервера предоставляются пользователям в виде услуги со стороны провайдера. При этом клиенту неизвестно внутреннее устройство инфраструктуры. Обработка и хранение данных происходит собственно в «облаке» (англ. cloud), которое для пользователя выглядит как единый сервер.
Список популярных облачных хранилищ: Облако Mail.Ru, Google Диск, Dropbox, OneDrive, Яндекс.Диск.
Сервисы облачных хранилищ
Облачные хранилища стали популярными благодаря сервисам, которые они предоставляют. Вот некоторые из них:
- Доступ к данным с любого компьютера и устройства, имеющего выход в Интернет.
- Резервное копирование данных. Бэкап в облаке делается в пару кликов.
- Совместная работа с данными. Можно дать доступ к файлам группе людей, при этом файлы не блокируются и не создается дубликатов — каждый видит изменения каждого.
- Передача медиаконтента. Часто мессенджеры ограничивают размеры передаваемых файлов. При использовании облака достаточно просто скинуть ссылку на определенный файл в хранилище.
- Обмен данными между приложениями. У крупных провайдеров облачное хранилище является центральным узлом для взаимодействия пользователей и приложений.
При этом преимущества облачного сервиса крупного провайдера заключаются в том, что обслуживанием инфраструктуры, резервированием и сохранением данных занимаются сотрудники «облачного» data центра. Пользователь никак не вовлечен в эти внутренние процессы.
Зачем создавать личное облако?
Согласитесь, удобно приобрести подписку на год у провайдера и ни о чем не думать. Но что делать, если вы не доверяете корпорациям, хотите полностью контролировать серверы с вашими данными и не беспокоиться об ограничениях со стороны поставщиков услуг?
В таком случае вы можете поднять собственное облачное хранилище с помощью специальной платформы. Существует множество вариантов решений: NextCloud, Seafile, Pydio, OwnCloud и другие. Выбирать можно любое. Все они различаются по функционалу, у некоторых есть платные версии. Будем использовать бесплатный NextCloud.
Установка и настройка NextCloud
NextCloud — это форк проекта OwnCloud с полностью открытой архитектурой, разработанный Фрэнком Карличеком. Платформа позволяет создать контролируемое и надежное облачное хранилище, а также предоставляет дополнительный функционал (например, список контактов, календарь, потоковое мультимедиа, видеозвонки и многое другое).
Кстати, в официальном канале Timeweb Cloud собрали комьюнити из специалистов, которые говорят про IT-тренды, делятся полезными инструкциями и даже приглашают к себе работать.
Итак, чтобы создать облачное хранилище данных, нам понадобится следующее:
- Дистрибутив Linux c настроенным пользователем sudo. Будем использовать Ubuntu 22.04.
- Доменное имя, указывающее на ваш сервер. Домен нужен, чтобы настроить защищенное TLS/SSL подключение с помощью бесплатного сертификата Let’s Encrypt. Нижеописанные шаги можно проделать и без домена — NextCloud позволяет настроить самоподписанный сертификат. Но тогда браузер будет «ругаться» на подключение.
Устанавливать 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 --permanentsudo firewall-cmd --add-service=https --permanentsudo firewall-cmd --reload
С использованием ufs:
sudo ufw allow 80,443/tcp
Все, на данном этапе уже можно подключаться и пользоваться cloud storage:
Видим, что соединение будет проходить по небезопасному протоколу http. Чтобы обеспечить защиту веб-интерфейса, настроим сертификат SSL от Let’s Encrypt. Если у вас нет своего доменного имени, можно настроить самоподписанный сертификат. В этом случае весь веб-трафик будет шифроваться, однако браузер не будет автоматически доверять ему.
Настройка сертификата 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.
Подписывайтесь на наш канал и ставьте лайки! А еще можете посетить наш официальный сайт.