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
This commit is contained in:
Fedor
2025-11-01 10:32:51 +03:00
parent 3e8c3968a0
commit 3a1635ec4d
7 changed files with 1563 additions and 9 deletions

View File

@@ -0,0 +1,266 @@
# Восстановление оптимальных настроек индексации Nextcloud
**Дата:** 1 ноября 2025
**Проблема:** Вчера вечером настройки были изменены, индексация стала медленной
**Решение:** Восстановлены оптимальные настройки
---
## 📊 Что было изменено вчера
### До изменений (оптимально):
```json
{
"filesystem_check_changes": 0, // S3 не сканируется автоматически
"encrypt": false // Шифрование отключено
}
```
### После изменений (медленно):
```json
{
"filesystem_check_changes": 1, // S3 сканируется при каждом доступе ❌
"encrypt": false
}
```
**Последствия:**
- 🐌 Nextcloud сканировал всё S3 хранилище при доступе к папкам
- 📂 24,000+ файлов → медленная загрузка
- ⚡ Как до оптимизации 31 октября
---
## ✅ Что сделано сегодня
### 1. Восстановлена оптимальная настройка S3
**Команда:**
```bash
docker exec -u www-data nextcloud-fresh php occ files_external:option 1 filesystem_check_changes 0
```
**Результат:**
```json
{
"filesystem_check_changes": 0, // ✅ Не сканировать автоматически
"encrypt": false // ✅ Шифрование отключено
}
```
---
### 2. Проверена работа Redis Event System
**Статус сервиса:**
```bash
● nextcloud-cache-updater.service
Active: active (running)
PID: 6697, 6700
```
**Последние обработанные события:**
```
[2025-11-01T04:47:25.960Z] 📥 Событие:
Type: file_created
Source: s3_monitor
Path: clientright/0/1761972417968.pdf
🔄 Обновление кеша Nextcloud...
✅ Кеш обновлён
✅ Родительская папка обновлена
```
**Вывод:** Система работает корректно! ✅
---
## 🎯 Итоговая конфигурация
### Nextcloud config.php:
```php
'filesystem_check_changes' => 1, // Глобально: сканировать при первом доступе
'memcache.distributed' => '\\OC\\Memcache\\Redis',
'memcache.local' => '\\OC\\Memcache\\APCu',
'memcache.locking' => '\\OC\\Memcache\\Redis',
```
### External Storage (S3):
```json
{
"filesystem_check_changes": 0, // ✅ НЕ сканировать S3 автоматически
"encrypt": false, // ✅ Шифрование отключено
"enable_sharing": false,
"previews": true,
"readonly": false
}
```
### Redis Event System:
```javascript
// Сервис: nextcloud-cache-updater.service
// Статус: active (running) ✅
// Канал: crm:file:events
// Container: nextcloud-fresh
```
---
## 🔄 Схема работы индексации
### Для файлов через Nextcloud UI:
```
Пользователь → Nextcloud UI → S3
Nextcloud автоматически обновляет oc_filecache ✅
```
### Для файлов через CRM:
```
CRM → S3 напрямую
CRM публикует событие в Redis (crm:file:events)
nextcloud-cache-updater.js слушает канал
При file_created → occ files:scan --path="/admin/files/crm/..."
Nextcloud обновляет oc_filecache ✅
```
---
## 📈 Статистика
| Параметр | Значение |
|----------|----------|
| **Файлов в кеше** | 31,815 |
| **Storage ID** | 4 (Amazon S3) |
| **Redis CRM** | 147.45.146.17:6379 ✅ |
| **Redis Nextcloud** | nextcloud-redis:6379 ✅ |
| **Сервис cache updater** | active (running) ✅ |
---
## ⚡ Преимущества текущей конфигурации
### ✅ Быстро:
- S3 не сканируется автоматически
- Нет задержек при открытии папок
- Прямой доступ к файлам через кеш
### ✅ Автоматически:
- CRM публикует события в Redis
- Cache updater обновляет кеш по событиям
- Только для конкретных файлов (не вся папка)
### ✅ Надёжно:
- Systemd автозапуск сервиса
- Логирование всех событий
- Graceful shutdown при остановке
---
## 🔧 Команды для проверки
### 1. Проверка настроек S3:
```bash
docker exec -u www-data nextcloud-fresh php occ files_external:list --output=json | python3 -m json.tool
```
### 2. Статус сервиса:
```bash
sudo systemctl status nextcloud-cache-updater
```
### 3. Просмотр логов:
```bash
tail -f /var/www/fastuser/data/www/crm.clientright.ru/crm_extensions/file_storage/nextcloud_cache_updater.log
```
### 4. Размер кеша:
```bash
docker exec nextcloud-db-fresh mariadb -u nextcloud -pnextcloud_password nextcloud \
-e "SELECT COUNT(*) FROM oc_filecache WHERE storage = 4;"
```
### 5. Проверка Redis:
```bash
# CRM Redis
redis-cli -h 147.45.146.17 -p 6379 -a 'CRM_Redis_Pass_2025_Secure!' PING
# Nextcloud Redis
docker exec nextcloud-redis redis-cli -a 'Nextcloud_Redis_Pass_2025!' PING
```
---
## ⚠️ Что НЕ ДЕЛАТЬ
### ❌ НИКОГДА не запускать:
```bash
redis-cli FLUSHALL # Удаляет ВСЕ данные из Redis!
redis-cli FLUSHDB # Удаляет текущую БД Redis!
```
**Почему:**
- Удаляется весь файловый кеш Nextcloud
- Nextcloud начинает пересканировать всё S3 хранилище
- Система становится медленной
- Требуется долгое восстановление
### ❌ НЕ менять вручную:
```bash
# НЕ менять filesystem_check_changes для S3 через UI!
# Только через команду:
docker exec -u www-data nextcloud-fresh php occ files_external:option 1 filesystem_check_changes 0
```
---
## 📝 Файлы системы
### Основные компоненты:
1. **`/var/www/fastuser/data/www/crm.clientright.ru/crm_extensions/file_storage/nextcloud_cache_updater.js`**
- Node.js скрипт для обработки Redis событий
- Обновляет кеш Nextcloud по событиям из CRM
2. **`/etc/systemd/system/nextcloud-cache-updater.service`**
- Systemd сервис для автозапуска
- Перезапуск при сбоях
3. **`/var/www/fastuser/data/www/crm.clientright.ru/crm_extensions/file_storage/nextcloud_cache_updater.log`**
- Лог всех обработанных событий
- Для отладки и мониторинга
---
## 📚 Связанные документы
1. **`NEXTCLOUD_ОПТИМИЗАЦИЯ_31_10_2025.md`** - первоначальная оптимизация
2. **`АВТОМАТИЧЕСКОЕ_ОБНОВЛЕНИЕ_КЕША_NEXTCLOUD.md`** - описание Redis event system
3. **`NEXTCLOUD_ЛАЙФХАКИ_УСКОРЕНИЯ.md`** - 20 способов ускорения
4. **ОГ_СЕССИИ_31_10_2025_ИСПРАВЛЕНИЕ_ОТКРЫТИЯ_ФАЙЛОВ.md`** - исправление открытия файлов
---
## 🎯 Статус
**Время завершения:** 09:30 (01.11.2025)
**Статус:****ВОССТАНОВЛЕНО**
### Что работает:
- ✅ S3 не сканируется автоматически (быстро)
- ✅ Redis event system обрабатывает события
- ✅ Кеш обновляется автоматически
- ✅ 31,815 файлов проиндексировано
-Оба Redis работают
### Производительность:
- ⚡ Быстро как Google Drive
- 🔄 Автоматическая индексация
- 📊 Оптимальное использование ресурсов
---
**Конец отчёта**