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

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

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

Этот мануал поможет установить Nextcloud на сервер Ubuntu 20.04.

Требования

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

1: Установка Nextcloud

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

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

sudo snap install nextcloud

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

snap changes nextcloud
ID   Status  Spawn               Ready               Summary
4    Done    today at 16:12 UTC  today at 16:12 UTC  Install "nextcloud" snap

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

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

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

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

snap info nextcloud

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

snap connections nextcloud
Interface        Plug                       Slot           Notes
network          nextcloud:network          :network       -
network-bind     nextcloud:network-bind     :network-bind  -
removable-media  nextcloud:removable-media  -              -

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

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

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

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

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

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

sudo nextcloud.manual-install 8host password

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

Nextcloud was successfully installed

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

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

При установке из командной строки Nextcloud ограничивает обработку запросов по именам хостов. По умолчанию сервис реагирует только на запросы, сделанные на имя хоста localhost. Мы будем обращаться к Nextcloud через домен или IP-адрес сервера, поэтому нам нужно изменить этот параметр, чтобы Nextcloud мог принять такие запросы.

Чтобы уточнить текущие настройки, запросите массив trusted_domains:

sudo nextcloud.occ config:system:get trusted_domains
localhost

В настоящее время единственным значением в массиве является localhost. Добавьте в массив новую запись для имени или IP-адреса вашего сервера:

sudo nextcloud.occ config:system:set trusted_domains 1 --value=example.com
System config value trusted_domains => 1 set to string example.com

Снова запросите доверенные домены:

sudo nextcloud.occ config:system:get trusted_domains
localhost
example.com

Как видите, теперь в массиве две записи.

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

4: Защита интерфейса 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):

Нажмите Enter, а затем по запросу введите домен сервера Nextcloud:

Please enter your domain name(s) (space-separated): example.com

После этого запрос на сертификат будет отправлен в Let’s Encrypt. При условии, что процесс прошел хорошо, веб-сервер Apache перезапустится, чтобы немедленно внедрить SSL-сертификат.

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.

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

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

https://example.com

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

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

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

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

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

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

Заключение

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

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

Tags: , , , ,