170 lines
4.2 KiB
Markdown
170 lines
4.2 KiB
Markdown
|
|
# 🔑 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' => 'ваш_пароль',
|
|||
|
|
),
|
|||
|
|
```
|
|||
|
|
|