402 lines
10 KiB
Markdown
402 lines
10 KiB
Markdown
|
|
# 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, но работает быстро!)
|
|||
|
|
|