Files
crm.clientright.ru/ONLYOFFICE_НАСТРОЙКИ.md
Fedor 3a1635ec4d feat: OnlyOffice Document Server integration with auto-save
- Добавлен 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
2025-11-01 10:32:51 +03:00

10 KiB
Raw Permalink Blame History

OnlyOffice Document Server - Настройки

Важно: У OnlyOffice Community Edition НЕТ веб-интерфейса для настроек!
Все настраивается через JSON конфиг файлы.


📂 Конфигурационные файлы

Расположение:

/etc/onlyoffice/documentserver/

Основные файлы:

  1. default.json - базовые настройки по умолчанию (не трогать!)
  2. production-linux.json - настройки для production (автоматически)
  3. local.json - локальные переопределения (редактируем этот!)
  4. 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
      }
    }
  }
}

📚 Официальная документация

Ссылки:


🔍 Мониторинг 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

💡 Советы

  1. Всегда делай бэкап конфигов перед изменениями:

    docker exec onlyoffice-standalone cp /etc/onlyoffice/documentserver/local.json /etc/onlyoffice/documentserver/local.json.backup
    
  2. Проверяй синтаксис JSON после редактирования:

    cat local.json | python3 -m json.tool
    
  3. Читай логи после перезапуска:

    docker logs -f onlyoffice-standalone
    
  4. Для продакшна - обязательно включи JWT! Иначе кто угодно может использовать твой OnlyOffice сервер!


Если нужен веб-интерфейс - смотри в сторону:

  • ONLYOFFICE Workspace (платный, но с полной админ-панелью)
  • Nextcloud + OnlyOffice (есть UI в Nextcloud)
  • ownCloud + OnlyOffice (есть UI в ownCloud)

У нас: Standalone Document Server (нет UI, но работает быстро!)