Nextcloud – целая платформа(набор программ) для хранения любых данных на собственном NAS. Позволяет полностью избавиться от Гугла и прочих корпораций, которые в той или иной мере используют ваши данные для аналитики, статистики, показа рекламы и прочих неприемлемых, по моему мнению, действий.

Nextcloud AIO – Решение “Все в одном” призвано обеспечить простое развертывание и обслуживание, приятным бонусом будет множество интегрированных функций, которые не требуется ставить отдельно.

Включены:

  • Nextcloud
  • Nextcloud Office
  • High performance backend for Nextcloud Files
  • High performance backend for Nextcloud Talk
  • Backup solution (основано на BorgBackup)
  • ClamAV
Данная статья подразумевает, что Вы уже знакомы как минимум с продуктом NextCloud, имели опыт установки DOCKER контейнеров.

Введение

Итак, Вам надоел привычный некстклауд? Вы хотите попробовать что-то новое? Вы разворачиваете новое облако и не хотите тратить время на установку вспомогательных контейнеров? Тогда приступим…

Нам понадобится:

  • NAS на unRAID (у меня крайняя версия 6.10.1)
  • Белый IP / Личный домен (чтоб облако было доступно из внешних сетей)
  • Настроенный Nginx Proxy Manager

Остальное уже интегрировано в мастер-контейнер, а именно:

  • NextCloud – Стабильная версия на Apache
  • PostgreSQL – ничего настраивать не требуется, все уже внутри.
  • Redis – ничего настраивать не требуется, все уже внутри.

Подготовка

В данный раздел будет входить всего один пункт, а именно создание отдельной шары под пользовательские данные будущего облака. Это самый важный шаг и он един для установки любой версии NextCloud на unRAID(начиная с версии 6.10.X)

Создание шары

В WebUI сервера переходим на вкладку SHARES, затем нажимаем кнопку Nextcloud AIO – Личное облако "все в одном" на unRAID 6.10.X 8

Нас встречает окно создания шары, произвольно заполняем:

Nextcloud AIO – Личное облако "все в одном" на unRAID 6.10.X 9
Создание шары для пользовательских данных NextCloud AIO

После заполнения имени и комментария(по желанию), подтверждаем действия повторным нажатием кнопки Nextcloud AIO – Личное облако "все в одном" на unRAID 6.10.X 8

Остальные настройки для SMB оставляем по умолчанию.

Изменение файлов и папок по SMB в данной шаре только на свой страх и риск, это скорее всего приведет к ошибке безопасности некста и необходимости восстановления прав

Выставляем права

После создания шары, внутри нее создаем папку, например data

И уже на нее выставим права, я использую WinSCP:

Nextcloud AIO – Личное облако "все в одном" на unRAID 6.10.X 11
Настройка прав на папку data в шаре NextCloud AIO

Как писал выше, создание шары и выдача прав – самый важный шаг при разворачивании нового облака на unRAID. Не изменяете права на саму шару, а только на папки внутри них. Идеология unRAID после ребута сбросит права на шары до 99:100 без предупреждения.

  • Группа: 33
  • Владелец: 33
  • Oct: 0770
  • Активируем чекбокс “Установить разрешения и для потомков”

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

Установка контейнера NextCloud AIO

Часть 1 (мастер-контейнер)

Воспользуемся уже готовым шаблоном:

Nextcloud AIO – Личное облако "все в одном" на unRAID 6.10.X 12
Шаблон от Muwahhidun в каталоге приложений unRAID

Кликаем Install и подготавливаем шаблон перед запуском:

  • 8080: порт мастер контейнера, у меня 8089
  • APACHE_PORT: порт будущего облака, у меня сток 11000
  • NEXTCLOUD_DATADIR: путь созданной шары под пользовательские файлы, например /mnt/user/AIO/data (именно на папку, где меняли права)
Остальные поля менять нельзя, контейнер не отработает и не запустится

После проделанных изменений нажимаем кнопку Nextcloud AIO – Личное облако "все в одном" на unRAID 6.10.X 13

Nextcloud AIO – Личное облако "все в одном" на unRAID 6.10.X 14
Ход выполнения скачивания и запуска контейнера NextCloud AIO

Наблюдаем за процессом и дожидаемся заветной фразы The command finished successfully!

После этого нажимаем кнопку Nextcloud AIO – Личное облако "все в одном" на unRAID 6.10.X 15

Если все сделано верно, то увидим на вкладке DOCKER созданный контейнер со статусом STARTED

Часть 2 (WebUI NextCloud AIO)

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

https://IP:PORT/

Где, IP – ИП сервера unRAID и PORT – порт мастер контейнера, указанный п. 1

Проходим по ссылке, получаем уведомление о том, что подключение не защищено, через “дополнительные” все таки переходим на сайт:

Nextcloud AIO – Личное облако "все в одном" на unRAID 6.10.X 16
Первоначальное окно с паролем авторизации мастер-контейнера NextCloud AIO

Перед тем как кликнуть по единственной кнопке копируем временный пароль для входа в WebUI мастер-контейнера. Пароль будет отображен всего один раз, поэтому сразу сохраняем его на локальный ресурс:

Nextcloud AIO – Личное облако "все в одном" на unRAID 6.10.X 17
Окно авторизации мастер-контейнера NextCloud AIO

Вставляем полученный пароль в форму входа и кликаем LOGIN

После авторизации система предложит нам ввести домен, по которому будет доступно наше облако:

Nextcloud AIO – Личное облако "все в одном" на unRAID 6.10.X 18
Окно ввода домена NextCloud AIO

На данном этапе не закрывая страницу идем в unRAID и запустив NPM создаем новый Proxy Host:

Nextcloud AIO – Личное облако "все в одном" на unRAID 6.10.X 19
Nginx вкладка Details
Nextcloud AIO – Личное облако "все в одном" на unRAID 6.10.X 20
Nginx вкладка SSL

Порт используем тот, который указали в APACHE_PORT из п. 1, а также после запроса сертификата не забудьте снова открыть созданный Proxy Host и проверить ползунки как на скриншотах выше.

Ползунки на HSTS Enabled и HSTS Subdomains индивидуальны, NC в себе уже содержит данные параметры.

Более нам NPM не понадобится, возвращаемся в браузер к странице мастер-контейнера и вписываем выделенный субдомен:

Nextcloud AIO – Личное облако "все в одном" на unRAID 6.10.X 21
Окно ввода домена NextCloud AIO

Если на данном этапе возникают трудности, но есть уверенность в правильности выполнения действий, то можно пропустить проверку домена. Для этого в мастер-контейнер необходимо добавить переменную SKIP_DOMAIN_VALIDATION с значением true и повторить попытку.

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

После ознакомления и выбора обязательно подтверждаем кнопкой Save changes, а также после ввода тайм-зоны Submit.

Nextcloud AIO – Личное облако "все в одном" на unRAID 6.10.X 22
Выбор компонентов
Nextcloud AIO – Личное облако "все в одном" на unRAID 6.10.X 23
Настройка таймзоны

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

Убедившись в правильности выбранного кликаем Nextcloud AIO – Личное облако "все в одном" на unRAID 6.10.X 24

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

Nextcloud AIO – Личное облако "все в одном" на unRAID 6.10.X 25
Запуск контейнеров NextCloud AIO

Периодически нажимая Reload, дожидаемся запуска всех контейнеров.

Если все сделано верно, то увидим следующий результат:

Nextcloud AIO – Личное облако "все в одном" на unRAID 6.10.X 26
Контейнеры NextCloud AIO успешно запущены

В верхней части окна(после запуска всех контейнеров) появится информация для входа под учетной записью администратора.

Запуск

Теперь смело проходим по домену, созданному в NPM и наблюдаем окно авторизации:

Nextcloud AIO – Личное облако "все в одном" на unRAID 6.10.X 27
Окно авторизации NextCloud

Используем для входа данные, полученные ранее:

Nextcloud AIO – Личное облако "все в одном" на unRAID 6.10.X 28
Окно приветствия NextCloud

Как сменить домен?

Открываем терминал unRAID Nextcloud AIO – Личное облако "все в одном" на unRAID 6.10.X 29

Вставляем код:

docker run -it --rm --volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config:rw alpine sh -c "apk add --no-cache nano && nano /mnt/docker-aio-config/data/configuration.json"

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

Как увеличить upload limit?

По умолчанию загрузка в NextCloud ограничена, максимум 10G.

Вы можете настроить добавив переменную в мастер-контейнер:

NEXTCLOUD_UPLOAD_LIMIT

С значением вида 10G или 15G или ХG на Ваше усмотрение.

Как увеличить max execution time?

По умолчанию установлено значение 3600 с.

Вы можете настроить добавив переменную в мастер-контейнер:

NEXTCLOUD_MAX_TIME

С значением вида 3600 или 7200 на Ваше усмотрение.

Как настроить ограничение памяти PHP ?

По умолчанию установлено значение 512 МБ.

Вы можете настроить добавив переменную в мастер-контейнер:

NEXTCLOUD_MEMORY_LIMIT

С значением вида 512M или 1024M на Ваше усмотрение.

Итог:

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