Истории успеха наших клиентов — лучшие проекты
Вход/ Регистрация

Установка Nextcloud на cервере с помощью Docker

470
7 минут чтения
Средний рейтинг статьи: 5

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

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

VDS и VPS

Гибкие виртуальные серверы с почасовым
биллингом по всему миру: Россия, Азия и Европа.

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

Для работы нам понадобятся:

  • Один облачный сервер с предустановленным дистрибутивом Linux Ubuntu 24.04.
  • Доменное имя. Купить домен можно в разделе «Домены и SSL» панели управления Timeweb Cloud.
  • Установленные Docker и Docker Compose. Инструкция по установке этих инструментов доступна в отдельной статье.

Для сервера выберите конфигурацию с одноядерным процессором, 2 ГБ оперативной памяти и публичным IPv4-адресом, который можно заказать при создании сервера или в разделе «Сеть».

Сервер будет установлен в течение пары минут. IPv4-адрес, логин и пароль для подключения по протоколу SSH будут доступны в разделе «Дашборд».

Установка и запуск Nextcloud

Для работы Nextcloud используются несколько ключевых компонентов. Первый компонент — база данных, в качестве которой выбрана MariaDB — высокопроизводительная и надежная СУБД. Второй компонент — SSL-сертификат. Мы будем использовать SSL от некоммерческого центра сертификации Let's Encrypt, который выпускает бесплатные SSL-сертификаты. Для маршрутизации сетевых запросов добавлен сервис Nginx Proxy Manager. Его задача — перенаправлять и балансировать входящий HTTP- и HTTPS-трафик на соответствующие контейнеры.

Создаем директорию, где будут храниться файлы конфигурации, и переходим в нее:

    

Далее создаем скрытый файл .env, в котором будут храниться переменные с паролями:

    

Содержимое файла будет следующим:

    

Не забудьте заменить значения на свои.

Далее создаем файл с именем docker-compose.yml:

    

Используем следующую конфигурацию:

    

Запускаем контейнеры при помощи команды:

    

При запуске команды docker compose up -d может возникнуть ошибка, связанная с исчерпанием лимитов на pull-операции.

Image17

В этом случае необходимо авторизоваться в своей учетной записи на Docker Hub или зарегистрировать новую на официальном сайте.

Далее переходим в настройки учетной записи (Account settings).

Image10

В меню слева переходим в раздел «Personal access tokens».

Image5

Для создания нового токена нажимаем на кнопку «Generate new token».

Вводим описание для токена (Access token description), выставляем необходимый срок действия токена (Expiration date) и в качестве прав доступа выбираем «Read, Write, Delete».

Image9

Нажимаем на кнопку «Generate».

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

Image8

На сервере выполняем команду:

    

Где dockeruser — имя учетной записи на Docker Hub. При запросе пароля (Password) вводим ранее сгенерированный токен.

Далее запускаем контейнеры еще раз: 

    

Дожидаемся старта всех контейнеров.

Image18

Проверяем статус контейнеров:

    

У всех контейнеров должен быть статус Up.

Image22

Теперь настроим протокол HTTPS и выпустим сертификат. Открываем браузер и переходим по адресу http://IP-адрес-сервера:81 в интерфейс Nginx Proxy Manager.

Image7

Данные для авторизации:

Логин: admin@example.com

Пароль: changeme

При первом входе необходимо поменять данные пользователя администратор (Admin). Для этого измените значения полей «Full name», «Nickname» и «Email» на свои.

Далее сервис предложит изменить пароль для пользователя admin. В поле «Current Password» необходимо ввести значение changeme, в поле «New Password» необходимо ввести новый пароль, а в поле «Confirm Password» ввести его еще раз.

Для сохранения изменений нажмите на кнопку «Save».

Далее переходим в раздел «Hosts» и в выпадающем меню выбираем «Proxy Hosts».

Image16

Для создания нового хоста нажимаем на кнопку «Add Proxy Host».

Заполняем следующие поля:

  • Domain Names — доменное имя, на котором будет доступен веб-интерфейс NextCloud.
  • Scheme — указываем протокол http.
  • Forward Hostname / IP — прописываем nextcloud-app. Это имя сервиса NextCloud, которое используется в файле docker-compose.yml.
  • Forward Port — порт, на котором доступен NextCloud. Указываем 80.

Image19

Перейдите в раздел SSL. В поле «SSL Certificate» выбираем значение «Request a new SSL Certificate». Также включаем следующие параметры:

  • Force SSL
  • HTTP/2 Support
  • HSTS Enabled

Поменяйте электронную почту для Let's Encrypt. Согласитесь с политикой использования Let's Encrypt и нажимаем на кнопку «Save».

Image20

Настроенный хост будет отображаться в списке хостов.

Image3

Переходим по доменному имени. Если все было настроено правильно, откроется веб-интерфейс Nextcloud и будет выпущен SSL-сертификат.

Image14

Сертификат успешно выпущен центром сертификации Let's Encrypt.

При первом входе в Nextcloud необходимо создать новую учетную запись администратора.

Image4

Можно установить рекомендованные приложения или пропустить данный шаг.

Image21

Установка и базовая настройка Nextcloud успешно завершена.

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

Cloud MSK 15

477 ₽/мес

Процессор
1 x 3.3 ГГц
Память
1 ГБ
NVMe
15 ГБ
Канал
1 Гбит/с
Публичный IP
Cloud MSK 30

657 ₽/мес

Процессор
1 x 3.3 ГГц
Память
2 ГБ
NVMe
30 ГБ
Канал
1 Гбит/с
Публичный IP

Заключение

В данной статье мы рассмотрели пример развертывания Nextcloud с помощью Docker и выпустили бесплатный сертификат Let's Encrypt. Этот способ является одним из наиболее надежных, безопасных и легко масштабируемых. Docker позволяет изолировать приложение, упрощает его обновление и перенос между системами. Использование SSL-сертификата — не просто рекомендация, а необходимость для защиты конфиденциальных данных и обеспечения шифрования трафика.

470
7 минут чтения
Средний рейтинг статьи: 5
Хотите внести свой вклад?
Участвуйте в нашей контент-программе за
вознаграждение или запросите нужную вам инструкцию
img-server