# Восстановление оптимальных настроек индексации 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 - 🔄 Автоматическая индексация - 📊 Оптимальное использование ресурсов --- **Конец отчёта**