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