- Добавлен s3Path в callbackUrl для сохранения в оригинальный файл - Исправлено сохранение: теперь файлы обновляются в S3 автоматически - Отключена проверка SSL в OnlyOffice (rejectUnauthorized: false) - Разрешены callback на приватные IP адреса - Добавлено логирование callback в onlyoffice_callback.log - Восстановлены оптимальные настройки индексации Nextcloud - filesystem_check_changes = 0 для S3 External Storage - Redis event system работает для автоматической индексации Документация: - ИСПРАВЛЕНИЕ_СОХРАНЕНИЯ_ONLYOFFICE_01_11_2025.md - ИСПРАВЛЕНИЕ_SSL_ONLYOFFICE_01_11_2025.md - ВОССТАНОВЛЕНИЕ_ОПТИМИЗАЦИИ_01_11_2025.md - ONLYOFFICE_НАСТРОЙКИ.md - ТЕСТИРОВАНИЕ_СОХРАНЕНИЯ_ONLYOFFICE.md
10 KiB
OnlyOffice Document Server - Настройки
Важно: У OnlyOffice Community Edition НЕТ веб-интерфейса для настроек!
Все настраивается через JSON конфиг файлы.
📂 Конфигурационные файлы
Расположение:
/etc/onlyoffice/documentserver/
Основные файлы:
default.json- базовые настройки по умолчанию (не трогать!)production-linux.json- настройки для production (автоматически)local.json- локальные переопределения (редактируем этот!)local-production-linux.json- дополнительные кастомные настройки
Приоритет: local-*.json > local.json > production-*.json > default.json
🎛️ Что можно настроить
1. JWT Token (безопасность)
Файл: local.json
{
"services": {
"CoAuthoring": {
"token": {
"enable": {
"request": {
"inbox": false, ← Проверять JWT в запросах от браузера
"outbox": false ← Добавлять JWT в callback запросы
},
"browser": false ← Требовать JWT от браузера
}
},
"secret": {
"inbox": {
"string": "ВАШ_СЕКРЕТНЫЙ_КЛЮЧ" ← Секрет для JWT
}
}
}
}
}
Сейчас: JWT отключен (false) - любой может использовать!
Для продакшна: Включить JWT (true) + установить секрет!
2. SSL/TLS для callback
Файл: local-production-linux.json
{
"services": {
"CoAuthoring": {
"utils": {
"rejectUnauthorized": false ← Игнорировать SSL ошибки (у нас включено!)
}
}
}
}
Зачем: Если callback URL имеет самоподписанный сертификат.
3. Фильтрация IP адресов
Файл: local-production-linux.json
{
"services": {
"CoAuthoring": {
"request-filtering-agent": {
"allowPrivateIPAddress": true, ← Разрешить приватные IP (у нас включено!)
"allowMetaIPAddress": true ← Разрешить мета-адреса
}
}
}
}
Зачем: Чтобы OnlyOffice мог вызывать callback на локальные IP (147.45.146.17).
4. База данных (PostgreSQL)
Файл: local.json
{
"services": {
"CoAuthoring": {
"sql": {
"type": "postgres",
"dbHost": "localhost",
"dbPort": "5432",
"dbName": "onlyoffice",
"dbUser": "onlyoffice",
"dbPass": "onlyoffice"
}
}
}
}
Сейчас: Используется встроенная PostgreSQL в контейнере.
5. Лимиты и производительность
{
"services": {
"CoAuthoring": {
"server": {
"port": 8000,
"workersPerCpu": 1, ← Воркеров на CPU (сейчас: 1)
"limits_tempfile_upload": 104857600, ← Макс размер загружаемого файла (100MB)
"limits_image_size": 26214400, ← Макс размер изображения (25MB)
"limits_image_download_timeout": 120000 ← Таймаут загрузки (2 мин)
}
}
}
}
6. WOPI (интеграция с Microsoft)
Файл: local.json
{
"wopi": {
"enable": false ← WOPI отключен (не нужен нам)
}
}
Зачем: Для интеграции с Office Online, SharePoint и т.д.
7. Логирование
Файл: /etc/onlyoffice/documentserver/log4js/production.json
{
"appenders": {
"file": {
"type": "file",
"filename": "/var/log/onlyoffice/documentserver/docservice/out.log",
"maxLogSize": 10485760, ← Макс размер лога (10MB)
"backups": 3 ← Количество бэкапов
}
},
"levels": {
"nodeJS": "WARN" ← Уровень логирования (DEBUG, INFO, WARN, ERROR)
}
}
🔧 Как редактировать настройки
Вариант 1: Через docker exec (быстро)
# Редактировать local.json
docker exec -it onlyoffice-standalone nano /etc/onlyoffice/documentserver/local.json
# Перезапустить OnlyOffice
docker restart onlyoffice-standalone
Вариант 2: Создать новый конфиг файл (рекомендуется)
# Создать кастомный конфиг
docker exec onlyoffice-standalone bash -c 'cat > /etc/onlyoffice/documentserver/local-production-linux.json << "EOF"
{
"services": {
"CoAuthoring": {
"server": {
"workersPerCpu": 2 ← Увеличить воркеры
},
"utils": {
"rejectUnauthorized": false
}
}
}
}
EOF
'
# Перезапустить
docker restart onlyoffice-standalone
📊 Текущие настройки (у нас)
local.json:
- ✅ JWT отключен (
false) - ✅ PostgreSQL на
localhost:5432 - ✅ RabbitMQ на
localhost - ✅ WOPI отключен
local-production-linux.json:
- ✅
rejectUnauthorized: false- игнорируем SSL ошибки - ✅
allowPrivateIPAddress: true- разрешаем callback на 147.45.146.17 - ✅
allowMetaIPAddress: true
⚙️ Полезные команды
Просмотр текущих настроек:
# Основной конфиг
docker exec onlyoffice-standalone cat /etc/onlyoffice/documentserver/local.json | python3 -m json.tool
# Наш кастомный конфиг
docker exec onlyoffice-standalone cat /etc/onlyoffice/documentserver/local-production-linux.json | python3 -m json.tool
# Все конфиги
docker exec onlyoffice-standalone find /etc/onlyoffice/documentserver -name "*.json" -type f
Редактирование:
# Редактировать через nano
docker exec -it onlyoffice-standalone nano /etc/onlyoffice/documentserver/local.json
# Или через vi
docker exec -it onlyoffice-standalone vi /etc/onlyoffice/documentserver/local.json
Проверка синтаксиса JSON:
docker exec onlyoffice-standalone cat /etc/onlyoffice/documentserver/local.json | python3 -m json.tool
# Если ошибка - JSON невалидный!
Перезапуск после изменений:
docker restart onlyoffice-standalone
sleep 20 # Подождать полного запуска
docker logs --tail 20 onlyoffice-standalone
Просмотр логов:
# Логи Document Server
docker exec onlyoffice-standalone tail -100 /var/log/onlyoffice/documentserver/docservice/out.log
# Логи ошибок
docker exec onlyoffice-standalone tail -100 /var/log/onlyoffice/documentserver/docservice/err.log
# Логи nginx
docker exec onlyoffice-standalone tail -100 /var/log/onlyoffice/documentserver/nginx.error.log
🎯 Важные параметры для продакшна
1. Включить JWT (обязательно!)
{
"services": {
"CoAuthoring": {
"token": {
"enable": {
"request": {
"inbox": true,
"outbox": true
}
}
},
"secret": {
"inbox": {
"string": "СГЕНЕРИРУЙ_СЛУЧАЙНЫЙ_КЛЮЧ_64_СИМВОЛА"
},
"outbox": {
"string": "СГЕНЕРИРУЙ_СЛУЧАЙНЫЙ_КЛЮЧ_64_СИМВОЛА"
}
}
}
}
}
2. Увеличить воркеры (если много пользователей)
{
"services": {
"CoAuthoring": {
"server": {
"workersPerCpu": 2 ← По умолчанию 1, можно 2-4
}
}
}
}
3. Увеличить лимиты файлов
{
"services": {
"CoAuthoring": {
"server": {
"limits_tempfile_upload": 209715200 ← 200MB вместо 100MB
}
}
}
}
📚 Официальная документация
Ссылки:
- Конфигурация: https://api.onlyoffice.com/editors/config/
- JWT: https://api.onlyoffice.com/editors/signature/
- Docker: https://github.com/ONLYOFFICE/Docker-DocumentServer
🔍 Мониторинг OnlyOffice
Healthcheck:
curl https://office.clientright.ru:9443/healthcheck
# Должен вернуть: true
Версия:
docker exec onlyoffice-standalone cat /var/www/onlyoffice/documentserver/server/DocService/package.json | grep version
# Сейчас: 9.0.4
Статистика:
docker stats onlyoffice-standalone
# Показывает: CPU, RAM, Network
💡 Советы
-
Всегда делай бэкап конфигов перед изменениями:
docker exec onlyoffice-standalone cp /etc/onlyoffice/documentserver/local.json /etc/onlyoffice/documentserver/local.json.backup -
Проверяй синтаксис JSON после редактирования:
cat local.json | python3 -m json.tool -
Читай логи после перезапуска:
docker logs -f onlyoffice-standalone -
Для продакшна - обязательно включи JWT! Иначе кто угодно может использовать твой OnlyOffice сервер!
Если нужен веб-интерфейс - смотри в сторону:
- ONLYOFFICE Workspace (платный, но с полной админ-панелью)
- Nextcloud + OnlyOffice (есть UI в Nextcloud)
- ownCloud + OnlyOffice (есть UI в ownCloud)
У нас: Standalone Document Server (нет UI, но работает быстро!)