Введение
Nextcloud - это облачное хранилище, форк (ответвление) облачной платформы ownCloud. Nextcloud позволяет хранить личные данные (документы, картинки, фотографии и т.д.) в специально отведенном месте (как Dropbox). Nextcloud выделяется тем, что это open-source проект, то есть за сохранность и безопасность данных отвечаете именно вы, без привлечения каких-либо третьих сторон, предоставляющих облачные хранилища.
Из этого руководства вы узнаете, как установить и настроить Nextcloud на сервере с Ubuntu 16.04.
Требования
Для того, чтобы выполнить необходимые действия, вам понадобятся:
- установленная ОС Ubuntu 16.04 с пользователем, который может выполнять команды sudo, и фаерволом;
- (необязательно): доменное имя сервера. Для защиты подключений к Nextcloud будет использоваться TLS/SSL. Если у сервера есть доменное имя, то можно использовать бесплатный SSL-сертификат Let’s Encrypt. Если доменного имени нет, то можно установить самоподписанный сертификат Nextcloud (однако он не входит в список доверительных сертификатов, на который ориентируются браузеры).
Шаг 1: установка Nextcloud
Для установки будут использоваться snap-пакеты. Эта технология, по умолчанию доступная в Ubuntu 16.04, позволяет получать ПО сразу с зависимостями и конфигурацией - отдельным юнитом с автоматическим обновлением. Это значит, что вместо загрузки и настройки веб-сервера и СУБД, а затем настройки приложения Nextcloud, вы можете просто установить snap-пакет, в котором уже будут находиться все необходимые элементы.
Для загрузки и установки snap-пакета Nextcloud введите следующую команду:
$ sudo snap install nextcloud
После ввода пакет Nextcloud будет загружен и установлен на вашем сервере. Вы можете проверит, что установочный процесс завершился успешно, выведя на экран изменения, связанные с snap:
$ snap changes nextcloud
Вывод будет выглядеть примерно вот так:
ID Status Spawn Ready Summary 2 Done 2017-12-03T20:03:09Z 2017-12-03T20:03:26Z Install "nextcloud" snap
Статус (status) и сводка (summary) показывают, что установка прошла без каких-либо проблем.
Дополнительная информация о Nextcloud Snap
Если вы хотите получить чуть больше информации о Nextcloud Snap, то вам нужно воспользоваться одной из следующих команд.
Команда snap info отобразит информацию об используемом snap-пакете (например, версию, которая была установлена):
$ snap info nextcloud
Snap поддерживает разные интерфейсы, которые состоят из slot и plug. Эти элементы связываются между собой для того, чтобы дать snap доступ к некоторым возможностям или уровням доступа. К примеру, для использования snap в качестве сетевого клиента он должен иметь сетевой (network) интерфейс.
Используя команду ниже, вы сможете увидеть доступные интерфейсы и программы, которые их используют:
$ snap interfaces nextcloud
Вывод:
Output Slot Plug :network nextcloud :network-bind nextcloud - nextcloud:removable-media
Шаг 2: настройка административного аккаунта
Существует несколько способов настройки Nextcloud snap. В этом руководстве административный пользователь будет создан с использованием командной строки, а не веб-интерфейса, где страница регистрации администратора будет доступна всем, кто зайдет на IP-адрес или домен вашего сервера.
Для настройки нового административного аккаунта, используйте команду nextcloud.manual-install. Ниже нужно будет ввести имя пользователя (username) и пароль (password).
$ sudo nextcloud.manual-install username password
Вывод ниже покажет, что Nextcloud был настроен корректно. Первые несколько строчек можно проигнорировать, так как расширение PCNTL не входит в Nextcloud snap.
The process control (PCNTL) extensions are required in case you want to interrupt long running commands - see http://php.net/manual/en/book.pcntl.php Nextcloud is not installed - only a limited number of commands are available Nextcloud was successfully installed
После установки необходимо добавить доверенные домены, чтобы Nextcloud отвечал на запросы, используя доменное имя сервера или IP-адрес.
Шаг 3: добавление доверенных доменов
При установке из командной строки Nextcloud отвечает на запросы, сделанные только из localhost. Поэтому необходимо изменить настройки для того, чтобы получить доступ к Nextcloud при использовании доменного имени или IP-адреса сервера.
Текущие настройки можно посмотреть, выведя массив доверенных доменов (trusted_domains):
$ sudo nextcloud.occ config:system:get trusted_domains
Вывод будет примерно таким:
The process control (PCNTL) extensions are required in case you want to interrupt long running commands - see http://php.net/manual/en/book.pcntl.php localhost
Сейчас только localhost отображается в качестве первого значения массива. Добавьте новую запись о доменном имени или IP-адресе сервера:
$ sudo nextcloud.occ config:system:set trusted_domains 1 --value=example.com
Вывод будет выглядеть вот так:
The process control (PCNTL) extensions are required in case you want to interrupt long running commands - see http://php.net/manual/en/book.pcntl.php System config value trusted_domains => 1 set to string example.com
Еще раз выведите список доверенных доменов:
$ sudo nextcloud.occ config:system:get trusted_domains
Теперь там отобразятся две записи:
The process control (PCNTL) extensions are required in case you want to interrupt long running commands - see http://php.net/manual/en/book.pcntl.php localhost example.com
Таким образом вы можете добавить все необходимые адреса или домены.
Шаг 4: защита веб-интерфейса Nextcloud при помощи SSL
Перед началом использования Nextcloud необходимо настроить защиту для веб-интерфейса.
Если к вашему серверу привязан какой-либо домен, то при помощи Nexcloud snap вы можете настроить SSL-сертификат от Let’s Encrypt (вариант 1). Если доменного имени нет, то можно установить самоподписанный сертификат Nextcloud (вариант 2).
Вариант 1: настройка SSL-сертификата Let’s Encrypt
Сначала откройте порты, которые Let’s Encrypt использует для подтверждения права владения доменом:
$ sudo ufw allow 80,443/tcp
В этом случае ваша страница авторизации Nextcloud станет публично доступна, однако так как у вас уже есть настроенный аккаунт администратора, взломать вас никто не сможет.
Теперь запросите сертификат Let’s Encrypt:
$ sudo nextcloud.enable-https lets-encrypt
Вы увидите такой вывод:
In order for Let's Encrypt to verify that you actually own the domain(s) for which you're requesting a certificate, there are a number of requirements of which you need to be aware: In order to register with the Let's Encrypt ACME server, you must agree to the currently-in-effect Subscriber Agreement located here: https://letsencrypt.org/repository/ By continuing to use this tool you agree to these terms. Please cancel now if otherwise. You must have the domain name(s) for which you want certificates pointing at the external IP address of this machine. Both ports 80 and 443 on the external IP address of this machine must point to this machine (e.g. port forwarding might need to be setup on your router). Have you met these requirements? (y/n)
Нужно нажать y, чтобы подтвердить, что настройки сервера соответствуют нужным параметрам для запроса SSL-сертификата.
Далее нужно написать электронный адрес, на который будут приходить уведомления и который будет использоваться для восстановления ключа:
Please enter an email address (for urgent notices or key recovery): your_email@domain.com
В конце напишите домен, привязанный к вашему серверу Nextcloud:
Please enter your domain name(s) (space-separated): example.com
После этого будет запрошен сертификат Let’s Encrypt; и если процедура пройдет нормально, то автоматически будет перезапущен Apache:
Attempting to obtain certificates... done Restarting apache... done
После этого вы можете авторизоваться в Nextcloud.
Вариант 2: настройка самоподписанного SSL-сертификата
Если доменное имя не привязано к серверу, то вы можете настроить защиту, создав самоподписанный SSL-сертификат. Он позволит вам получить доступ к веб-интерфейсу через защищенное соединение (при этом браузер может показывать предупреждение, так как сертификат безопасности не является доверенным).
Для того, чтобы создать самоподписанный сертификат и настроить Nextcloud использовать его, введите:
$ sudo nextcloud.enable-https self-signed
На экране отобразится:
Generating key and self-signed certificate... done Restarting apache... done
Значит, Nextcloud создал и стал использовать самоподписанный сертификат.
Теперь, когда интерфейс защищен, откройте порты для доступа к нему:
$ sudo ufw allow 80,443/tcp
Теперь вы можете авторизоваться в Nextcloud.
Шаг 5: авторизация в веб-интерфейс Nextcloud
Теперь, когда Nextcloud настроен, зайдите через браузер на домен или IP-адрес вашего сервера:
https://example.com
Помните, что если вы используете самоподписанный сертификат, браузер покажет предупреждение. Игнорируйте его и переходите дальше.
На странице авторизации введите данные, которые вы вводили при создании пользователя администратора, и нажмите Log in:
Во время первой авторизации вам будут показаны различные приложения для работы с Nextcloud:
Далее вы попадете на главную страницу Nextcloud, где сможете загружать и работать с файлами:
Интерфейс довольно простой и интуитивно понятный, вы без труда в нем разберетесь.
Заключение
Теперь у вас есть установленный и защищенный Nextcloud. Больше информации вы можете найти в документации и на форуме.
Комментарии