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:
266
ВОССТАНОВЛЕНИЕ_ОПТИМИЗАЦИИ_01_11_2025.md
Normal file
266
ВОССТАНОВЛЕНИЕ_ОПТИМИЗАЦИИ_01_11_2025.md
Normal 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
|
||||
- 🔄 Автоматическая индексация
|
||||
- 📊 Оптимальное использование ресурсов
|
||||
|
||||
---
|
||||
|
||||
**Конец отчёта**
|
||||
|
||||
Reference in New Issue
Block a user