Введение

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

В этом обучающем модуле мы научимся устанавливать и настраивать экземпляр Nextcloud на сервере Ubuntu 20.04.

Предварительные требования

nextcloud illustration for: Предварительные требования

Чтобы выполнить перечисленные в настоящем руководстве шаги, вам потребуется следующее:

  • Пользователь sudo без привилегий root и настроенный брандмауэр на сервере. Вы можете создать пользователя с привилегиями sudo и настроить базовый брандмауэр в соответствии с указаниями руководства «Начальная настройка сервера Ubuntu 18.04».
  • (Необязательно) Доменное имя, указывающее на ваш сервер. Для защиты подключений к Nextcloud мы будем использовать TLS/SSL. Если у вашего сервера есть доменное имя, Nextcloud может настроить бесплатный защищенный сертификат SSL от Let's Encrypt и обеспечить управление этим сертификатом. Также Nextcloud позволяет настроить сертификат SSL с собственной подписью, который сможет шифровать соединения, но которому браузеры не будут доверять по умолчанию. Если вы используете the cloud provider, вы можете ознакомиться с нашей документацией по DNS, чтобы узнать о добавлении доменов в вашу учетную запись и управлении записями DNS, если вы намереваетесь использовать Let's Encrypt.

Выполнив вышеперечисленные шаги, изучите возможности настройки Nextcloud на своем сервере.

Шаг 1 – Установка Nextcloud

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

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

				
					
sudo snap install nextcloud

				
			

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

				
					
snap changes nextcloud

				
			
				
					
[secondary_label Output]

ID Status Spawn Ready Summary

4 <^>Done<^> today at 16:12 UTC today at 16:12 UTC <^>Install "nextcloud" snap<^>

				
			

Информация о состоянии и сводная информация показывают, что установка была выполнена без проблем.

Получение дополнительной информации о Nextcloud Snap

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

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

				
					
snap info nextcloud

				
			

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

				
					
snap connections nextcloud

				
			
				
					
[secondary_label Output]

Interface Plug Slot Notes

network nextcloud:network :network -

network-bind nextcloud:network-bind :network-bind -

removable-media nextcloud:removable-media - -

				
			

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

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

				
			

Это позволит вам увидеть отдельные компоненты, входящие в пакет snap, если вам потребуется помощь с отладкой.

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

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

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

				
					
sudo nextcloud.manual-install <^>sammy<^> <^>password<^>

				
			

Следующее сообщение указывает, что настройка Nextcloud выполнена правильно:

				
					
[secondary_label Output]

Nextcloud was successfully installed

				
			

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

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

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

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

				
					
sudo nextcloud.occ config:system:get trusted_domains

				
			
				
					
[secondary_label Output]

localhost

				
			

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

				
					
sudo nextcloud.occ config:system:set trusted_domains 1 --value=<^>example.com<^>

				
			
				
					
[secondary_label Output]

System config value trusted_domains => 1 set to string <^>example.com<^>

				
			

Если мы снова запросим значение trusted domains, мы увидим уже две записи:

				
					
sudo nextcloud.occ config:system:get trusted_domains

				
			
				
					
[secondary_label Output]

localhost

<^>example.com<^>

				
			

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

Шаг 4 – Защита веб-интерфейса Nextcloud с помощью SSL

Прежде чем мы начнем использовать Nextcloud, нам нужно обеспечить защиту веб-интерфейса.

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

Учитывая это, перейдите к разделу, который соответствует вашей ситуации.

Вариант 1: настройка SSL с помощью Let's Encrypt

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

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

				
					
sudo ufw allow 80,443/tcp

				
			

Затем запросите сертификат Let's Encrypt с помощью следующей команды:

				
					
sudo nextcloud.enable-https lets-encrypt

				
			

Вначале вам нужно будет подтвердить, что ваш сервер соответствует условиям запроса сертификата в службе Let's Encrypt:

				
					
[secondary_label Output]

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)

				
			

Введите y, чтобы продолжить.

Далее вам нужно будет указать адрес электронной почты, который будет использоваться для восстановления:

				
					
[secondary_label Output]

Please enter an email address (for urgent notices or key recovery):

				
			

Введите свой адрес электронной почты и нажмите Enter, чтобы продолжить.

На заключительном этапе вам нужно будет ввести доменное имя, привязанное к вашему серверу Nextcloud:

				
					
[secondary_label Output]

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

				
			

Сервер запросит сертификат Let's Encrypt, и если все пройдет нормально, система перезапустит внутренний экземпляр Apache для немедленной активации SSL:

				
					
[secondary_label Output]

Attempting to obtain certificates... done

Restarting apache... done

				
			

Теперь вы можете перейти к следующему шагу и выполнить первый вход в Nextcloud.

Вариант 2: Настройка SSL с сертификатом с собственной подписью

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

Чтобы сгенерировать сертификат с собственной подписью и настроить Nextcloud для его использования, введите:

				
					
sudo nextcloud.enable-https self-signed

				
			
				
					
[secondary_label Output]

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 позволяет воспроизводить возможности популярных облачных сервисов хранения файлов. Контентом можно делиться с другими пользователями или делать его общедоступным через публичные URL. Преимущество Nextcloud заключается в том, что информация хранится в надежном месте, которое вы контролируете.

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