Обзор развертывания Nextcloud на сервере¶
Предварительные требования¶
Для корректной работы приложения требуются следующие параметры и доступ к ресурсам:
-
Операционная система: CentOS, Rocky Linux или AlmaLinux (для автоматической настройки брандмауэра).
-
Порты:
-
80/tcp— для HTTP и проверки SSL. -
443/tcp— для защищенного HTTPS соединения. -
22/tcp— для удаленного доступа по SSH. -
Права доступа: Требуются права суперпользователя (root) для управления Docker, конфигурационными файлами и системными службами.
FDQN итоговой панели на домене hostkey.in¶
Доменное имя формируется в соответствии со следующим шаблоном:
| Параметр | Значение |
|---|---|
| Префикс | nextcloud |
| Домен | hostkey.in |
| Полный шаблон | nextcloud{Server_ID}.hostkey.in |
Структура файлов и каталогов¶
Основные файлы конфигурации и данные приложения располагаются в следующих директориях:
-
/opt/nextcloud— рабочая директория приложения (конфигурационные файлы, скрипты настройки). -
/opt/nginx— конфигурация прокси-сервера Nginx. -
/opt/nginx/user_conf.d— пользовательские конфигурации виртуальных хостов.
Процесс установки приложения¶
Развертывание выполняется комбинированным методом: через Docker Compose и последующую программную настройку внутри контейнеров.
-
Подготовка окружения: Создаются необходимые директории для конфигураций и тома (volumes) для хранения данных.
-
Запуск инфраструктуры: Разворачивается стек контейнеров с помощью
docker compose. -
Получение SSL-сертификатов: С помощью Certbot через веб-проверку (webroot) выпускаются сертификаты Let's Encrypt для домена.
-
Первоначальная настройка приложения: Выполняется установочный скрипт
/opt/nextcloud/set_configuration.sh, который: -
Инициализирует базу данных через
occ maintenance:install. -
Настраивает доверенные домены (trusted domains).
-
Конфигурирует кэширование через Redis и APCu для повышения производительности.
-
Устанавливает приложение OnlyOffice внутри Nextcloud.
-
Оптимизация: Выполняются команды по исправлению предупреждений базы данных (добавление индексов и столбцов) и настройка окна технического обслуживания.
Права доступа и безопасность¶
-
Брандмауэр: Настроены правила для открытия портов 80, 443 и 22.
-
Конфигурация Nginx: Используются строгие заголовки безопасности (HSTS, X-Frame-Options, X-Content-Type-Options).
-
Ограничения доступа: Настроены правила для защиты системных папок Nextcloud (
config,data,libи др.) от прямого доступа.
Базы данных¶
В качестве системы управления базами данных используется PostgreSQL 16 (Alpine).
| Параметр | Значение |
|---|---|
| Имя БД | nextcloud |
| Пользователь | nextcloud |
| Хранилище | Том Docker db_data |
| Особенности | Выделено 256MB shared memory для стабильной работы. |
Контейнеры Docker и их запуск¶
Приложение работает в составе нескольких контейнеров:
-
app-server (Nextcloud FPM):
-
Образ:
nextcloud:fpm -
Тома:
/var/www/html(данные приложения),/opt/nextcloud/php.ini(настройки PHP). -
Переменные окружения: Настройки подключения к БД, Redis и параметры домена.
-
db (PostgreSQL):
-
Образ:
postgres:16-alpine -
Тома:
db_data. -
redis:
-
Образ:
redis:alpine -
Назначение: Кэширование и блокировки.
-
onlyoffice-document-server (OnlyOffice):
-
Образ:
onlyoffice/documentserver:latest -
Тома:
document_data,document_log. -
nginx-certbot:
-
Образ:
jonasal/nginx-certbot:latest -
Порты:
80:80,443:443 -
Назначение: Проксирование трафика и управление SSL.
Кастомные скрипты и дополнительные настройки¶
Для автоматизации настройки используется установочный скрипт /opt/nextcloud/set_configuration.sh.
Назначение скрипта:
-
Автоматическая установка Nextcloud с параметрами базы данных.
-
Интеграция OnlyOffice (настройка
DocumentServerUrl,StorageUrlи проверка целостности приложения). -
Настройка кэширования в оперативной памяти для ускорения работы интерфейса.
Инструкция по обновлению приложения¶
Для обновления основного приложения необходимо выполнить следующие действия: