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

    Команда Simple-Server
    03.06.2026
    7 мин

    Материал подготовлен командой Simple-Server для администраторов VPS и выделенных серверов. Команды и пути проверяйте на тестовой машине перед production.

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

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

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

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

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

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

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

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

    mkdir nextcloud && cd nextcloud

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

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

    NEXTCLOUD_ROOT_PASSWORD=secure_root_password_123 NEXTCLOUD_DB_PASSWORD=secure_nextcloud_db_password_456 NPM_ROOT_PASSWORD=secure_npm_root_password_789 NPM_DB_PASSWORD=secure_npm_db_password_012

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

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

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

    volumes: nextcloud-data: nextcloud-db: npm-data: npm-ssl: npm-db: networks: frontend: backend: services: nextcloud-app: image: nextcloud:31.0.8 restart: always volumes: - nextcloud-data:/var/www/html environment: - MYSQL_PASSWORD=${NEXTCLOUD_DB_PASSWORD} - MYSQL_DATABASE=nextcloud - MYSQL_USER=nextcloud - MYSQL_HOST=nextcloud-db - MYSQL_PORT=3306 networks: - frontend - backend nextcloud-db: image: mariadb:12.0.2 restart: always command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW volumes: - nextcloud-db:/var/lib/mysql environment: - MYSQL_ROOT_PASSWORD=${NEXTCLOUD_ROOT_PASSWORD} - MYSQL_PASSWORD=${NEXTCLOUD_DB_PASSWORD} - MYSQL_DATABASE=nextcloud - MYSQL_USER=nextcloud networks: - backend npm-app: image: jc21/nginx-proxy-manager:2.12.6 restart: always ports: - "80:80" - "81:81" - "443:443" environment: - DB_MYSQL_HOST=npm-db - DB_MYSQL_PORT=3306 - DB_MYSQL_USER=npm - DB_MYSQL_PASSWORD=${NPM_DB_PASSWORD} - DB_MYSQL_NAME=npm volumes: - npm-data:/data - npm-ssl:/etc/letsencrypt networks: - frontend - backend npm-db: image: jc21/mariadb-aria:10.11.5 restart: always environment: - MYSQL_ROOT_PASSWORD=${NPM_ROOT_PASSWORD} - MYSQL_DATABASE=npm - MYSQL_USER=npm - MYSQL_PASSWORD=${NPM_DB_PASSWORD} volumes: - npm-db:/var/lib/mysql networks: - backend

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

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

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

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

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

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

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

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

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

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

    docker login -u dockeruser

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

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

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

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

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

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

    Логин : admin@example.com

    При первом входе необходимо поменять данные пользователя администратор (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 успешно завершена.


    Нужен сервер для практики? Закажите VPS на Simple-Server — root-доступ, NVMe, DDoS-защита и поддержка 24/7.

    VPS для проекта

    VPS с root-доступом, NVMe и поддержкой 24/7 на Simple-Server.

    StarterVDS

    490

    в месяц

    1 ядро

    1 ГБ RAM

    20 ГБ NVMe

    • 1 IPv4
    • KVM
    • Root-доступ
    • Безлимитный трафик
    Заказать VPS
    Рекомендуем

    PerformanceVDS

    1190

    в месяц

    2 ядра

    4 ГБ RAM

    60 ГБ NVMe

    • 1 IPv4
    • KVM
    • Root-доступ
    • Базовая DDoS-защита
    Заказать VPS

    Нужна другая конфигурация? Посмотрите все доступные тарифы

    Все тарифы VPS

    Похожие статьи, которые могут быть вам интересны