Совместная работа с документами в закрытом контуре — задача, с которой сталкиваются многие учреждения. Nextcloud обеспечивает хранение файлов и управление доступом, но без встроенного редактора пользователи вынуждены скачивать документы, править их локально и загружать обратно. Euro-Office решает эту проблему: он открывает и редактирует форматы Word, Excel и PowerPoint прямо в браузере, поддерживает совместную работу в реальном времени и разворачивается полностью внутри вашей инфраструктуры.

💡 Присоединяйтесь к нашим сообществам!

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

Ранее мы уже установили Nextcloud и настроили аутентификацию через Samba AD. Теперь добавим к нему Euro-Office Document Server в Docker-контейнере на Debian 13 и свяжем их через коннектор Nextcloud Office. Оба сервиса будут опубликованы через Nginx Proxy Manager с терминацией HTTPS и поддержкой WebSocket, а защита обмена между ними обеспечивается общим JWT-ключом.

Euro-Office — это независимый офисный пакет с открытым исходным кодом, созданный консорциумом европейских технологических компаний (Nextcloud, IONOS, XWiki, OpenProject и другими) как «суверенная» альтернатива Microsoft Office и Google Docs. Он представляет собой форк серверной части OnlyOffice DocumentServer и предоставляет веб-редакторы для документов, таблиц, презентаций и PDF.

Архитектура решения

В схеме участвуют два ключевых компонента:

  • Euro-Office Document Server — разворачивается на отдельном сервере Debian 13 и отвечает за отрисовку, редактирование и совместную работу с документами. Работает в Docker-контейнере, наружу отдаёт HTTP-сервис.
  • Коннектор Nextcloud Office — устанавливается в существующий экземпляр Nextcloud и служит мостом между Nextcloud и Euro-Office. Nextcloud отвечает за аутентификацию пользователей и хранение файлов, Euro-Office — за редактирование.

Оба компонента общаются по HTTPS и используют общий JWT-ключ для аутентификации.

Исходные данные

Компонент Адрес Описание
Euro-Office Server office.itsch.ru (192.168.0.54) Debian 13, работает в Docker
Nextcloud nextcloud.itsch.ru (192.168.0.23) Существующий экземпляр, доступ по HTTPS
Nginx Proxy Manager 192.168.0.22 Терминация HTTPS и проксирование WebSocket для Euro-Office

Euro-Office и Nextcloud будут опубликованы через Nginx Proxy Manager по HTTPS.

Архитектура интеграции Nextcloud Office с Euro-Office

Рисунок 1. Архитектура интеграции Nextcloud с Euro-Office Document Server

1. Установка Euro-Office Document Server

1.1. Требования к системе

Минимальные требования Euro-Office — 4 ГБ оперативной памяти и 10 ГБ дискового пространства; для многопользовательской работы рекомендуется 8 ГБ. Проверим ресурсы командой:

free -h && df -h /
1.2. Установка Docker

В официальном репозитории Debian 13 присутствует Docker. Выполняем:

sudo apt update
sudo apt install -y docker.io docker-compose
sudo systemctl enable --now docker

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

sudo usermod -aG docker $USER
newgrp docker

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

docker --version
1.3. Генерация JWT-ключа

JWT-ключ используется для защищённого обмена между Euro-Office и Nextcloud. На обоих концах должно быть задано одно и то же значение. Сгенерируем надёжный случайный ключ:

openssl rand -hex 32

Сохраните полученную строку — она понадобится на следующих шагах.

1.4. Запуск контейнера Euro-Office

Выполните команду запуска Euro-Office:

docker run -d \
  --name euro-office \
  --restart=unless-stopped \
  -p 8080:80 \
  -e JWT_ENABLED=true \
  -e JWT_SECRET=<ваш_JWT_ключ> \
  -e USE_UNAUTHORIZED_STORAGE=true \
  ghcr.io/euro-office/documentserver:latest

Пояснения к параметрам:

  • -p 8080:80 — HTTP-сервис контейнера публикуется на порту 8080 хоста;
  • JWT_ENABLED=true — включает JWT-аутентификацию;
  • JWT_SECRET — подставьте ключ, сгенерированный в п. 1.3;
  • USE_UNAUTHORIZED_STORAGE=true — позволяет Document Server игнорировать проблемы с SSL-сертификатом хранилища (Nextcloud). Актуально для среды с самоподписанными сертификатами.

После запуска контейнеру требуется 90–120 секунд на инициализацию. Проверим готовность сервиса:

curl http://127.0.0.1:8080/healthcheck

Ответ true означает, что сервис работает.

1.5. Проверка установки

Убедимся, что все внутренние сервисы запущены:

docker exec -it euro-office supervisorctl status

Ожидаем увидеть ds:docservice, ds:converter, ds:metrics в состоянии RUNNING.

2. Настройка Nginx Proxy Manager

В продуктивной среде Euro-Office должен быть доступен по HTTPS, иначе при интеграции с Nextcloud возникнут ошибки смешанного содержимого.

2.1. Создание прокси-хоста

Переходим в веб-интерфейс Nginx Proxy Manager, переходим в Hosts → Proxy Hosts и нажимаем Add Proxy Host. Заполняем поля:

Поле Значение
Domain Names office.itsch.ru
Scheme http
Forward Hostname/IP 192.168.0.54
Forward Port 8080
2.2. Включаем поддержку WebSocket

NGINX Proxy Manager. Details

Рисунок 2. Настройка прокси-хоста во вкладке Details

Функция совместного редактирования в Euro-Office опирается на WebSocket. Во вкладке Advanced прокси-хоста убедитесь, что добавлена следующая конфигурация:

proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_http_version 1.1;

NGINX Proxy Manager. Advanced

Рисунок 3. Дополнительные настройки WebSocket во вкладке Advanced

2.3. Настройка SSL

Во вкладке SSL:

  • выберите или выпустите SSL-сертификат (самоподписанный или Let's Encrypt);
  • включите Force SSL;
  • опционально включите HTTP/2 Support.

NGINX Proxy Manager. SSL

Рисунок 4. Настройка SSL-сертификата и Force SSL

Сохраните настройки. Euro-Office должен стать доступен по адресу https://office.itsch.ru.

3. Установка коннектора в Nextcloud

3.1. Устанавливаем приложение Euro-Office

Входим в Nextcloud как администратор, открываем раздел Приложения (Apps), находим Euro-Office и нажимаем «Скачать и включить».

Установка приложения Euro-Office в Nextcloud

Рисунок 5. Приложение Euro-Office в магазине приложений Nextcloud

Либо устанавливаем через командную строку:

sudo -E -u www-data php occ app:install eurooffice
3.2. Настройка параметров подключения

Переходим в Настройки → Администрирование → Nextcloud Office и заполняем:

  • Адрес Nextcloud Office (Document Server URL): https://office.itsch.ru
  • Секретный ключ (Secret key): указываем JWT-ключ, сгенерированный в п. 1.3.

Если Nextcloud и Euro-Office используют самоподписанные сертификаты и проверка не проходит, можно временно включить опцию Отключить проверку сертификата (небезопасно). Однако в продуктивной среде рекомендуется добавить сертификат в доверенное хранилище, а не отключать проверку навсегда.

Нажимаем «Сохранить». Вверху страницы должен появиться зелёный индикатор, означающий успешное подключение.

Настройка подключения Nextcloud Office

Рисунок 6. Настройка подключения к Euro-Office Document Server

3.3. Проверка интеграции

Открываем в Nextcloud любой файл .docx, .xlsx или .pptx. При корректной настройке файл откроется в редакторе Euro-Office, а не будет предложен к скачиванию или выдаст ошибку.

Проверка работоспособности интеграции

Рисунок 7. Документ, открытый в редакторе Euro-Office

Мобильная версия:

Проверка работоспособности на мобильном устройстве

Рисунок 8. Работа с документом в мобильном приложении Nextcloud

Управление сервисом

Перезапуск контейнера Euro-Office:

docker restart euro-office

Просмотр логов:

docker logs --tail=100 euro-office

Обновление до последней версии:

docker pull ghcr.io/euro-office/documentserver:latest
docker stop euro-office && docker rm euro-office

После чего повторно выполняем команду docker run из п. 1.4.

Заключение

Выполнив описанные шаги, мы получаем полноценную бесплатную платформу для совместной работы с документами: Nextcloud отвечает за пользователей и файлы, Euro-Office обеспечивает редактирование, а все данные остаются в нашей собственной инфраструктуре.

Источники

🚀 Понравилась статья?

Подписывайтесь на наши соцсети, чтобы не пропустить новые полезные материалы!

Предыдущая запись