Бесплатная миграция IT-инфраструктуры в облако

Установка NextCloud на Ubuntu 20.04

Анастасия Островская
Анастасия Островская
Технический писатель
24 июня 2022 г.
7991
7 минут чтения
Средний рейтинг статьи: 3

Об этом не все знают, но первоначально Nextcloud был частью проекта OwnCloud. За небольшой промежуток времени NC вырос и в 2016 году отделился. С того момента Nextcloud стал самостоятельным проектом с открытым исходным кодом. Благодаря этому любой заинтересованный пользователь может создать свое личное облачное хранилище, самостоятельно разместить ПО и собрать индивидуальное решение.

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

Установка И Использование Nextcloud В Ubuntu 20.04 (1)

Устанавливаем и настраиваем NextCloud

Данное руководство поможет выполнить установку и последующую настройку облачного хранилища NextCloud максимально быстро. Из трех способов установки, упомянутых ниже, мы выбрали второй.

Способы установки NC:

  1. Через систему управления контейнерами Docker .
  2. Через пакет приложений snap. Он поддерживают любые дистрибутивы Linux. Мы будем использовать дистрибутив Ubuntu 20.04.
  3. Ручная установка на сервер.

Второй метод был выбран по нескольким причинам. Во-первых, он наиболее эффективный, доступный и быстрый. Во-вторых, существенную роль сыграли преимущества Snap-пакетов. Они полностью укомплектованы, содержат в себе все зависимости и автоматически обновляются. Чтобы все заработало, достаточно утилиты (менеджер пакетов snapd). Установить этот пакет можно прямо из Snap Store. Единственный минус этой системы в том, что пакет занимает много места на диске.

Мы будем использовать облачный сервер с Ubuntu.

Пошаговая инструкция установки NextCloud на Ubuntu 20.04

Ниже мы расписали все этапы установки, последовательность которых необходимо соблюдать:

  1.     Инсталлируем NextCloud в Ubuntu.
  2.     Создаем профиль (учетную запись пользователя).
  3.     Настраиваем доверенные домены.
  4.     Защищаем веб-интерфейс одним из методов (зависит от наличия доменного имени).
  5.     Тестируем.

Первый шаг

Для загрузки Nextcloud snap запустите команду с использованием утилиты sudo. Это позволит запускать программы без привилегий пользователя root и получить права администратора. 

sudo snap install nextcloud

Проверяем установку приложения:

snap changes nextcloud

Сообщение подтверждает, что установка NextCloud осуществилась:

ID Status Spawn Ready
Summary
4 Done today at 10:30 UTC today at 10:30 UTC
Install "nextcloud" snap

Такое сообщение должно появиться и у вас.

vds

Второй шаг

После установки NextCloud создаем аккаунт с логином и паролем.

sudo nextcloud.manual-install username password

Следом приходит сообщение, что запись настроена правильно. Теперь все права для работы с базой данных переданы пользователю username.

Nextcloud was successfully installed

Третий шаг

Переходим к настройке доменного имени. Так NC будет воспринимать HTTP-запросы, которые поступают не только сервера localhost. Допустим, сервер доступен по адресу 192.168.0.15, но мы хотим, чтобы он был доступен по адресу «mycloud.com». Для этого мы изменяем запись trusted_domains в файле config.php. По умолчанию адрес домена в NextCloud дополняется файлом с расширением «index.php».

Проверим, какие настройки у нас есть сейчас:

sudo nextcloud.occ config:system:get trusted_domains

Вывод:

localhost

Из сообщения видим, что пока массив trusted_domains содержит только localhost. Попробуем добавить еще запись в массив, увеличив номер индекса на один и изменив значение value. Для этого скопируйте и вставьте в свою командную строку команду:

sudo nextcloud.occ config:system:set trusted_domains 1 --value=mycloud.com

Вывод:

System config value trusted_domains => 1 set to string mycloud.com

Проверяем, сколько значений содержит массив сейчас:

sudo nextcloud.occ config:system:get trusted_domains

Результат (в нашем случае должно быть два домена):

localhost
mycloud.com

Используя данный алгоритм, можно добавлять доверенные домены и IP-адреса. Следующим шагом необходимо защитить веб-интерфейс. Порт 80 предназначен для сайтов с незашифрованным HTTP-трафиком, а 443 используется для сайтов с защищенным соединением. Как защитить свои данные, вы узнаете ниже.

Четвертый шаг

Чтобы между браузером и сервером (между клиентом и сервером) обеспечить безопасное соединение, необходимо произвести настройку SSL. При использовании SSL-сертификатов HTTPS заменяет HTTP в URL-адресе. SSL-сертификат информируют пользователей сайта о том, что соединение защищено, и сайту можно доверять. Подробнее об SSL мы писали в статье «Что такое SSL-сертификат и для чего он нужен».

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

Первый — когда серверу присвоено доменное имя. В этом случае рекомендуем пройти бесплатную сертификацию SSL от Let’s Encrypt. Ниже вы найдете подробную инструкцию как это сделать. Во втором варианте есть возможность произвести настройку сертификата с собственной подписью. Чем они отличаются друг от друга? Интернет-браузеры не доверяют самоподписанному сертификату по умолчанию, и при подключении внешнего посетителя выдает сообщение: «Сертификат безопасности не является доверенным!».

Сертификация от Let’s Encrypt

Срок действия сертификата составляет 90 дней, но по истечении этого промежутка времени он автоматически обновляется. Переходим к настройке.

Открываем порты брэндмауэра:

sudo ufw allow 80,443/tcp

Затем запрашиваем сертификат:

sudo nextcloud.enable-https lets-encrypt

И подтверждаем соответствие своего сервера условиям для запроса сертификата. В конце этого сообщения вопрос. Чтобы продолжить, вводим «Y»:

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)

В следующей строке указываем email, который потребуется для важных уведомлений.

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

После чего, чтобы завершить, необходимо ввести само доменное имя.

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

Если все команды заданы верно, то сервер запросит SSL-сертификат и перезапустит веб-сервер Apache для NextCloud.

Attempting to obtain certificates... done Restarting apache... done

Дальше можно выполнять вход в собственное облачное хранилище.

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

Такой способ шифрует данные, но не подтверждает домен.

Для создания сертификата с собственной подписью запустите команду:

sudo nextcloud.enable-https self-signed

Сообщение об активации сертификата:

Generating key and self-signed certificate... done Restarting apache... done

Чтобы войти в NC, открываем веб-порты брандмауэра:

sudo ufw allow 80,443/tcp

Пятый шаг

Этапы установки и настройки пройдены. Пора попробовать зайти на сервер. Для этого достаточно ввести в поисковую строку браузера доменное имя или IP-адрес. Мы попадем на главную страницу, где требуется ввод логина и пароля. Если веб-интерфейс защищен самоподписанным сертификатом, то первоначально появиться окошко с предупреждением о небезопасном подключении. Проигнорируйте данное сообщение. При наличии заверенного сертификата сразу открывается окно с приветствием. Закрыв это, сразу можно приступать к работе с файлами.

Разверните Nextcloud на своем VDS

Заключение

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

Кстати, в официальном канале Timeweb Cloud собрали комьюнити из специалистов, которые говорят про IT-тренды, делятся полезными инструкциями и даже приглашают к себе работать. 

Хотите внести свой вклад?
Участвуйте в нашей контент-программе за
вознаграждение или запросите нужную вам инструкцию
img-server
24 июня 2022 г.
7991
7 минут чтения
Средний рейтинг статьи: 3
Комментарии 4
denkarter
denkarter
07.05.2024, 08:03

Здравствуйте. Имеется сервер с Ubuntu 22.04. Также имеется сайт на этом сервере с доменом, например, example.com. Сайт и домен настроены в FastPanel. На сервер установил nextcloud, в процессе установки указал в качестве домена поддомен cloud.example.com Установка прошла успешно, но по ссылке cloud.example.com открывается сайт example.com. Какое перенаправление указать на поддомене cloud.example.com, чтобы открывался nextcloud? А то по-умолчанию в FastPanel в настройках поддомена cloud.example.com указана директория сайта example.com.

Команда sudo nextcloud.occ config:system:get trusted_domains выдает результат: localhost cloud.example.com

Команда Timeweb Cloud
Команда Timeweb Cloud
13.05.2024, 04:00

Добрый день! Это скорее вопрос по работе Fastpanel и настроек внутри панели, вы можете попробовать обратиться в их поддержку.

Также можно воспользоваться другим решением для установки Nextcloud:

  1. В Fastpanel создать новый пустой сайт.
  2. Скачать установщик Nextcloud (раздел Community projects → Web installer).
  3. Файл установщика разместить в директории нового сайта и обратиться к этому файлу по пути cloud.example.com/setup-nextcloud.php.
  4. Далее вы сможете закончить установку, следуя инструкциям мастера. Базу данных также можно создать в Fastpanel.
Данила Михасев
Данила Михасев
23.08.2023, 13:10

на втором шаге после команды по установке логина и пароля , выдает ошибку

Command "maintenance:install" is not defined.

 Did you mean one of these?

     app:install

     maintenance:data-fingerprint

     maintenance:mimetype:update-db

     maintenance:mimetype:update-js

     maintenance:mode

     maintenance:repair

     maintenance:repair-share-owner

     maintenance:theme:update

     maintenance:update:htaccess  

Команда Timeweb Cloud
Команда Timeweb Cloud
24.08.2023, 06:37

Добрый день! Попробовали воспроизвести — ошибка возникает при повторном выполнении команды:

nextcloud.manual-install username password

Попробуйте продолжить настройку по инструкции и выполнить:

nextcloud.occ config:system:get trusted_domains

из следующего шага.

Также на всякий случай отметим, что у нас есть готовая сборка Nextcloud с Ubuntu 22.04, можно запустить Nextcloud в один клик вместо ручной установки :)