Установка и настройка Nextcloud на Ubuntu 16.04

Обсудить

Введение

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 на Ubuntu 16.04

Во время первой авторизации вам будут показаны различные приложения для работы с Nextcloud:Авторизация в Nextcloud на Ubuntu 16.04

Далее вы попадете на главную страницу Nextcloud, где сможете загружать и работать с файлами:Главная страница Nextcloud

Интерфейс довольно простой и интуитивно понятный, вы без труда в нем разберетесь.

Заключение

Теперь у вас есть установленный и защищенный Nextcloud. Больше информации вы можете найти в документации и на форуме.

VDS

Комментарии

С помощью соцсетей
У меня нет аккаунта Зарегистрироваться
Нажимая кнопку «Зарегистрироваться», я даю согласие на обработку своих персональных данных, указанных в форме регистрации.
С помощью соцсетей
У меня уже есть аккаунт Войти
Нажимая кнопку «Зарегистрироваться», я даю согласие на обработку своих персональных данных, указанных в форме регистрации.
Инструкции по восстановлению пароля высланы на Ваш адрес электронной почты.
Пожалуйста, укажите email, который Вы использовали для входа на сайт.