Files
crm.clientright.ru/crm_extensions/file_storage/NEXTCLOUD_REDIS_CREDS.md
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

4.2 KiB
Raw Blame History

🔑 Nextcloud Redis - Креды и подключение

📋 Основная информация

Контейнер: nextcloud-redis
IP внутри Docker сети: 172.24.0.4
Порт: 6379
Пароль: НЕТ (не установлен)


🔌 Варианты подключения

ВАРИАНТ 1: Из хоста (если проброшен порт)

Если пробросить порт наружу:

# Перезапустить контейнер с проброшенным портом:
docker stop nextcloud-redis
docker start -p 6378:6379 nextcloud-redis

Тогда подключаться так:

Host: localhost (или 147.45.146.17)
Port: 6378
Password: (пусто)

ВАРИАНТ 2: Через Docker network IP

Из другого контейнера в той же сети:

Host: 172.24.0.4
Port: 6379
Password: (пусто)

ВАРИАНТ 3: Из самого хоста (если в той же сети)

Если хост в той же Docker сети:

Host: 172.24.0.4
Port: 6379
Password: (пусто)

📡 Каналы Redis для подписки

Главный канал для файловых изменений:

notify_storage_update

Этот канал публикует события когда:

  • Файл создан/удалён/переименован
  • Папка создана/удалена/переименована

Другие полезные каналы:

notify_activity          # Общая активность
notify_notification      # Уведомления пользователей
notify_pre_auth         # Пред-аутентификация

🧪 Тест подключения

Из командной строки:

# Подключиться к Redis через docker exec:
docker exec -it nextcloud-redis redis-cli

# Или если порт проброшен:
redis-cli -h localhost -p 6378

Тест подписки на канал:

SUBSCRIBE notify_storage_update

📝 Формат сообщений

Сообщения в канале notify_storage_update имеют формат:

{
  "type": "notify_storage_update",
  "path": "/admin/files/Documents/Projects/Проект_390983/файл_395695.docx",
  "user": "admin",
  "action": "write" | "delete" | "rename",
  "oldPath": "...",  // только для rename
  "timestamp": "..."
}

🔧 Для n8n подключения

Настройки в n8n:

Host: 172.24.0.4 (или localhost:6378 если проброшен порт)
Port: 6379 (или 6378 если проброшен)
Password: (оставить пустым)
Database: 0

Триггер:

  • Использовать "Redis Trigger" ноду
  • Channel: notify_storage_update

🚀 Для нашего Node.js listener

Обновить nextcloud_listener.js:

const redis = new Redis({
    host: '172.24.0.4',  // или localhost если проброшен порт
    port: 6379,          // или 6378 если проброшен
    password: ''         // пусто
});

redis.subscribe('notify_storage_update');
redis.on('message', (channel, message) => {
    const event = JSON.parse(message);
    // Обработка события
});

⚠️ ВАЖНО

  1. Безопасность: Redis БЕЗ пароля доступен только из Docker сети!
  2. Если нужен доступ снаружи: Обязательно установи пароль!
  3. Мониторинг: Следи за нагрузкой на Redis при подписке на каналы

🔐 Рекомендация: Установить пароль

Если планируешь пробрасывать порт наружу:

docker exec nextcloud-redis redis-cli CONFIG SET requirepass аш_пароль"

И добавить в Nextcloud config.php:

'redis' => array (
    'atype' => 'redis',
    'host' => 'nextcloud-redis',
    'port' => 6379,
    'password' => аш_пароль',
),