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

402 lines
10 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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`
```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`
```json
{
"services": {
"CoAuthoring": {
"utils": {
"rejectUnauthorized": false Игнорировать SSL ошибки (у нас включено!)
}
}
}
}
```
**Зачем:** Если callback URL имеет самоподписанный сертификат.
---
### 3. **Фильтрация IP адресов**
**Файл:** `local-production-linux.json`
```json
{
"services": {
"CoAuthoring": {
"request-filtering-agent": {
"allowPrivateIPAddress": true, Разрешить приватные IP (у нас включено!)
"allowMetaIPAddress": true Разрешить мета-адреса
}
}
}
}
```
**Зачем:** Чтобы OnlyOffice мог вызывать callback на локальные IP (147.45.146.17).
---
### 4. **База данных (PostgreSQL)**
**Файл:** `local.json`
```json
{
"services": {
"CoAuthoring": {
"sql": {
"type": "postgres",
"dbHost": "localhost",
"dbPort": "5432",
"dbName": "onlyoffice",
"dbUser": "onlyoffice",
"dbPass": "onlyoffice"
}
}
}
}
```
**Сейчас:** Используется встроенная PostgreSQL в контейнере.
---
### 5. **Лимиты и производительность**
```json
{
"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`
```json
{
"wopi": {
"enable": false WOPI отключен (не нужен нам)
}
}
```
**Зачем:** Для интеграции с Office Online, SharePoint и т.д.
---
### 7. **Логирование**
**Файл:** `/etc/onlyoffice/documentserver/log4js/production.json`
```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` (быстро)
```bash
# Редактировать local.json
docker exec -it onlyoffice-standalone nano /etc/onlyoffice/documentserver/local.json
# Перезапустить OnlyOffice
docker restart onlyoffice-standalone
```
### Вариант 2: Создать новый конфиг файл (рекомендуется)
```bash
# Создать кастомный конфиг
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`
---
## ⚙️ Полезные команды
### Просмотр текущих настроек:
```bash
# Основной конфиг
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
```
### Редактирование:
```bash
# Редактировать через 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:
```bash
docker exec onlyoffice-standalone cat /etc/onlyoffice/documentserver/local.json | python3 -m json.tool
# Если ошибка - JSON невалидный!
```
### Перезапуск после изменений:
```bash
docker restart onlyoffice-standalone
sleep 20 # Подождать полного запуска
docker logs --tail 20 onlyoffice-standalone
```
### Просмотр логов:
```bash
# Логи 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 (обязательно!)
```json
{
"services": {
"CoAuthoring": {
"token": {
"enable": {
"request": {
"inbox": true,
"outbox": true
}
}
},
"secret": {
"inbox": {
"string": "СГЕНЕРИРУЙ_СЛУЧАЙНЫЙ_КЛЮЧ_64_СИМВОЛА"
},
"outbox": {
"string": "СГЕНЕРИРУЙ_СЛУЧАЙНЫЙ_КЛЮЧ_64_СИМВОЛА"
}
}
}
}
}
```
### 2. Увеличить воркеры (если много пользователей)
```json
{
"services": {
"CoAuthoring": {
"server": {
"workersPerCpu": 2 По умолчанию 1, можно 2-4
}
}
}
}
```
### 3. Увеличить лимиты файлов
```json
{
"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:
```bash
curl https://office.clientright.ru:9443/healthcheck
# Должен вернуть: true
```
### Версия:
```bash
docker exec onlyoffice-standalone cat /var/www/onlyoffice/documentserver/server/DocService/package.json | grep version
# Сейчас: 9.0.4
```
### Статистика:
```bash
docker stats onlyoffice-standalone
# Показывает: CPU, RAM, Network
```
---
## 💡 Советы
1. **Всегда делай бэкап конфигов перед изменениями:**
```bash
docker exec onlyoffice-standalone cp /etc/onlyoffice/documentserver/local.json /etc/onlyoffice/documentserver/local.json.backup
```
2. **Проверяй синтаксис JSON после редактирования:**
```bash
cat local.json | python3 -m json.tool
```
3. **Читай логи после перезапуска:**
```bash
docker logs -f onlyoffice-standalone
```
4. **Для продакшна - обязательно включи JWT!** Иначе кто угодно может использовать твой OnlyOffice сервер!
---
**Если нужен веб-интерфейс - смотри в сторону:**
- **ONLYOFFICE Workspace** (платный, но с полной админ-панелью)
- **Nextcloud + OnlyOffice** (есть UI в Nextcloud)
- **ownCloud + OnlyOffice** (есть UI в ownCloud)
**У нас:** Standalone Document Server (нет UI, но работает быстро!)