Гид по технологиям

Установка Nextcloud AIO на Ubuntu 22.04

• 10 min read • DevOps • Обновлено 26 Nov 2025
Nextcloud AIO на Ubuntu 22.04
Nextcloud AIO на Ubuntu 22.04

Что описано в статье

  • Что такое Nextcloud AIO и какие компоненты входят в сборку.
  • Пошаговая подготовка сервера и установка Docker Compose v2.
  • Полный пример docker-compose.yml и запуск AIO.
  • Резервное копирование и восстановление с BorgBackup.
  • Практические советы по безопасности, обновлениям и устранению неполадок.

Важно: эта инструкция рассчитана на администраторов сервера с базовыми навыками работы в Linux и Docker.

Коротко о терминах

  • Nextcloud AIO — «All in One» инсталляция Nextcloud в одном управляющем контейнере с плагинами и инструментами.
  • Mastercontainer — основной контейнер AIO, управляющий другими контейнерами.
  • BorgBackup — инструмент для deduplicating резервных копий с шифрованием.

1 Что такое Nextcloud AIO

Nextcloud AIO (All in One) — это установщик на базе Docker, который упрощает развертывание Nextcloud и связанных сервисов. В состав AIO обычно входят:

  1. Nextcloud — платформа для синхронизации файлов, календарей и контактов.
  2. Nextcloud Office — редактирование документов в реальном времени (на базе Collabora CODE/LibreOffice).
  3. Nextcloud Talk — аудио/видео и чат, поддержка WebRTC, демонстрации экрана, групповые вызовы.
  4. Imaginary — сервис для обработки и конвертации изображений.
  5. ClamAV — антивирус для проверки загружаемых файлов.
  6. BorgBackup — инструмент для создания зашифрованных резервных копий.
  7. ElasticSearch — опциональный движок полнотекстового поиска.

Когда это уместно: AIO удобен для быстрой установки на выделенный сервер или VPS, когда хочется получить полностью управляемую Nextcloud-инфраструктуру без ручной сборки множества контейнеров.

Когда это не подходит: для сложных корпоративных инсталляций с отдельными требованиями к масштабированию, балансировке нагрузки или интеграции с внешними S3/LDAP решениями лучше использовать кастомный стек.


2 Требования

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

  • ОС: Ubuntu 22.04 LTS.
  • Пользователь: не-root пользователь с sudo-привилегиями.
  • Домен: FQDN, указывающий на сервер (например nextcloud.example.com). Запись A/AAAA должна быть доступна для публичного разрешения.
  • Ресурсы:
    • Минимум: 1 vCPU и 1 ГБ RAM (для тестовой инсталляции).
    • Рекомендуется: 2 vCPU и 4 ГБ RAM для базовой рабочей нагрузки с несколькими аддонами.
    • Для ClamAV и ElasticSearch требуется дополнительная память — планируйте +1 ГБ для каждого, если они включены.
  • Диск: достаточное свободное место для данных пользователей и резервных копий. Рекомендуется отдельный диск или раздел для /mnt/backup.
  • Сеть / порты: 80, 443, 8080, 8443 TCP и порт 3478 UDP (если используете Talk). Убедитесь, что провайдер не блокирует порты 80/443.
  • Брандмауэр: UFW (Uncomplicated Firewall) активирован и настроен.
  • Время: корректная настройка часового пояса и синхронизация времени (systemd-timesyncd или chrony).

Примечание: при использовании IPv6 добавьте соответствующие записи и правила для UFW.


3 Подготовка сервера

Обновите пакеты и установите базовые утилиты.

sudo apt update && sudo apt upgrade -y
sudo apt install wget curl nano unzip gnupg lsb-release -y

Важно: на серверах с ограниченной памятью рассмотрите настройку swap-файла (1–2 ГБ) для избежания OOM при установке больших контейнеров.

Пример создания swap (если нужно):

sudo fallocate -l 1G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

Проверьте DNS для домена:

dig +short nextcloud.example.com

Если ответ соответствует IP вашего сервера — можно продолжать.


4 Шаг 1 — Настройка брандмауэра (UFW)

Проверьте статус UFW:

sudo ufw status

Если он активен, добавьте разрешения для HTTP и HTTPS:

sudo ufw allow http
sudo ufw allow https

Откройте порт для Nextcloud Talk (по желанию):

sudo ufw allow 3478/udp

Откройте порты для интерфейса AIO (веб-интерфейс мастера):

sudo ufw allow 8080/tcp
sudo ufw allow 8443/tcp

Проверьте статус ещё раз:

sudo ufw status verbose

Важно: если SSH использует нестандартный порт, явно разрешите его, чтобы не потерять соединение.


5 Шаг 2 — Настройка hostname и часового пояса

Установите корректный hostname — FQDN вашего сервера.

sudo nano /etc/hostname
# в файле укажите например:
nextcloud.example.com

Отредактируйте /etc/hosts, чтобы локально разрешался ваш hostname (замените реальным IP):

sudo nano /etc/hosts
# добавьте строку:
 nextcloud.example.com nextcloud

Установите часовой пояс:

timedatectl list-timezones
sudo timedatectl set-timezone Europe/Moscow

Перезагрузите систему, чтобы применить hostname:

sudo reboot

После перезагрузки подключитесь снова:

ssh [email protected]

6 Шаг 3 — Установка Docker и Docker Compose v2

Добавьте ключ GPG Docker и репозиторий:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update

Установите Docker Engine и плагин Docker Compose:

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y

Добавьте пользователя в группу docker, чтобы не использовать sudo для каждой команды Docker:

sudo usermod -aG docker ${USER}
# примените изменения
su - ${USER}

Проверьте установку:

docker --version
docker compose version

Примечание: в данной инструкции используется плагин docker compose (команда docker compose) — это современный вариант Compose v2.


7 Шаг 4 — Создание docker-compose.yml для AIO

Создайте рабочую директорию:

mkdir ~/nextcloud-aio
cd ~/nextcloud-aio
nano docker-compose.yml

Вставьте следующий пример файла docker-compose.yml. Обратите внимание на комментарии внутри: некоторые строки нельзя менять.

version: "3.8"

volumes:
  nextcloud_aio_mastercontainer:
    name: nextcloud_aio_mastercontainer # This line is not allowed to be changed

services:
  nextcloud:
    image: nextcloud/all-in-one:latest # Must be changed to 'nextcloud/all-in-one:latest-arm64' when used with an arm64 CPU
    restart: always
    container_name: nextcloud-aio-mastercontainer
    volumes:
      - nextcloud_aio_mastercontainer:/mnt/docker-aio-config # This line is not allowed to be changed
      - /var/run/docker.sock:/var/run/docker.sock:ro
    ports:
      - 80:80
      - 8080:8080
      - 8443:8443

Сохраните файл и выйдите (Ctrl+X, Y).

Важно: если у вас архитектура arm64 (например Raspberry Pi 4 / сервер на ARM), поменяйте тег образа на nextcloud/all-in-one:latest-arm64.


8 Шаг 5 — Запуск Nextcloud AIO

Запустите контейнер в фоне:

docker compose up -d

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

docker compose ps
# или
docker ps

Пример строки статуса (информация о портах и состоянии):

NAME                            COMMAND                  SERVICE             STATUS              PORTS
nextcloud-aio-mastercontainer   "start.sh /usr/bin/s…"   nextcloud           running (healthy)   0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp, 0.0.0.0:8443->8443/tcp, :::8443->8443/tcp

Логи контейнера:

docker logs nextcloud-aio-mastercontainer --follow

Если контейнер не стартует или переходит в состояние unhealthy — смотрите логи и убедитесь, что Docker daemon запущен и порты не заняты другими процессами.


9 Шаг 6 — Доступ к AIO и созданию инстанса Nextcloud

Откройте веб-интерфейс мастера по адресу:

https://nextcloud.example.com:8443

Страница установки Nextcloud AIO

На странице вы увидите автоматически сгенерированный пароль. Скопируйте его и нажмите кнопку Open Nextcloud AIO login.

Страница входа в Nextcloud AIO

Вставьте пароль и войдите.

Панель управления Nextcloud AIO

В разделе New AIO Instance укажите домен для нового инстанса (например nextcloud.example.com) и нажмите Submit.

Создание новой инстанции Nextcloud AIO

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

Состояние контейнеров Nextcloud AIO

Выберите нужные дополнения и нажмите Save changes, затем Start containers. AIO автоматически попытается получить SSL-сертификат Let’s Encrypt для указанного домена (если доступны порты 80/443).

Установка аддонов Nextcloud

Процесс установки может занять несколько минут. На странице будет отображаться прогресс контейнеров. Желтый маркер может означать, что контейнер стартует или временно unhealthy — используйте Reload.

Контейнеры в состоянии запуска

После успешной установки AIO покажет учётные данные для вашего Nextcloud.

Успешная установка Nextcloud

Откройте Nextcloud по адресу https://nextcloud.example.com и войдите под учётными данными (admin и сгенерированный пароль).

Экран входа Nextcloud

После входа вы получите доступ к панели управления Nextcloud.

Дашборд Nextcloud


10 Шаг 7 — Резервное копирование и восстановление

Перед созданием резервной копии рекомендуется остановить Apache контейнер, т.к. он может блокировать интерфейс AIO.

docker stop nextcloud-aio-apache

Откройте интерфейс AIO (https://nextcloud.example.com:8443) и в разделе Backup укажите путь для хранения бэкапов (например /mnt/backup).

Создание резервной копии Nextcloud

Nextcloud AIO создаёт зашифрованный архив и выдаёт пароль для восстановления. Сохраните пароль в надежном месте — он нужен для восстановления.

Процесс создания резервной копии останавливает контейнеры и запускает специальный контейнер backup.

Запуск контейнера резервного копирования

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

Восстановление

При восстановлении укажите путь к каталогу, в котором находится подпапка borg (например /mnt/backup, где /mnt/backup/borg содержит архивы).

Введите пароль резервной копии и протестируйте доступность архива через интерфейс AIO (Test path and password).

Проверка пути и пароля резервной копии

Выберите резервную копию из списка и нажмите Restore selected backup. AIO выполнит проверку целостности и запустит процесс восстановления.

Запуск процесса восстановления

После успешного восстановления появится сообщение об успехе.

Восстановление прошло успешно


11 Подготовка резервной копии для удалённой загрузки (Borg)

Установите borgbackup на сервер (если ещё не установлен):

sudo apt install borgbackup -y

Смонтируйте архив в /tmp/borg, чтобы скопировать отдельные папки:

sudo mkdir -p /tmp/borg && sudo borg mount "/mnt/backup/borg" /tmp/borg

Вас попросят ввести пароль для архива. После монтирования можно просмотреть содержимое:

sudo ls -al /tmp/borg

Когда закончите копирование, отмонтируйте:

sudo umount /tmp/borg

Чтобы удалить старую резервную запись:

sudo borg delete --stats --progress "/mnt/backup/borg::20221010_041554-nextcloud-aio"

Примечание: используйте фактические имена архивов в вашей папке.


12 Шаг 8 — Обновления Nextcloud AIO и контейнеров

Nextcloud AIO запускает периодическую задачу для проверки обновлений контейнеров. Процесс обновления обычно следующий:

  1. Откройте интерфейс AIO, где будет уведомление об обновлении.
  2. Нажмите Stop containers, чтобы остановить контейнеры.
  3. Нажмите Update или Start containers, чтобы перезапустить с обновлёнными образами.

Всегда делайте резервную копию перед крупными обновлениями (особенно перед обновлением самой Nextcloud).

Если обновление mastercontainer требуется (AIO Mastercontainer), в интерфейсе будет соответствующая клавиша Update — следуйте указаниям.


13 Рекомендации по безопасности и жесткой настройке

  • SSL: убедитесь, что Let’s Encrypt получил сертификат. Если автоматический выпуск не сработал, проверьте, что порты 80/443 доступны извне и DNS корректно указывает на сервер.
  • SSH: запретите вход под root, используйте публичные ключи и отключите аутентификацию по паролю.
  • Брандмауэр: откройте только необходимые порты.
  • Fail2ban: установите и настройте для защиты SSH и веб-интерфейсов.
  • Резервные копии: автоматизируйте резервирование и проверку восстановления.
  • Логи: централизуйте логи и настраивайте мониторинг состояния контейнеров.
  • Минимизация прав: контейнеры должны работать с минимально необходимыми привилегиями; сократите количество монтируемых хост-директорий.

Примечание о GDPR и приватности: при хранении персональных данных убедитесь, что политики хранения и шифрования данных соответствуют требованиям локального законодательства и корпоративным правилам. Шифрование резервных копий и контроль доступа — обязательные элементы.


14 Тесты и критерии приёмки

Критерии приёмки успешной установки:

  • Все базовые контейнеры в состоянии healthy.
  • Доступ по HTTPS к https://nextcloud.example.com и корректный сертификат.
  • Вход в Nextcloud под учётной записью admin возможен.
  • Загрузка и скачивание файлов работает.
  • Создание и восстановление резервной копии протестировано.
  • При использовании Talk — соединение WebRTC устанавливается (проверить в браузере).
  • При использовании Office — совместное редактирование работает.

Минимальные тесты командной строки:

docker compose ps
curl -I https://nextcloud.example.com
docker logs nextcloud-aio-mastercontainer --tail 200

15 Траблшутинг: частые ошибки и как их решать

Проблема: не получается получить SSL-сертификат.

  • Проверьте DNS A/AAAA. Порт 80 должен быть доступен извне. Убедитесь, что нет стороннего прокси, который изменяет запросы.

Проблема: контейнер помечен как unhealthy.

  • Просмотрите логи контейнера (docker logs). Часто причина — ошибка в подключении к сокету Docker или конфликт портов.

Проблема: веб-интерфейс мастера не доступен на 8443.

  • Проверьте UFW и провайдерский firewall. Убедитесь, что порт 8443 открыт для входящих соединений.

Проблема: при восстановлении архив не монтируется.

  • Проверьте правильность пароля и целевого пути. Убедитесь, что в каталоге действительно есть подпапка borg с архивами.

Команды для диагностики:

sudo ufw status verbose
docker ps -a
docker logs nextcloud-aio-mastercontainer --follow
journalctl -u docker.service --no-pager --since "1 hour ago"

16 Методика обновлений и поддержка (мини-процесс)

Рекомендованный цикл обслуживания:

  • Ежедневно: проверка состояния контейнеров (cron/monitoring).
  • Еженедельно: проверка доступности резервных копий.
  • Перед обновлением Nextcloud: создать резервную копию и протестировать восстановление на тестовой среде.
  • После обновления: прогнать smoke-тесты (вход, загрузка файла, просмотр файла).

SOP для обновления:

  1. Сделать резервную копию через AIO.
  2. Остановить контейнеры (Stop containers в интерфейсе).
  3. Обновить контейнеры через интерфейс AIO (Update) или вручную pull и recreate.
  4. Перезапустить и проверить логи и работоспособность.

17 Решение для ARM и советы по миграции

Если сервер на arm64, используйте образ с суффиксом latest-arm64. В docker-compose.yml замените тег образа:

image: nextcloud/all-in-one:latest-arm64

При миграции с x86 на arm рекомендуем:

  • Сделать полную резервную копию на исходной системе.
  • Развернуть AIO на arm-хосте и восстановить архив через интерфейс AIO.

18 Список быстрых команд (cheat sheet)

  • Обновление системы:
sudo apt update && sudo apt upgrade -y
  • Запуск AIO:
docker compose up -d
  • Остановка apache контейнера:
docker stop nextcloud-aio-apache
  • Логи контейнера:
docker logs nextcloud-aio-mastercontainer --follow
  • Проверка портов:
ss -tulpen | grep LISTEN

19 Диаграмма принятия решения (Mermaid)

flowchart TD
  A[Nextcloud недоступен] --> B{DNS разрешается?}
  B -- нет --> C[Исправить A/AAAA записи]
  B -- да --> D{Порты 80/443 открыты?}
  D -- нет --> E[Открыть порты в UFW/провайдере]
  D -- да --> F{Контейнеры запущены?}
  F -- нет --> G[Запустить docker compose up -d и проверить логи]
  F -- да --> H[Проверить логи nextcloud-aio-mastercontainer]
  H --> I{Ошибка сертификата?}
  I -- да --> J[Проверить Let's Encrypt и доступность ACME]
  I -- нет --> K[Проверить конфигурацию Apache/Proxy]

20 Ролевые чек-листы

Администратор перед установкой:

  • Проверил DNS и WHOIS домена.
  • Настроил UFW и SSH.
  • Настроил swap и мониторинг.

Оператор при деплое:

  • Запустил docker compose и проверил состояние контейнеров.
  • Убедился, что SSL получен.
  • Выполнил smoke-тесты.

Пользователь после запуска:

  • Создал учётную запись через admin.
  • Протестировал загрузку/скачивание файлов.
  • Проверил доступность Talk и Office (если включены).

21 Словарь терминов (одна строка)

  • AIO — All-in-One, единая упаковка сервисов Nextcloud.
  • FQDN — полностью квалифицированное доменное имя.
  • Borg — инструмент резервного копирования с дедупликацией и шифрованием.
  • Mastercontainer — основной контейнер AIO, управляющий другими.

22 Заключение

Nextcloud AIO — удобный способ быстро развернуть полнофункциональный Nextcloud с аддонами на Docker. Следуйте шагам: подготовка сервера, установка Docker, создание docker-compose.yml, запуск AIO, настройка домена и SSL, настройка резервного копирования и политики обновлений. Не забывайте тестировать резервные копии и применять базовые меры безопасности.

Если у вас остались вопросы по конкретным шагам — опишите окружение (архитектура CPU, провайдер, ошибки из логов) и я помогу локализовать проблему.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро