Для тех, кто стремится к полному контролю над своими данными, 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-операции.

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

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

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

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

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

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

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

Данные для авторизации:
Логин: admin@example.com
Пароль: changeme
При первом входе необходимо поменять данные пользователя администратор (Admin). Для этого измените значения полей «Full name», «Nickname» и «Email» на свои.
Далее сервис предложит изменить пароль для пользователя admin. В поле «Current Password» необходимо ввести значение changeme, в поле «New Password» необходимо ввести новый пароль, а в поле «Confirm Password» ввести его еще раз.
Для сохранения изменений нажмите на кнопку «Save».
Далее переходим в раздел «Hosts» и в выпадающем меню выбираем «Proxy Hosts».

Для создания нового хоста нажимаем на кнопку «Add Proxy Host».
Заполняем следующие поля:
- Domain Names — доменное имя, на котором будет доступен веб-интерфейс NextCloud.
- Scheme — указываем протокол
http. - Forward Hostname / IP — прописываем
nextcloud-app. Это имя сервиса NextCloud, которое используется в файлеdocker-compose.yml. - Forward Port — порт, на котором доступен NextCloud. Указываем
80.

Перейдите в раздел SSL. В поле «SSL Certificate» выбираем значение «Request a new SSL Certificate». Также включаем следующие параметры:
- Force SSL
- HTTP/2 Support
- HSTS Enabled
Поменяйте электронную почту для Let's Encrypt. Согласитесь с политикой использования Let's Encrypt и нажимаем на кнопку «Save».

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

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

Сертификат успешно выпущен центром сертификации Let's Encrypt.
При первом входе в Nextcloud необходимо создать новую учетную запись администратора.

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

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