✅ ЧТО СДЕЛАНО: - Поднят новый 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)
4.2 KiB
4.2 KiB
🔑 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);
// Обработка события
});
⚠️ ВАЖНО
- Безопасность: Redis БЕЗ пароля доступен только из Docker сети!
- Если нужен доступ снаружи: Обязательно установи пароль!
- Мониторинг: Следи за нагрузкой на Redis при подписке на каналы
🔐 Рекомендация: Установить пароль
Если планируешь пробрасывать порт наружу:
docker exec nextcloud-redis redis-cli CONFIG SET requirepass "ваш_пароль"
И добавить в Nextcloud config.php:
'redis' => array (
'atype' => 'redis',
'host' => 'nextcloud-redis',
'port' => 6379,
'password' => 'ваш_пароль',
),