Установка и настройка snap-пакета Nextcloud в Ubuntu 16.04

Nextcloud – это форк ownCloud, сервер для общего доступа к файлам и централизованного удалённого хранения документов. Приложение во многом напоминает Dropbox.

В отличие от большинства подобных приложений, Nextcloud является приложением с открытым исходным кодом. Кроме того, Nextcloud можно установить на собственный сервер, что устраняет необходимость размещать конфиденциальные данные на сторонних серверах, тем самым увеличивая безопасность данных.

Этот мануал поможет установить snap-пакет Nextcloud на сервер Ubuntu 16.04.

Требования

  • Сервер Ubuntu 16.04, настроенный по этому мануалу.
  • Доменное имя (опционально). Для защиты трафика мы будем использовать сертификат SSL. Если у вас будет зарегистрированное доменное имя, вы сможете получить бесплатный сертификат от сервиса Let’s Encrypt. Если у вас нет домена, вы можете создать самоподписанный сертификат.

Установка Nextcloud

Мы установим Nextcloud с помощью системы упаковки snappy. Эта система доступна в Ubuntu 16.04 по умолчанию, она позволяет организациям поставлять программное обеспечение вместе со всеми зависимостями и конфигурацией в автономных блоках с автоматическим обновлением. Это означает, что вместо отдельной установки и настройки веб-сервера и базы данных и настройки приложения Nextcloud можно просто установить пакет snap, который автоматически обрабатывает базовые зависимости.

Чтобы загрузить пакет snap для Nextcloud, введите:

sudo snap install nextcloud

Пакет Nextcloud будет загружен и установлен на сервере. Вы можете подтвердить, что процесс установки был успешным, с помощью команды:

snap changes nextcloud
ID   Status  Spawn                 Ready                 Summary
2    Done    2017-10-03T20:03:09Z  2017-10-03T20:03:26Z  Install "nextcloud" snap

Команда сообщает, что установка была завершена успешно.

Сбор дополнительной информации о Nextcloud Snap

Если вам нужна дополнительная информация о snap-пакете Nextcloud, вы можете использовать несколько команд.

Команда snap info может выдать описание, доступные команды управления Nextcloud, а также установленную версию и отслеживаемый канал snap:

snap info nextcloud

Snap-пакеты могут определять интерфейсы, которые они поддерживают, что дает доступ к определенным возможностям или уровням. Например, snap-пакеты, которые должны действовать как сетевые клиенты, должны иметь интерфейс network. Чтобы узнать, какие интерфейсы использует этот snap, введите:

snap interfaces nextcloud
Slot           Plug
:network       nextcloud
:network-bind  nextcloud
-              nextcloud:removable-media

Чтобы узнать все сервисы и приложения, которые предоставляет этот snap, вы можете взглянуть на файл определения snap.yaml:

cat /snap/nextcloud/current/meta/snap.yaml

Здесь вы можете увидеть отдельные компоненты, включенные в snap, что может пригодиться при отладке.

Настройка учетной записи администратора

Существует несколько разных способов настройки snap Nextcloud. В этом мануале вместо веб-интерфейса для создания администратора мы используем командную строку: это позволит отключить окно, в котором страница регистрации администратора будет доступна для всех, кто посещает IP-адрес вашего сервера или доменное имя.

Чтобы настроить Nextcloud с новой учетной записью администратора, используйте команду nextcloud.manual-install. Вы должны ввести имя пользователя и пароль в качестве аргументов:

sudo nextcloud.manual-install 8host password

Если все правильно, Nextcloud выдаст такое сообщение:

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

Первые несколько строк присутствуют в выводе потому, что расширение PCNTL не включено в snap Nextcloud. Их можно просто проигнорировать.

Теперь, когда Nextcloud установлен, нужно настроить доверенные домены, чтобы Nextcloud отвечал на запросы, используя доменное имя или IP-адрес сервера.

Настройка доверенных доменов

При установке из командной строки 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

Теперь в массиве две записи.

Если вам нужно настроить другой способ доступа к экземпляру Nextcloud, вы можете добавить дополнительные домены или адреса, перезапустив команду config:system:set и добавив в нее индекс («1» в первой команде) с измененным значением –-value.

Защита интерфейса Nextcloud через SSL

Если у вас есть доменное имя, связанное с вашим сервером Nextcloud, snap Nextcloud позволит вам получить и настроить доверенный сертификат SSL от Let’s Encrypt. Если у сервера Nextcloud нет домена, Nextcloud может настроить самоподписанный сертификат, который будет шифровать веб-трафик, но не сможет проверить подлинность сервера.

Следуйте соответствующему разделу.

1: SSL-сертификат от Let’s Encrypt

Если у вас есть домен, лучше всего получить бесплатный доверенный сертификат от центра Let’s Encrypt.

Сначала откройте в брандмауэре порты, которые Let’s Encrypt использует для проверки прав на домен. Это сделает страницу входа в Nextcloud общедоступной, но у вас уже есть учетная запись администратора, потому никто не сможет получить доступ к установке.

sudo ufw allow 80,443/tcp

Запросите сертификат 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:
1. 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.
2. You must have the domain name(s) for which you want certificates
pointing at the external IP address of this machine.
3. 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)

Чтобы продолжить, введите у.

Затем нужно предоставить адрес электронной почты.

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, и при условии, что все хорошо, для немедленного внедрения SSL экземпляр Apache будет перезапущен автоматически.

Attempting to obtain certificates... done
Restarting apache... done
Теперь вы можете войти в Nextcloud.

2: Самоподписанный SSL-сертификат

Если ваш сервер Nextcloud не имеет домена, вы все равно можете защитить веб-интерфейс, создав самоподписанный сертификат. Этот сертификат позволит получить доступ к веб-интерфейсу через зашифрованное соединение, но не сможет подтвердить подлинность вашего сервера, поэтому ваш браузер, скорее всего, отобразит предупреждение.

Чтобы создать самоподписанный сертификат и настроить 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.

Вход в веб-интерфейс Nextcloud

Теперь, когда Nextcloud настроен, откройте свое доменное имя или IP-адрес сервера в веб-браузере:

https://example.com

Примечание: Если вы установили самоподписанный сертификат SSL, ваш браузер может показать предупреждение о том, что соединение небезопасно, потому что сертификат сервера не подписан доверенным центром сертификации. Это нормальное поведение для самоподписанных сертификатов, поэтому можно просто принять предупреждение, чтобы перейти на сайт.

Поскольку вы уже настроили учетную запись администратора из командной строки, вы попадете на страницу входа в Nextcloud. Введите учетные данные администратора в форму входа.

Нажмите кнопку Log in, чтобы войти в веб-интерфейс Nextcloud.

При первом входе вы увидите ссылки на различные клиенты Nextcloud, которые могут использоваться для взаимодействия с экземпляром Nextcloud и управления им.

Нажмите на эти ссылки, чтобы загрузить все интересующие вас клиенты, или закройте окно, щелкнув X в верхнем правом углу. Вы попадете в основной интерфейс Nextcloud, где вы можете начать загрузку и управление файлами.

Теперь установка Nextcloud завершена и защищена. Вы можете самостоятельно исследовать интерфейс, чтобы узнать больше о функциях этой системы.

Заключение

Nextcloud может реплицировать функции популярных сторонних облачных сервисов хранения. Nextcloud позволяет совместно использовать хранящийся контент и поддерживает доступ к файлам по ссылкам. Преимущество Nextcloud заключается в том, что информация хранится не на сторонних серверах, а на машине, которую вы контролируете.

Изучите интерфейс и дополнительные функции, установите плагины Nextcloud – их можно найти здесь.

Tags: , ,

1 комментарий

Добавить комментарий