Files
crm.clientright.ru/crm_extensions/file_storage/NEXTCLOUD_REDIS_CREDS.md

170 lines
4.2 KiB
Markdown
Raw Normal View History

# 🔑 Nextcloud Redis - Креды и подключение
## 📋 Основная информация
**Контейнер:** `nextcloud-redis`
**IP внутри Docker сети:** `172.24.0.4`
**Порт:** `6379`
**Пароль:** `НЕТ` (не установлен)
---
## 🔌 Варианты подключения
### **ВАРИАНТ 1: Из хоста (если проброшен порт)**
**Если пробросить порт наружу:**
```bash
# Перезапустить контейнер с проброшенным портом:
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 # Пред-аутентификация
```
---
## 🧪 Тест подключения
### **Из командной строки:**
```bash
# Подключиться к Redis через docker exec:
docker exec -it nextcloud-redis redis-cli
# Или если порт проброшен:
redis-cli -h localhost -p 6378
```
**Тест подписки на канал:**
```redis
SUBSCRIBE notify_storage_update
```
---
## 📝 Формат сообщений
Сообщения в канале `notify_storage_update` имеют формат:
```json
{
"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`:**
```javascript
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 при подписке на каналы
---
## 🔐 Рекомендация: Установить пароль
Если планируешь пробрасывать порт наружу:
```bash
docker exec nextcloud-redis redis-cli CONFIG SET requirepass "ваш_пароль"
```
И добавить в Nextcloud config.php:
```php
'redis' => array (
'atype' => 'redis',
'host' => 'nextcloud-redis',
'port' => 6379,
'password' => 'ваш_пароль',
),
```