Установка NextCloud на Docker: основные определения и пошаговая инструкция

В современных реалиях потеря файлов – настоящая катастрофа. Поэтому так популярны облачные хранилища, куда можно загрузить документы, фотографии и другие материалы, предоставив доступ к ним другим пользователям.

Однако многие люди постепенно теряют доверие к файловым хостингам. Можно ли найти им достойную альтернативу? 

NextCloud в отличие от Dropbox, Google Drive или Яндекс Диска и их аналогом является персональным хранилищем, предлагая широкий спектр возможностей для безопасной и эффективной работы с файлами. В этой статье мы расскажем о преимуществах этой платформы и как поднимать облако NextCloud в докер.

Что такое NextCloud 

NextCloud — это платформа на персональном облачном сервере, предназначенная для хранения файлов и обмена ими. Она открывает доступ к документам, фотографиям, видео и другому контенту с любого устройства. Это довольно молодой проект, запущенный в 2016 году, но он быстро стал одним из лучших ИТ-решений для юридических и физических лиц благодаря широкому спектру функций и возможностей.

Основной особенностью NextCloud считается система хранения данных. Она позволяет хранить все свои файлы в одном центральном месте с полным контролем над тем, кто может получить к ним доступ. Пользователи обмениваются файлами друг с другом с помощью защищенных ссылок, а также могут устанавливать ограничения на размер файлов. Кроме того, этот IT-продукт предлагает ряд инструментов для совместной работы, таких как календари, адресные книги и чаты, что упрощает взаимодействие команды в разных часовых поясах или при удаленной работе.

Разработчики NextCloud предприняли строгие меры безопасности. Например, технология шифрования обеспечивает постоянную конфиденциальность информации, благодаря её доступ к данным могут получить только аутентифицированные лица. А антивирусная защита эффективно выявляет вредоносные устройства до передачи файлов между ними, что является неоценимой услугой в борьбе с киберпреступниками.

Платформа предлагает комплекс инструментов, помогающих пользователям эффективно работать.

  • Текстовые редакторы, позволяющие нескольким авторам одновременно редактировать материал в автономном режиме.
  • Сервисы аудио и видеоконференций с возможностью общаться в режиме реального времени. 
  • Менеджер фотографий с функцией редактирования.
  • Календарь для планирования встреч, событий и дел.
  • Таск-трекер для работы с индивидуальными и групповыми проектами.

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

Что такое Docker 

Docker – это платформа для упаковки, доставки и запуска приложений с использованием контейнеризации. Она упрощает работу с приложениями, обеспечивая их более гибкую и масштабируемую инфраструктуру. Развертывание NextCloud в контейнере Docker позволяет пользователям быстро и легко создавать экземпляры и обновлять их, а также эффективно использовать ресурсы сервера.

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

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

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

Установка NextCloud в Docker: плюсы и минусы

Использование NextCloud на Docker имеет три основных преимущества.

  • Изолированность. Docker обеспечивает изолированную среду, где каждый контейнер работает отдельно. Это позволяет предотвратить возможные конфликты между приложениями и обеспечивает стабильность работы NextCloud.
  • Удобство. Docker позволяет легко и быстро установить NextCloud и все его зависимости. Есть возможность создавать образы приложений, которые содержат все необходимые зависимости и конфигурацию. Такой образ можно использовать повторно для разворачивания на других серверах или в других окружениях, что значительно экономит время и упрощает процесс установки. А обновление приложения может быть выполнено путем замены текущего контейнера на новый, содержащий обновленную версию NextCloud. Это упрощает и автоматизирует процесс, минимизирует риск возникновения ошибок и снижает время простоя системы.
  • Портативность. Docker-образы являются переносимыми и могут использоваться в различных операционных системах. Это означает, что вы можете запускать NextCloud на любой платформе, где установлен Docker, без необходимости вносить изменения в код или конфигурацию.

Есть у платформы и два недостатка, которые важно учитывать перед началом работы.

  • Зависимость от Docker. При использовании необходимо наличие Docker-среды, что может создать дополнительные сложности в установке и конфигурации. Пользователям, не знакомым с Docker, потребуется время, чтобы изучить эту технологию.
  • Дополнительные требования к ресурсам. Использование Docker для обеспечения изоляции и контейнеризации приложений требует дополнительной памяти и процессорного времени. Если вы используете довольно ресурсоёмкие приложения, это может отрицательно сказаться на производительности.

Необходимые требования

Прежде чем устанавливать NextCloud, необходимо выполнить ряд требований.

На вашей системе должна быть установлена рабочая версия Docker. Начать работу с ним можно, загрузив официальное приложение Docker Desktop для вашей операционной системы. 

Убедитесь, что ваша система соответствует минимальным аппаратным требованиям для запуска NextCloud в Docker. Это включает в себя наличие не менее 2 ГБ оперативной памяти и 10 ГБ свободного дискового пространства для хранения данных и журналов контейнеров. С увеличением объёма файлов и количества пользователей понадобятся дополнительные ресурсы, таких как мощность процессора или память.

Оптимальным решением станет аренда сервера для установки Nextcloud в Docker https://www.nic.ru/catalog/hosting/dedicated/

Затем нужно выбрать доменное имя. Здесь можно подобрать домен https://www.nic.ru/catalog/domains/

Упростит работу установленный и настроенный Nginx Proxy Manager.

Процесс установки занимает в среднем 40 минут.

Подключаем домен

Для подключения домена удобно использовать Nginx Proxy Manager. 

Создайте новый хост и заполните параметры во вкладке Details. 

В поле Domain Names укажите свой домен. Порт оставьте 13370, однако он может быть другим, если вы ранее меняли его в docker-compose.yml.

Переведите Slider Button на активный в пунктах Block Common Exploits и Websockets Support. 

В поле Access List напишите Publicly Accessible.

Сохраните изменения и подождите приблизительно минуту. Затем нажмите на 3 точки справа в новом хосте, а затем Edit. Откройте вкладку SSL. 

Чтобы запросить сертификат безопасности, нажмите на пункт Request a new SSL Certificate. Убедитесь, что Slider Button активен в пунктах Force SSL, HTTP/2 Support, HSTS Enabled. Ниже укажите актуальный электронный адрес и дайте своё согласие. Сохраните изменения, нажав кнопку Save.

У некоторых пользователей на этом этапе возникают ошибки. Они связаны с превышением лимита LetsEncrypt или тем, что записи в DNS ещё не были обновлены. В такой ситуации нужно повторить подключение домена чуть позже. 

Если всё в порядке, откройте указанный выше домен в браузере. Вы увидите страницу установки NextCloud, где нужно ввести логин и пароль.

Установка NextCloud

В первом поле вводим логин и пароль, придумайте сложную комбинацию с буквами, цифрами, другими символами.

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

Каталог с данными /Data не меняйте. А в настройках баз данных кликните на третью вкладку PostgreSQL. Здесь нужно указать актуальные сведения из файла docker-compose.yml. 

Если нужны дополнительные приложения, поставьте галочку в соответствующем пункте внизу окна. Нажмите кнопку Завершить установку. 

После завершения процесса откроется стартовая страница.

Подключаем Redis

Redis – это бесплатная резидентная система управления базами данных. Чтобы её подключить, нужно сначала остановить контейнер. Делается это с помощью команды.

sudo docker-compose down

Откройте в редакторе файл docker-compose.yml, чтобы внести в него изменения.

nano docker-compose.yml

Найдите 2 строки, в которых нужно удалить комментарии и указать свой пароль.

- REDIS_HOST=redis-nextcloud

- REDIS_HOST_PASSWORD=YOURREDISPASSWORD

Раскомментируйте сервис redis-nextcloud.

redis-nextcloud:

  image: redis:alpine

  container_name: redis-nextcloud

  command: redis-server --requirepass YOURREDISPASSWORD

  restart: unless-stopped

Запустите контейнер.

sudo docker-compose up -d

Установите нужные пакеты.

sudo apt install redis-tools

Проверьте, работает ли Redis. Сначала обратитесь к внутреннему адресу.

sudo docker ps

Выполните поиск по имени или ID. В нашем случае это redis-nextcloud

sudo docker inspect redis-nextcloud

В ответном сообщении практически в самом низу ищите параметр IPAddress, это и есть ваш IP. 

Введите следующую команду, заменив PASSWORD на актуальный пароль, а XXX.XXX.XXX.XXX на IP, который вы только что узнали.

redis-cli -a PASSWORD -h XXX.XXX.XXX.XXX ping

Система укажет PONG. 

Проверьте, как взаимодействуют NextCloud и Redis. Введите команду, также заменив пароль и IP.

redis-cli -a PASSWORD -h XXX.XXX.XXX.XXX monitor

Если всё работает нормально, система выдаст ответ ОК. 

Откройте браузер, где запущен NextCloud. Обновите страницу. Вы увидите код установки в логах. 

Включаем https

Для некоторых плагинов необходимо включать принудительный режим https. Сделать это просто.

Снова останавливаем контейнер.

sudo docker-compose down

Откройте конфигурационный файл.

sudo nano nextcloud/config/config.php

Между строками $ CONFIG = array ( и 'htaccess.RewiteBase' => '/', добавьте ещё одну.

'overwriteprotocol' => 'https',

Запустите контейнер.

sudo docker-compose up -d

Обновление NextCloud

Особенность обновления заключается в строгой последовательности версий. Например, если вы пользовались версией 21.x.x, то нельзя сразу ставить 23.x.x. Сначала нужно обновить до 22.x.x.

Откройте директорию с NextCloud.

cd /app/nextcloud

Остановите контейнер.

sudo docker-compose down

Посмотрите структуру файлов и директорий.

ls

Создайте папку, где будет храниться прежняя рабочая версия.

mkdir old

Перенесите туда все файлы прежней версии.

sudo cp -r DB docker-compose.yml nextcloud nextcloud.ini old

Откройте файл docker-compose.yml и укажите более свежую версию.

nano docker-compose.yml

Запустите контейнер с обновлённой версией. 

Когда откроете NextCloud в браузере, заработает мастер обновлений. Нажмите кнопку Запустить обновление.

После завершения процесса можете перейти в NextCloud и начать им пользоваться. 

Полезные советы напоследок

  • Не забывайте отслеживать выход новых версий продукта, чтобы в дальнейшем процесс обновления не занимал много времени.
  • Внимательно выбирайте хостинг-провайдера, чтобы выбрать действительно надёжный выделенный сервер. Убедитесь, что вам предлагают решения с дополнительной защитой и удобной панелью управления.
  • Посмотрите полный перечень плагинов с помощью команды sudo /usr/bin/docker exec -u www-data nextcloud-23 php -f /var/www/html/occ app:list

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

Всё ещё остались вопросы?