Files
crm.clientright.ru/crm_extensions/file_storage
Fedor 269c7ea216 feat: OnlyOffice Standalone integration with S3 direct URLs
 ЧТО СДЕЛАНО:
- Поднят новый standalone OnlyOffice Document Server (порт 8083)
- Настроен Nginx для доступа через office.clientright.ru:9443
- Создан open_file_v3_standalone.php для работы с новым OnlyOffice
- Реализована поддержка прямых S3 URL (bucket публичный)
- Добавлен s3_proxy.php с поддержкой Range requests
- Создан onlyoffice_callback.php для сохранения (базовая версия)
- Файлы успешно открываются и загружаются!

⚠️ TODO (на завтра):
- Доработать onlyoffice_callback.php для сохранения обратно в ОРИГИНАЛЬНЫЙ путь в S3
- Добавить Redis маппинг documentKey → S3 path
- Обновить CRM JS для использования open_file_v3_standalone.php
- Протестировать сохранение файлов
- Удалить тестовые файлы

📊 РЕЗУЛЬТАТ:
- OnlyOffice Standalone РАБОТАЕТ! 
- Файлы открываются напрямую из S3 
- Редактор загружается БЫСТРО 
- Автосохранение настроено  (но нужна доработка callback)
2025-11-01 01:02:03 +03:00
..
2025-10-24 19:59:28 +03:00

🔔 Система мониторинга файлов CRM

Автоматический мониторинг изменений файлов в S3 и Nextcloud с публикацией событий в Redis.

🎯 Компоненты системы

1. Nextcloud Activity Monitor

Файл: nextcloud_activity_monitor.js
Назначение: Мониторинг файлов загруженных через Nextcloud WebUI
Метод: Nextcloud Activity API
Интервал: 30 секунд

Запуск:

cd /var/www/fastuser/data/www/crm.clientright.ru/crm_extensions/file_storage
nohup /usr/bin/nodejs nextcloud_activity_monitor.js > nextcloud_activity.log 2>&1 &

Управление:

ps aux | grep nextcloud_activity_monitor    # Статус
tail -f nextcloud_activity.log               # Логи
pkill -f nextcloud_activity_monitor.js       # Остановить

2. S3 Monitor (Docker)

Контейнер: s3-monitor
Назначение: Мониторинг файлов загруженных напрямую в S3
Bucket: f9825c87-4e3558f6-f9b6-405c-ad3d-d1535c49b61c
Интервал: 30 секунд
Файлов: ~24,500

Управление:

docker ps | grep s3-monitor              # Статус
docker logs s3-monitor -f                # Логи
docker stop s3-monitor                   # Остановить
docker start s3-monitor                  # Запустить
docker restart s3-monitor                # Перезапустить

3. Redis (центральная шина событий)

Адрес: 147.45.146.17:6379
Канал: crm:file:events
Password: CRM_Redis_Pass_2025_Secure!

Подписка:

redis-cli -h 147.45.146.17 -p 6379 -a 'CRM_Redis_Pass_2025_Secure!' \
  SUBSCRIBE crm:file:events

📊 Формат событий

От Nextcloud Activity Monitor:

{
  "type": "file_created",
  "source": "nextcloud_activity",
  "timestamp": "2025-10-30T12:53:40+00:00",
  "file_id": 73460,
  "path": "/experimental_report.xlsx",
  "filename": "experimental_report.xlsx",
  "user": "admin",
  "action": "created"
}

От S3 Monitor:

{
  "type": "file_created",
  "source": "s3_monitor",
  "timestamp": "2025-10-30T20:49:31.593Z",
  "path": "crm2/CRM_Active_Files/Documents/file.xlsx",
  "filename": "file.xlsx",
  "size": 8224,
  "etag": "7004954627252c9d0a7e6417f8325d07",
  "last_modified": "2025-10-30T20:49:14.132Z",
  "action": "created"
}

🔧 Credentials

Nextcloud API:

URL: https://office.clientright.ru:8443
User: admin
App Password: tGHKS-3cC9m-7Hggb-65Awk-zxWQE

S3 (TWC Storage):

Endpoint: https://s3.twcstorage.ru
Region: ru-1
Access Key: 2OMAK5ZNM900TAXM16J7
Secret Key: f4ADllb5VZBAt2HdsyB8WcwVEU7U74MwFCa1DARG
Bucket: f9825c87-4e3558f6-f9b6-405c-ad3d-d1535c49b61c

📚 Дополнительные документы

  • PRODUCTION_READY.md - полное описание production конфигурации
  • ARCHITECTURE.md - схема архитектуры системы
  • S3_MONITORING_GUIDE.md - руководство по S3 мониторингу
  • NEXTCLOUD_API_OVERVIEW.md - обзор Nextcloud API
  • SETUP_CHECKLIST.md - чек-лист настройки

🚀 Для разработчиков

n8n Workflows (готовые для импорта):

  • n8n_s3_event_processor.json - обработчик событий из Redis
  • n8n_nextcloud_activity_monitor.json - альтернатива через n8n
  • n8n_s3_monitor_workflow.json - альтернатива S3 Monitor через n8n

Утилиты:

  • get_s3_credentials.sh - получение S3 credentials

Дата создания: 30 октября 2025
Версия: 1.0
Статус: Production Ready