Установка NextCloud на Ubuntu 20.04 - инструкция по настройке персонального облака на Linux Server

Как установить Nextcloud на Ubuntu 22.04

В этой инструкции расскажем, как установить и настроить облако Nextсloud на своем сервере. Поможем подготовить MariaDB и Apache к установке, научим защищать сервер SSL-сертификатом.

Введение

В статье мы расскажем, что такое Nextcloud, как скачать и установить его на свой сервер с дистрибутивом Ubuntu 22.04. Перед установкой подготовим все необходимые зависимости и конфигурации. А также выпустим бесплатный SSL-сертификат от сервиса Let’s Encrypt.

Что такое Nextcloud

Nextcloud — бесплатная и открытая облачная система для хранения данных и совместной работы. Это альтернатива популярным облачным сервисам вроде Dropbox или Google Drive. Но в отличие от этих сервисов, Nextcloud можно установить на свой сервер. Это означает, что вы будете полностью контролировать свои данные, не передавая их третьим лицам. Пользоваться сервисом можно как через браузер, так и установив клиентское приложение на компьютер (Windows, MacOS, Linux) или телефон (Android, iOS).

Кроме того, Nextcloud поддерживает множество плагинов (приложений) для расширения функционала. Вот несколько примеров:

  1. Calendar. Позволяет управлять своим расписанием, поддерживает синхронизацию с другими календарями через CalDAV.
  2. Files. Синхронизация файлов между устройствами, есть поддержка протокола WebDAV.
  3. Contacts. Управление контактами и адресной книгой с возможностью синхронизации через CardDAV.
  4. Mail. Интеграция электронной почты с облачным хранилищем.
  5. Notes. Заметки и списки с возможностью синхронизации на разных устройствах.
  6. Talk. Чат, аудио и видео звонки между пользователями Nextcloud.
  7. Tasks. Планировщик задач, интегрированный с календарем и поддерживающий синхронизацию с другими устройствами.
  8. Document Viewer. Онлайн-редактор документов, позволяющий создавать и редактировать текстовые файлы, таблицы и презентации.
  9. External storage support. Интеграция и перенос данных из других облачных хранилищ, таких как Google Drive или Dropbox.
  10. Two-Factor Authentication (2FA). Усиление безопасности аккаунта за счет подключения двухфакторной аутентификации.
  11. News. RSS-ридер для чтения новостей и блогов.
  12. Group folders. Создание общих папок и управление доступом к ним для разных групп пользователей.

Social. Интеграция социальных сетей и обмен подписками на федеративные платформы, такие как Mastodon.

Создание сервера в облачной платформе Selectel

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

создание сервера nextcloud

Укажем имя сервера и выберем источник — образ Ubuntu 22.04 TLS. Затем необходимо выбрать количество виртуальных процессоров, объем оперативной памяти и сетевого диска. Обязательно подключите к машине внешний статичный IP-адрес, чтобы сервер был доступен из интернета. Также загрузите свой SSH-ключ, чтобы удаленно подключаться к машине.

выбор конфигурации

После создания сервера нужно подождать несколько минут, пока виртуальная машина запустится и загрузится. После этого в разделе Серверы скопируйте IP-адрес машины и подключитесь к ней по SSH.

ip-адрес

Подготовка к установке

Для начала установим необходимые пакеты: веб-сервер Apache, базу данных MariaDB и различные модули для PHP:

sudo apt update
sudo apt install apache2 mariadb-server libapache2-mod-php php-gd
php-mysql php-curl php-mbstring php-intl php-gmp php-bcmath 
php-xml php-imagick php-zip unzip

Сейчас мы установили пакеты для базовой инсталляции Nextcloud. Если вы будете устанавливать дополнительные приложения (аддоны), то для них могут потребоваться дополнительные пакеты. Перед установкой приложений читайте их требования и устанавливайте пакеты при необходимости.

Nextcloud хранит большинство своих настроек в базе данных. Поэтому создадим БД и пользователя, а Nextcloud после первого запуска уже сам создаст нужные ему таблицы, индексы и представления. Чтобы подключиться к нашему локальному серверу, воспользуемся простой консольной утилитой mysql.


    sudo mysql

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


    CREATE USER 'nextcloud_user'@'localhost' IDENTIFIED BY 'password';
CREATE DATABASE IF NOT EXISTS nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud_user'@'localhost';
FLUSH PRIVILEGES;

MariaDB настроена, выходим из командной строки SQL:


    quit;

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

Теперь мы готовы к установке Nextcloud. Скачиваем самую последнюю версию и распаковываем ее:


    wget https://download.nextcloud.com/server/releases/latest.zip
unzip latest.zip

Затем переместим распакованное приложение директорию /var/www:


    sudo cp -r nextcloud /var/www

И сменим владельца каталога, чтобы Apache мог корректно обрабатывать все вложенные файлы:


    sudo chown -R www-data:www-data /var/www/nextcloud

Настройка веб-сервера Apache

Теперь необходимо настроить Apache. Для начала создадим файл /etc/apache2/sites-available/nextcloud.conf с настройками виртуального хоста.

В качестве доменного имени мы будем использовать cloud.my-domain.com, а вам необходимо указать свой домен:


    <VirtualHost *:80>
  DocumentRoot /var/www/nextcloud/
  ServerName  cloud.my-domain.com

  <Directory /var/www/nextcloud/>
    Require all granted
    AllowOverride All
    Options FollowSymLinks MultiViews

    <IfModule mod_dav.c>
      Dav off
    </IfModule>
  </Directory>
</VirtualHost>

Чтобы Apache начал использовать этот файл конфигурации, выполните в shell-консоли команду:


    a2ensite nextcloud.conf

Далее активируем несколько модулей Apache, которые необходимы Nextcloud для корректной работы:


    a2enmod rewrite
a2enmod headers
a2enmod env
a2enmod dir
a2enmod mime

Перезапустим Apache, чтобы применить все выполненные настройки: 


    service apache2 restart

Получение TLS-сертификата

Nextcloud уже готов к работе, но сейчас сейчас он работает по протоколу HTTP и не шифрует трафик. Чтобы повысить защиту сервера, выпустим и установим бесплатный TLS-сертификат от сервиса Let’s Encrypt. Для начала установим утилиту certbot, которая автоматически выпускает и обновляет TLS-сертификаты.


    sudo apt-get install -y certbot

Запросим сертификат с помощью команды (не забудьте в параметре указать свое доменное имя):


    sudo certbot --nginx -d chat.my-domain.com

Далее Certbot попросит ввести адрес электронной почты и согласиться с условиями использования. На этот адрес будут приходить письма с информацией об окончании срока сертификата. Сертификаты Let’s Encrypt действуют 90 дней. Чтобы обновить сертификат автоматически, добавьте cron-задание или systemd-таймер, который будет запускать следующую команду:


    sudo certbot renew --quiet

Теперь необходимо включить соответствующие модули в Apache, чтобы он начал использовать SSL-сертификаты:


    a2enmod ssl
a2ensite default-ssl

И еще раз перезапустим Apache, чтобы он применил новые настройки:


    service apache2 reload

Инициализация облака Nextcloud и начальный интерфейс

Откроем в браузере страницу https://cloud.my-domain.com и увидим окно первоначальной настройки Nextcloud. Создадим учетную запись администратора, а также укажите название БД, пользователя и пароль, которые мы заводили на этапе настройки MariaDB. При необходимости также можете поменять каталог, где будут размещаться пользовательские данные.

окно входа nextcloud

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

интерфейс nextcloud

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

Заключение

Мы установили и настроили облако Nextcloud на собственном сервере. Установили все необходимые зависимости, подготовили MariaDB и Apache к установке, защитили сервер бесплатным SSL-сертификат от Let’s Encrypt для шифрования трафика.