Содержание
0. Потребуется для разворачивания
- 2 Виртуальные машины;
- ТХ Машин, для тестирования, возможно использовать:
- от 4 CPU;
- от 8Гб RAM;
- от 40Гб свободного пространства на диске;
- Более конкретные данные рассчитываются по обращению в ТП;
- Отключение или перевод selinux в режим permissive для корректной работы сервисов.
1. Архитектура
1.1. Схема
2. Установка Р7-Офис. Профессиональный. Сервер документов для Linux РЕД ОС
Р7-Офис. Профессиональный. Сервер документов позволяет установить Сервер документов на локальном сервере и интегрировать онлайн-редакторы с платформой для совместной работы Р7-Офис. Профессиональный.
Р7-Офис. Профессиональный. Сервер документов — это офисный пакет для работы онлайн, который включает в себя инструменты просмотра и редакторы текстовых документов, электронных таблиц и презентаций, полностью совместимые с форматами Office Open XML: .docx, .xlsx, .pptx и позволяющие совместно редактировать документы в режиме реального времени.
2.1. Функциональность
- Редактор документов
- Редактор электронных таблиц
- Редактор презентаций
- Приложения просмотра на мобильных устройствах через веб-браузер
- Совместное редактирование
- Поддержка иероглифов
- Поддержка всех популярных форматов: DOC, DOCX, TXT, ODT, RTF, ODP, EPUB, ODS, XLS, XLSX, CSV, PPTX, HTML
Интегрировав этот модуль с Р7-Офис. Профессиональный. Корпоративный сервер, вы сможете:
- организовать совместный доступ к файлам;
- управлять правами доступа к документам;
- встраивать документы в сайт;
- просматривать и редактировать файлы, сохраненные в сторонних сервисах Yandex.disk, Mail.ru Диск, OwnCloud, Nextcloud подключенных к Р7-Офис. Профессиональный. Корпоративный сервер.
2.2. Системные требования
- Процессор: рекомендуется от 4 ядер
- Оперативная память: рекомендуется от 8 Гб
- Свободное место на жестком диске: рекомендуется от 40 Гб
2.3. Требования к программному обеспечению
- Поддерживаемые операционные системы
- Дополнительные требования
- PostgreSQL: версия 11.14 или выше
- NGINX: версия 1.24 или выше
- Redis: версия 6.2.5 или выше
- Erlang: версия 19.3.6.1 или выше
- RabbitMQ: версия 3.6.5 или выше
2.4. Предварительные действия
2.4.1. Установка зависимостей
Установите NGINX:
sudo yum install nginx -y
После этого сохраним основной конфигурационный файл NGINX /etc/nginx/nginx.conf
и создадим новый, чтобы он выглядел следующим образом:
sudo mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak sudo nano /etc/nginx/nginx.conf
user nginx; worker_processes 1; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; include /etc/nginx/conf.d/*.conf; }
2.4.2. Установка и настройка PostgreSQL
Установите версию PostgreSQL:
sudo yum install postgresql postgresql-server -y
Если вы хотите установить какую-то другую версию PostgreSQL из репозитория PostgreSQL, обратитесь за дополнительной информацией к официальной документации PostgreSQL.
2.4.3. Инициализируйте базу данных PostgreSQL в случае, если не был создан /var/lib/pgsql/data/pg_hba.conf
sudo service postgresql initdb
2.4.4. Добавьте в автозагрузку БД:
sudo chkconfig postgresql on sudo systemctl enable postgresql.service
2.4.5. Включите метод аутентификации ‘trust’ для адреса localhost в формате IPv4 и IPv6
Откройте файл /var/lib/pgsql/data/pg_hba.conf
в текстовом редакторе.
Найдите строку host all all 127.0.0.1/32 ident
и замените ее на следующую:
host all all 127.0.0.1/32 trust
Затем найдите строку host all all ::1/128 ident
и замените ее на следующую:
host all all ::1/128 trust
Сохраните изменения.
2.4.6. Перезапустите сервис PostgreSQL:
sudo service postgresql restart
2.4.7. Создайте базу данных и пользователя PostgreSQL:
Пользователем и паролем для созданной базы данных должны быть r7office.
Сначала выполните команду
cd /tmp
Для предотвращения ситуации, когда при запуске от имени суперпользователя выдаётся сообщение could not change directory to «/root»
. После этого необходимо создать базу данных и пользователя:
sudo -u postgres psql -c "CREATE USER r7office WITH password 'r7office';" sudo -u postgres psql -c "CREATE DATABASE r7office OWNER r7office;" sudo -u postgres psql -c "GRANT ALL privileges ON DATABASE r7office TO r7office;"
2.4.8. Установка Redis
sudo yum install redis -y
Запустите сервис redis и добавьте его в автозагрузку:
sudo service redis start sudo systemctl enable redis
2.4.9. Установка RabbitMQ
sudo yum install rabbitmq-server -y
Запустите сервис rabbitmq и добавьте его в автозагрузку:
sudo service rabbitmq-server start sudo systemctl enable rabbitmq-server
2.4.10. Использование нестандартного порта
По умолчанию Р7-Офис. Профессиональный. Сервер документов слушает входящие соединения на порту 80. Начиная с версии 4.3 вы можете сменить порт для Р7-Офис. Профессиональный. Сервер документов в случае, если вы планируете использовать его вместо того, который идёт по умолчанию.
Если вы меняете порт по умолчанию, убедитесь, что он открыт для исходящих/входящих соединений. Посмотрите полный список портов, которые используются Р7-Офис. Профессиональный. Сервер документов.
Для этого вам нужно отредактировать переменную окружения DS_PORT
с помощью команды:
export DS_PORT=<PORT_NUMBER>
Вместо <PORT_NUMBER> в команде выше необходимо вписать номер порта, который будет использоваться.
Если вы хотите поменять протокол Р7-Офис. Профессиональный. Сервер документов на HTTPS, не меняйте порт на 443, а воспользуйтесь инструкцией п.2.8.
2.5. Установка Р7-Офис. Профессиональный. Сервер документов
Добавление репозитория и установка Р7-Офис. Профессиональный. Сервер документов
Добавьте репозиторий Р7-Офис. Профессиональный. Сервер документов с помощью следующих команд:
2.5.1. Для установки версии 2024.1.1-375 и выше выполните
2.5.1.1. Откройте файл на редактирование
sudo nano /etc/yum.repos.d/r7server.repo
2.5.1.2. Добавьте следующий текст
[r7server] name=r7server baseurl=https://downloads.r7-office.ru/repository/r7-server-yum/ enabled=1 gpgcheck=1 gpgkey=https://download.r7-office.ru/repos/RPM-GPG-KEY-R7-OFFICE.public sslverify=1 username=server password=KwmuQmOzuFIw9wcJsL3zb
2.5.1.3. Обновите список репозиториев с подгружаемыми данными
sudo yum makecache
2.5.1.4. Для установки Сервера документов выполните следующую команду:
yum install r7-office-documentserver-ee -y
2.5.1.5. Запустите зависимые сервисы и добавьте их в автозагрузку:
sudo systemctl start ds-docservice.service sudo systemctl start ds-converter.service sudo systemctl start ds-metrics.service sudo systemctl enable ds-docservice.service sudo systemctl enable ds-converter.service sudo systemctl enable ds-metrics.service sudo systemctl start nginx.service sudo systemctl enable nginx.service
После этого Р7-Офис. Профессиональный. Сервер документов будет запущен как процесс. Пакет будет обновляться, как любой другой rpm-пакет.
2.6. Настройка Р7-Офис. Профессиональный. Сервер документов
2.6.1. Запустите скрипт конфигурации
Запустите скрипт documentserver-configure.sh:
bash documentserver-configure.sh
Вам будет предложено указать параметры подключения к PostgreSQL, Redis и RabbitMQ. Используйте следующие данные:
Для PostgreSQL:
- Host: localhost
- Database: r7office
- User: r7office
- Password: r7office
Для Redis:
- Host: localhost
Для AMQP
- Host: localhost
- User: guest
- Password: guest
2.6.2. Добавьте исключение межсетевого экрана
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent sudo firewall-cmd --reload
2.6.3. Отключите SELinux (не используется с версии 5.0)
Откройте файл /etc/selinux/config
в любом текстовом редакторе, замените строку SELINUX=enforcing
или SELINUX=permissive
на следующую: SELINUX=disabled
. Сохраните изменения.
Или воспользуйтесь командами:
# Замена SELINUX=enforcing или SELINUX=permissive на SELINUX=disabled sudo sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config sudo sed -i 's/^SELINUX=permissive/SELINUX=disabled/' /etc/selinux/config # Проверка изменений grep ^SELINUX= /etc/selinux/config
Перезагрузите сервер, чтобы изменения вступили в силу.
reboot
После перезагрузки проверяем статус.
sestatus
После всего этого вы можете ввести http://localhost в адресной строке браузера, чтобы открыть страницу приветствия Р7-Офис. Профессиональный. Сервер документов, где приводятся дальнейшие инструкции о том, как подключить примеры документов или интегрировать онлайн-редакторы в веб-приложение с помощью API.
2.7. Регистрация вашей версии Р7-Офис. Профессиональный. Сервер документов
Если вы купили Р7-Офис. Профессиональный. Сервер документов и получили файл license.lic, вы можете поместить его в инсталляцию для получения полной версии программы.
Если вы используете дистрибутив Linux на базе Red Hat, файл license.lic помещается в следующую папку: /var/www/r7-office/Data/license.lic
Имя файла лицензии должно быть строго license.lic.
После этого ваша версия Р7-Офис. Профессиональный. Сервер документов станет зарегистрированной и полнофункциональной.
В случае использования Сервера документов версии 7.3.3 и подключение к Корпоративному серверу CS 12.1 и более ранней версии, то функциональность «Предоставления доступа» и Загрузки файлов из «Хранилища» во время работы с Документом, при использовании HTTP протокола могут не работать. Для решения проблемы потребуется перевести на HTTPS протокол серверы с CS и DS:
- CS Linux: https://support.r7-office.ru/community_server/install-community_server/community_server_linux/community_server_https_own_certificate/
- DS Linux: https://support.r7-office.ru/document_server/install-document_server/document_server_linux/https_ds/
Сервисы Корпоративный сервер и Сервер документов должны быть на одном домене и на одном его уровне
Например
CS на домене второго уровня stgr7.ru и имеет FQDN имя = cs.stgr7.ru и
DS на домене второго уровня stgr7.ru и имеет FQDN имя = ds.stgr7.ru
2.8. Переключение Р7-Офис. Сервер Документов на HTTPS вручную
Для перевода Сервера Документов на протокол HTTPS, необходимо иметь сертификат безопасности и закрытый ключ сертификата.
2.8.1. Создаем директорию:
mkdir /var/www/r7-office/Data/ssl
Сертификат безопасности (.crt
) и закрытый ключ сертификата (.key
) необходимо поместить по пути /var/www/r7-office/Data/ssl
:
2.8.2. Скопируйте файл ds-ssl.conf.tmpl в файл ds.conf с помощью следующей команды:
sudo cp -f /etc/r7-office/documentserver/nginx/ds-ssl.conf.tmpl /etc/r7-office/documentserver/nginx/ds.conf
2.8.3. Отредактируйте файл:
sudo nano /etc/r7-office/documentserver/nginx/ds.conf
В разделе HTTPS host изменить строки:
# закомментировать #ssl on ssl_certificate /var/www/r7-office/Data/ssl/имя_файла.crt; ssl_certificate_key /var/www/r7-office/Data/ssl/имя_файла.key;
Необходимо сохранить файл.
2.8.4. Тестирование конфигурации командой:
sudo nginx -t
Получаем вывод команды о успешной тестирования конфигурации:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
2.8.5. Перезапуск nginx:
service nginx restart
Примечание: так же проверьте hostname
для сопоставления домена сертификата и именем машины.
2.8.6 Выполните следующий скрипт для актуализации параметра:
sudo bash /usr/bin/documentserver-update-securelink.sh
После данных действий проверьте доступность сервера в браузере, перейдя по установленному DNS имени в сети.
3. Установка Корпоративный сервер 2024
3.1. Системные требования для Р7 Диск
- Поддерживается только 64-битная архитектура.
- Процессор: рекомендуется от 2 ядер
- Оперативная память: рекомендуется от 8 Гб
- Свободное место на жестком диске: рекомендуется от 50 Гб
- Операционная система из перечня поддерживаемых
- Подключение к сети Интернет
- Опционально: при использовании https требуется сертификат типа wildcard
Минимальные системные требования рассчитаны при одновременной работе до 300 пользователей.
Примечание: При включенной службе firewalld необходимо выполнить настройку для Р7-Диск.
# Добавляем службу: sudo firewall-cmd --permanent --zone=public --add-service=https sudo firewall-cmd --permanent --zone=public --add-service=http # Перезапускаем службу firewalld: sudo firewall-cmd --reload # Проверяем правила для зоны public: sudo firewall-cmd --zone=public --list-all
3.1.1. Добавление репозитория
3.1.1.1. Откройте файл на редактирование
sudo nano /etc/yum.repos.d/r7server.repo
3.1.1.2. Добавьте следующий текст
[r7server] name=r7server baseurl=https://downloads.r7-office.ru/repository/r7-server-yum/ enabled=1 gpgcheck=1 gpgkey=https://download.r7-office.ru/repos/RPM-GPG-KEY-R7-OFFICE.public sslverify=1 username=server password=KwmuQmOzuFIw9wcJsL3zb
3.1.1.3. Обновите список репозиториев с подгружаемыми данными
sudo yum makecache
3.1.2. Скачайте архив Р7-Диск для установки и положите его на ВМ
Рекомендуем, для корректной установки, архив разместите в директории, отличной от /root, например в /mnt или /tmp
3.1.3. Заходим в директорию с архивом
cd /mnt
3.1.4. Распаковываем
unzip RedOS_*.zip
3.1.5. Выполните команду
sed -i "s/dnf install -y postgresql-client/dnf install -y postgresql/" CDDisk/install.sh
3.2. Установка Р7 Диск
3.2.1. Для SSL инсталляции
Для корректной работы Корпоративного сервера обязательно требуется настройка HTTPS. Перед установкой скопируйте crt и key файлы в папку sslcert.
Имя файла должно содержать название домена и расширение. Рекомендуем в .crt указывать всю цепочку сертификатов, домен, промежуточные и корневой.
Например, для домена r7.ru имена файлов должны быть r7.ru.crt и r7.ru.key.
3.2.2. Добавьте права на исполнение скрипту
chmod +x *.sh
3.2.3. Запустите установку
Если установка online
sudo bash ./online_installer.sh
если установка offline
sudo bash ./offline_installer.sh
На запрос пароля для sudo ввести его
3.2.4. В процессе установки:
3.2.4.1. Чистая установка
Если требуется выполнить чистую установку (удалит имеющуюся инсталляцию Р7-Диск и зависимости):
- Выберите Да
3.2.4.2 Установка СУБД на локальную ВМ
Для установки PostgreSQL (при инсталляции всё в одном) на локальный компьютер:
- Выберите Да
Если PostgreSQL будет на другой ВМ, то:
- Выберите Нет
3.2.4.3 Установка Сервера Документов
Сервер Документов находится на другой ВМ, то:
- Выберите Нет
Также, необходимо сделать А-запись в DNS ds.r7.ru, где r7.ru — Ваш домен
Пример добавленной А-записи в DNS у провайдера Selectel указан на скриншоте:
3.2.4.4. URL Сервера документов
Укажите url и протокол, который вы присвоили серверу документов
3.2.4.5. Секрет для DS и формирования JWT
Необходимо ввести секрет (Набор цифр, букв и спецсимволов. Длина от 8 символов) для защищённого доступа Р7-Диска и Сервера Документов.
Можно ввести любое значение, сохранив его.
3.2.4.6. Установка api и web диска
Основное приложения Р7-Диска и веба (статика) сайта.
Для его установки:
- Выбрать Да
3.2.4.7. Тип СУБД Р7-Диск
- Выбрать PostgreSQL
3.2.4.8 Создание БД
Создать ли БД cddisk для работы приложения.
- Выбрать Да
Если создание БД не требуется, и Вы её создали самостоятельно
- Выбрать Нет
3.2.4.9. Хост СУБД
При локальной установке
- выбрать Ок
Если СУБД установлена отдельно,
- указать ip или имя хоста
3.2.4.10. Порт СУБД
По умолчанию 5432 используется. Если Вы настроили другой, указать верный.
3.2.4.11. Пользователь cddisk
Обязательно оставить по умолчанию cddisk
- Нажать Ок
3.2.4.12. Пароль для пользователя cddisk
Ввести (создать) пароль для пользователя cddisk
3.2.4.13. coremachinkey от CS
Изменить на актуальный, если есть Р7-Офис Корпоративный сервер и нажмите ОК, если нет, нажмите Ок без редактирования
3.2.4.14. Настройка https
- Выберите Да
3.2.4.15. Укажите домен
Необходимо указать домен, в котором у Вас созданы записи
Например, при домене r7.ru, необходимо создать запись disk.r7.ru. Пример записи в Selectel ниже
В значении указываем именно r7.ru, не созданную А-запись
3.2.4.16. Префикс Р7-Диск
Указать имя, которое будет открываться в браузере для веб Р7-Диска
Например, если Вы хотите, чтобы открылся Р7-Диск по адресу disk.r7.ru, то указать нужно именно disk, без указания домена.
Также, необходимо сделать соответствующую А-запись в DNS, пример в п.3.2.4.15
3.2.4.17. Префикс Р7-Админ
Указать имя, которое будет открываться в браузере для веб админ панели.
Например, если Вы хотите, чтобы открылся Р7-Админ по адресу admin.r7.ru, то указать нужно именно admin, без указания домена.
Также, необходимо сделать соответствующую А-запись в DNS. Пример ниже.
3.2.4.18. Префикс Р7-Контакты
Указать имя, которое будет открываться в браузере для веб контакты.
Например, если Вы хотите, чтобы открылся Р7-Контакты по адресу contacts.r7.ru, то указать нужно именно contacts, без указания домена.
Также, необходимо сделать соответствующую А-запись в DNS.
3.2.4.19. Префикс Р7-Проекты
3.2.4.20. Префикс Р7-Почта
Указать имя, которое будет открываться в браузере для веб клиенты почты.
Например, если Вы хотите, чтобы открылся Р7-Почта по адресу mail.r7.ru, то указать нужно именно mail, без указания домена.
Также, необходимо сделать соответствующую А-запись в DNS. Пример ниже
3.2.4.21. Префикс Р7-Календарь
Указать имя, которое будет открываться в браузере для веб календаря.
Например, если Вы хотите, чтобы открылся Р7-Календарь по адресу calendar.r7.ru, то указать нужно именно calendar, без указания домена.
Также, необходимо сделать соответствующую А-запись в DNS. Пример ниже
3.2.4.22. Префикс Р7-документ сервер
Указать имя, которое будет открываться в браузере для документ сервера.
Например, если Вы хотите, чтобы открылся Р7-Документ сервер по адресу ds.r7.ru, то указать нужно именно ds, без указания домена.
Также, необходимо сделать соответствующую А-запись в DNS.
3.2.4.23. Установка Р7 Почтовый сервер
Рекомендуем, перед продолжением инсталляции, прописать записи в DNS, для работы почтового сервера.
Необходимо добавить А-запись (mx.your-domain.ru) и обратную запись, а также запись MX и TXT v=spf1 +mx ~all
Пример:
MX r7.ru TTL Приоритет
mx.r7.ru 300 10
TXT r7.ru TTL
v=spf1+mx~all 300
A mx.vr7.ru TTL
33.195.16.110 300
Если Вы выбрали установки без HTTPS, то, после инсталляции, почтовый сервер работать не будет.
Для его работы необходимо положить сертификаты по пути:
smtpd_tls_cert_file = /etc/nginx/ssl/r7.ru.crt smtpd_tls_key_file = /etc/nginx/ssl/r7.ru.key
Где, r7.ru — имя Вашего домена, который ввели в п.3.2.4.15
Если требуется установка
- Выберите Да
Если не требуется установка
- Выберите Нет
3.2.4.24. Выберите базу данных
- Выбираем PostgreSQL
3.2.4.25. Введите MX запись
Укажите имя MX записи, которая сделана или будет сделана в DNS, без домена
Если MX запись выглядит, как mx.r7.ru, то ввести необходимо просто mx
3.2.4.26. Укажите ip адрес
Укажите внешний ip адрес сервера, для корректной работы почтового сервера.
Если указать приватный внутренний ip, то почта будет работать только внутри сети организации.
3.2.4.27. Пароль postfix для PostgreSQL
Укажите пароль для пользователя postfix, для действий в БД.
3.2.4.28. Установка SpamAssassin
Если требуется установка
- Выберите 1
Если не требуется установка
- Выберите 2
3.2.4.29. Установка OpenDKIM
Если требуется установка
- Выберите Да
Если не требуется установка
- Выберите Нет
После инсталляции в консоли будет предложено сделать TXT запись
3.2.4.30. Перезагружаем систему
Для корректной работы Р7-Диска, требуется перезагрузка.
- Ввести Да
- Ввести Нет, если требуется Вам выполнить дополнительные действия до перезагрузки
3.2.4.31. По завершении почтовый сервер можно добавить для интеграции следующим образом:
https://admin.example.ru/filials/1/mail-servers
Первоначальный данные для авторизации:
Логин: superadmin
Пароль: superadmin
При публикации портала в публичную сеть потребуется изменить пароли для указанных учетных данных!
Укажите настройки почтового сервера, для интеграции установите чек-бокс, добавьте значение в поле ключ:
Ключ можно найти в консоли после завершения инсталляции или в логе установки:
3.3. Интеграция Корпоративного сервера 2024 с вынесенным сервером документов
3.3.1. На сервере КС24 в БД (postgresql) выведите информацию:
sudo -i -u postgres psql cddisk (или psql -U postgres -d cddisk) SELECT * FROM public."MessageSettings" WHERE "Key" = 'documentServerUrl'; SELECT * FROM public."MessageSettings" WHERE "Key" = 'apiUrlInternal'; SELECT * FROM public."MessageSettings" WHERE "Key" = 'files.docservice.secret'; - где потребуется сохранить значение files.docservice.secret
Далее обновите на новые значения командами:
UPDATE public."MessageSettings" SET "Value"='https://ds.r7o.ru' WHERE "Key" = 'documentServerUrl'; -- указав вместо https://ds.r7o.ru адрес вынесенного сервера документов (если адрес на вынесенном ДС одноименный - нет необходимости менять), для примера, указан в запросе - Value"='https://ds.r7o.ru' UPDATE public."MessageSettings" SET "Value"='https://disk.r7o.ru' WHERE "Key" = 'apiUrlInternal'; -- указав вместо https://disk.r7o.ru полный адрес КС24
Для выхода из БД введите:
\q
3.3.2. На вынесенном сервере документов укажите секрет из запроса
по значению ключа «Key» = ‘files.docservice.secret’, в файле:/etc/r7-office/documentserver/local.json
Пример:
"secret": { "inbox": { "string": " " // в кавычках указать ключ из селекта п. 3, по значению ключа "Key" = 'files.docservice.secret' }, "outbox": { "string": " " // в кавычках указать ключ из селекта п. 3, по значению ключа "Key" = 'files.docservice.secret' }, "session": { "string": " " // в кавычках указать ключ из селекта п. 3, по значению ключа "Key" = 'files.docservice.secret' },
В /etc/hosts
вынесенного Сервера документа укажите IP-адрес для КС 2024 и ДС, например:
192.168.26.223 disk.r7o.ru 127.0.0.1 ds.r7o.ru
Перезапустите сервис DS (на вынесенном сервере документов) и проверьте статусы сервисов:
systemctl restart ds-* --all systemctl status ds-*
3.3.3. Перезапустите сервисы на сервере КС24:
В /etc/hosts
КС2024 измените запись ds в файле. Указать IP-адрес для Сервера документов, например:
192.168.26.116 ds.r7o.ru
Перезапустите сервисы на сервере КС24:
supervisorctl restart all
Проверьте открытие документов.