- Облачное хранилище своими руками
- Шаг первый: сервер
- Подготовка к установке Nextcloud
- Установка Nextcloud
- NextCloud: Создаем свое облачное хранилище
- Установка NextCloud с помощью snap-пакета
- Настройка учетной записи NextCloud
- Шифрование домена NextCloud с помощью сертификата SSL от Let’s Encrypt
- Дополнительные настройки NextCloud
Облачное хранилище своими руками
А давайте быстро и относительно легко создадим облачное хранилище, аналогичное Google Диску или Яндекс Диску, но без зависимости от этих компаний. Да к тому же ещё и задёшево.
Зачем это нужно? Например, чтобы более плотно контролировать свои данные и не зависеть от мегакорпораций, иметь возможность добиться нужного уровня приватности, удобно настраивать права доступа и вообще просто потому, что можно получить хорошее облачное хранилище своими руками.
Благодаря большому количеству бесплатных инструментов и решений на базе открытого исходного кода можно собрать отличное хранилище для личного медиаархива, фонотеки, бэкапов и любых других целей. Постараюсь каждый шаг описать понятно и просто, чтобы вы могли повторить этот процесс.
Шаг первый: сервер
Для начала надо выбрать сервер, на котором и будет крутиться наше хранилище. Можно использовать своё железо или заморочиться на NAS, но проще арендовать сервер в облаке. Обратитесь к любому провайдеру и скажите, что вам требуется что-то вроде сервера для хранения данных. Например, можно узнать расценки на такие услуги у Cloud4Y, но тут выбор за вами. Смотрите, где вам будет удобнее, дешёвый VDS/VPS можно найти как в России, так и за её пределами. Размер дискового пространства тоже определяете вы. Условно говоря, можно взять сервер на 100 гигабайт памяти и 1 гигабайтом RAM — и для базовых задач этого будет достаточно.
Поставщик облачных услуг может задать вопрос «какую ОС ставить на сервер». Выбирайте дистрибутив Linux. Облачное хранилище будет отлично работать на Ubuntu и Debian, можно использовать и CentOS.
Если глубоко не копать, то между первым и вторым вариантом разница не очень большая. Дистрибутив Ubuntu заточен под постоянные обновления, тогда как приоритет Debian — stable, то есть проверенные обновления, обкатанные большим количеством пользователей. CentOS — стабильная бесплатная ОС, хорошо подходит для управления сервером, за что любима программистами и сетевыми администраторами. Но под неё меньше документации и она требует больше умений и знаний.
Вне зависимости от выбранной ОС, провайдер пришлёт вам доступы к виртуальной машине. В письме или хостинг-панели вы увидите реквизиты вашего нового сервера: его имя, IP-адрес, логин и пароль root-пользователя. Если необходимо, можете изучить инструкцию о том, как запустить виртуальную машину в облаке Cloud4Y.
Подключаться к серверу можно разными способами. Линуксоиды могут использовать команду ‘ssh’, а если вы всё же выбрали Windows в качестве операционной системы для сервера, то в этом случае можно использовать PuTTy. Описываю вариант с Linux Ubuntu. Без GUI, то есть графической системы. Он быстрее.
Подключаемся через консоль к серверу по IP-адресу:
sudo ssh root@xx.xx.xx.xx (root — имя пользователя, а xx.xx.xx.xx это IP)
Не помешает и обновить систему:
sudo apt install fcgiwrap apache2-utils unzip
Установите Git в вашей системе:
curl — утилита для скачивания файлов и выполнения HTTP-запросов, которая будет полезна при работе с сервером, git — клиент Git, который позволит скачивать нужные файлы с GitHub, mc — это двухпанельный файловый менеджер, похожий на классический Far Manager, с помощью которого удобно работать с файловой системой. Этот пакет ставить необязательно.
После этого создайте пользователя с нужным именем и установите пароль для ограничения доступа к репозиторию git с использованием базовой HTTP-аутентификации:
htpasswd -c /var/www/html/yournick-repo/htpasswd yourname
На этом можно сказать, что мы закончили с сервером. Можно заняться настройками безопасности, подключить HTTPS, но это не обязательное требование. Поэтому давайте перейдём к следующему этапу.
Подготовка к установке Nextcloud
Nextcloud — бесплатная программа, с помощью которой можно организовать собственное облачное хранилище с возможностью контролировать место и условия хранения ваших файлов. Веб-версия даёт больше возможностей, в приложении функций меньше. Мы уже рассказывали, что такое Nextcloud, поэтому перейдём к вопросу его установки.
Поскольку управление Nextcloud осуществляется через веб-интерфейс, нам понадобится веб-сервер, который отвечает за отдачу страниц и обработку реакций пользователя. Поэтому первым делом установим необходимые пакеты: веб-сервер Apache, базу данных MariaDB и различные модули для PHP.
sudo apt install apache2 mariadb-server libapache2-mod-php php-gd
php-mysql php-curl php-mbstring php-intl php-gmp php-bcmath
php-xml php-imagick php-zip unzip
Серверная часть к веб-интерфейсу Nextcloud написана на PHP. Выполняем команду:
sudo apt install php libapache2-mod-php php-imagick php-common php-mysql php-gd php-json php
Перезагрузите сервер после установки:
sudo systemctl reload apache2
Nextcloud хранит почти все настройки в базе данных. Теперь вам нужно создать пользователя базы данных и саму базу данных с помощью интерфейса командной строки MySQL Nextcloud при первом запуске сам создаст нужные таблицы, индексы и представления.
Чтобы запустить режим командной строки MySQL, используйте следующую команду:
Появится приглашение MariaDB [root]> . Введите следующие строки, заменив username и password вашими значениями, нажмите Enter:
CREATE USER ‘username’@’localhost’ IDENTIFIED BY ‘password’;
CREATE DATABASE IF NOT EXISTS nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
GRANT ALL PRIVILEGES on nextcloud.* to ‘username’@’localhost’;
FLUSH privileges;
MariaDB настроена. Можно выйти из командной строки SQL:
Установка Nextcloud
Развернуть Nextcloud можно из шаблона Cloud4Y или с помощью руководства вендора. Официальное руководство предлагает для простоты использовать snap-пакет, а всего есть три основных способа установки:
- Через систему управления контейнерами с использованием Docker.
- Через пакет приложений snap. Он поддерживает все дистрибутивы Linux. Предлагаю использовать Ubuntu 20.04.
- Ручная установка на сервер.
Дистрибутив сохранится в текущей директориb. Можно задать другую или хочется переименовать файл. Для этого используйте флаг «-O путь_к_файлу».
Теперь можно извлечь содержимое архива, создать необходимые для работы каталоги и задать для них права доступа, заменив владельца каталогов Nextcloud на своего пользователя HTTP:
sudo mkdir -p /var/www/html/Nextcloud/data
sudo unzip Nextcloud*.zip -d /var/www/html/
sudo chown -R www-data:www-data /var/www/html/Nextcloud/
Давайте обновим все пакеты.
sudo apt update && apt full-upgrade
Вот и всё, основная часть работы сделана. Теперь наберите в строке барузера: http://your_ip/Nextcloud/index.php , где your_ip — IP-адрес нашего виртуального сервера. Должна открыться стартовая страница, где вы сможете создать пароль администратора, указать название БД, пользователя и пароль, которые мы заводили на этапе настройки MariaDB, после чего попасть на главный экран вашего хранилища. Там для примера уже загружено несколько демо-файлов и запущены базовые приложения, вроде заметок, синхронизации, просмотровщика фотографий.
Настройка закончена. Теперь у вас есть своё облачное хранилище, доступом к которому управляете только вы.
Nextcloud заменяет и повторяет функциональность популярных облачных сервисов хранения файлов. Контентом можно делиться с другими пользователями или делать его общедоступным через публичные URL. Преимущество Nextcloud заключается в том, что информация хранится в надежном месте, которое вы контролируете. Узнать больше об облачных сервисах вы можете из нашего блога.
NextCloud: Создаем свое облачное хранилище
NextCloud – веб-платформа, позволяющая создать свое собственное облачное хранилище.
Набор функций NextCloud часто сравнивают с функциональностью таких облачных файловых хостингов как Dropbox, OneDrive и т.д. Но на самом деле, NextCloud предлагает гораздо большую функциональность. В своем хранилище NextCloud вы можете создать не только файловый хостинг, но и закрытое сообщество в котором можно совершать аудио/видео звонки (NextCloud Talk), переписываться, создавать рабочие задачи и совместно работать (по типу Trello).
Расширение функциональности легко достигается с помощью добавления приложений из магазина приложений apps.nextcloud.com.
Для управления облачным хранилищем доступны настольные (для Windows, macOS и Linux) и мобильные приложения (для Android и iOS):
Установка NextCloud с помощью snap-пакета
NextCloud доступен в магазине snap-пакетов snapcraft, поэтому процесс установки будет максимально простым.
В качестве серверной системы мы использовали Ubuntu 20.04.
Обновим систему и включим поддержку snap-пакетов:
sudo apt update && sudo apt dist-upgrade -y sudo apt install snapd
Установка пакета snap NextCloud:
sudo snap install nextcloud
Проверяем установку пакета:
Посмотреть сетевые интерфейсы пакета:
snap interfaces nextcloud
Output Slot Plug :network nextcloud :network-bind nextcloud - nextcloud:removable-media
Посмотреть список служб пакета:
cat /snap/nextcloud/current/meta/snap.yaml
Настройка учетной записи NextCloud
Создание учетной записи Администратора:
sudo nextcloud.manual-install имя пароль
Вместо «имя» вводим имя администратора учетной записи и вместо слова «пароль» вводим непосредственно придуманный пароль для учетной записи.
По умолчанию NextCloud работает только с внутренним доменом localhost, проверить можно командой:
sudo nextcloud.occ config:system:get trusted_domains
Поэтому мы зададим доменное имя или IP-адрес сервера:
sudo nextcloud.occ config:system:set trusted_domains 1 --value=example.com
Вместо example.com указываем свой домен или IP-адрес. Для добавления еще одного домена нужно изменить индекс на 1. Пример:
sudo nextcloud.occ config:system:set trusted_domains 2 --value=sample.com
Проверяем доверенные домены:
sudo nextcloud.occ config:system:get trusted_domains
В настройках DNS (А-запись) учетной записи регистратора доменного имени не забудьте добавить IP-адрес сервера.
Шифрование домена NextCloud с помощью сертификата SSL от Let’s Encrypt
Для нашего домена добавим бесплатный SSL сертификат от Let’s Encrypt.
Если вы пользуетесь ufw в качестве настройки системного фаервола, то сначала откройте порты 80 и 443:
sudo ufw allow 80,443/tcp sudo ufw reload
sudo nextcloud.enable-https lets-encrypt
В ходе установки сертификата нужно будет указать свою электронную почту и указать доменное имя.
После установки сертификата откройте доменное имя или IP-адрес в браузере.
Интерфейс NextCloud по умолчанию.
Дополнительные настройки NextCloud
Если вам потребуется доступ к консоли mysql, то сначала нужно узнать название базы. Сделать это можно следующей командой:
Скорее всего название базы будет nextcloud, значит подключиться к консоле нашей базы можно будет следующей командой:
nextcloud.mysql-client nextcloud
Список команд и приложений доступен по ссылке: nextcloud-snap.
В NextCloud доступно огромное количество приложений для расширения функциональности.
Отдельно хочу выделить следующие приложения (кстати, устанавливаются они легко через веб-интерфейс):
- Auto Groups – автоматическое добавление пользователей в группы.
- Checksum – вычисление хеш-сумм файлов (md5, sha1, sha256, sha384, sha512 и crc32).
- Music – удобный аудио плеер.
- Group folders – расшаривание папок для групп со стороны администратора.
- News – приложение для чтения новостей с помощью формата RSS/Atom.
- ONLYOFFICE – офисное приложение для создания и редактирования документов. Созданные документы автоматически сохраняются в облаке.
- Registration – добавление опции регистрации на главной странице.
- Social login – регистрация с помощью соц.сетей.
- Social – чат.
- Talk – видео и аудио звонки, создание комнат для обсуждения. Для мобильных устройств доступно отдельное приложение.
NextCloud – это однозначно интересное решение, которое подойдет не только для создания личного облачного хранилища, но и в качестве создания облачного хранилища для сообществ, ведения обсуждений и совершения звонков внутри сообщества.