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

229 lines
6.9 KiB
Markdown
Raw Normal View History

# ✅ Чек-лист настройки S3 мониторинга
## 📋 Что нужно сделать
### Шаг 1: Получи S3 Credentials ✅
```bash
cd /var/www/fastuser/data/www/crm.clientright.ru/crm_extensions/file_storage
bash get_s3_credentials.sh
```
**Сохрани куда-нибудь:**
- Access Key ID
- Secret Access Key
- Bucket name
- Endpoint: `https://s3.twcstorage.ru`
- Region: `ru-1`
---
### Шаг 2: Импортируй workflow в n8n ⏳
1. Открой https://n8n.clientright.pro
2. Нажми **"+"** → **Import from File**
3. Выбери файл: `/var/www/.../n8n_s3_monitor_workflow.json`
4. Нажми **Import**
---
### Шаг 3: Настрой S3 Credentials в n8n ⏳
1. В n8n иди в **Settings** (⚙️) → **Credentials**
2. Нажми **Add Credential** → выбери **AWS**
3. Заполни:
- **Name:** `TWC S3`
- **Access Key ID:** (из шага 1)
- **Secret Access Key:** (из шага 1)
- **Region:** `ru-1`
4. **Включи** `Custom Endpoints`
5. **S3 Endpoint:** `https://s3.twcstorage.ru`
6. **Включи** `Force Path Style`
7. Нажми **Test** → должно быть ✅
8. **Save**
---
### Шаг 4: Настрой Redis Credentials в n8n ⏳
1. **Add Credential****Redis**
2. Заполни:
- **Name:** `CRM Redis`
- **Host:** `147.45.146.17`
- **Port:** `6379`
- **Password:** `CRM_Redis_Pass_2025_Secure!`
- **Database:** `0`
3. **Test** → ✅
4. **Save**
---
### Шаг 5: Настрой workflow ⏳
1. Открой импортированный workflow **"S3 File Monitor"**
2. Кликни на ноду **"List S3 Files"**
3. В поле **Credential for AWS** выбери `TWC S3`
4. В поле **Bucket Name:**
- Вариант 1: Впиши имя bucket из шага 1
- Вариант 2: Оставь `{{$env.S3_BUCKET}}` и настрой env variable
5. В поле **Prefix** (опционально):
- Оставь пустым для мониторинга всего bucket
- Или укажи папку, например: `nextcloud/data/admin/files/`
6. Кликни на ноду **"Publish to Redis"**
7. Выбери credential: `CRM Redis`
8. **Save** workflow
---
### Шаг 6: Активируй workflow ⏳
1. Переключи тумблер **Active** в ON (вверху справа)
2. Workflow начнёт работать!
**Первый запуск:**
- Создаст начальное состояние файлов
- **НЕ** сгенерирует события (это нормально!)
**Последующие запуски (каждые 30 сек):**
- Будут сравнивать с предыдущим состоянием
- Генерировать события при изменениях
---
### Шаг 7: Протестируй! 🧪
#### Тест 1: Загрузи файл в S3
Через **S3 Browser** или **aws-cli**:
```bash
echo "test content" > /tmp/test-file.txt
aws s3 cp /tmp/test-file.txt s3://ИМЯ-BUCKET/test-file.txt \
--endpoint-url https://s3.twcstorage.ru
```
#### Тест 2: Подожди 30 секунд
⏱️ Время для следующего polling цикла...
#### Тест 3: Проверь Redis
```bash
redis-cli -h 147.45.146.17 -p 6379 -a 'CRM_Redis_Pass_2025_Secure!' \
--csv SUBSCRIBE crm:file:events
```
Должно прийти:
```
"subscribe","crm:file:events",1
"message","crm:file:events","{\"type\":\"file_created\",\"source\":\"s3_monitor\",...}"
```
#### Тест 4: Проверь n8n executions
1. В n8n → **S3 File Monitor** workflow
2. Нажми **Executions** (внизу)
3. Посмотри последние запуски
4. Должны быть ✅ зелёные
---
### Шаг 8: Настрой обработчик событий (опционально) ⏳
Создай новый workflow в n8n для обработки событий:
1. **Trigger:** Redis (Subscribe)
- Channel: `crm:file:events`
- Credential: `CRM Redis`
2. **Filter** по типу файла:
```javascript
// Обрабатываем только PDF
return $json.filename.endsWith('.pdf');
```
3. **Твоя логика:**
- Download from S3
- Process
- Upload to CRM
- Notify user
---
## 🔧 Troubleshooting
### ❌ Workflow не запускается
- Проверь что он **Active** (зелёная галочка)
- Проверь Executions → есть ли ошибки?
### ❌ S3 Connection failed
- Проверь credentials (Access Key, Secret)
- Проверь что включен `Force Path Style`
- Проверь endpoint: `https://s3.twcstorage.ru`
### ❌ Redis Connection failed
- Проверь firewall: порт 6379 открыт?
- Проверь пароль: `CRM_Redis_Pass_2025_Secure!`
- Попробуй из терминала:
```bash
redis-cli -h 147.45.146.17 -p 6379 -a 'CRM_Redis_Pass_2025_Secure!' PING
```
### ❌ События не приходят
- Убедись что файл добавлен **в правильный bucket**
- Убедись что файл **в нужной папке** (если указан Prefix)
- Подожди 30 секунд для polling цикла
- Проверь Static Data в workflow (сохраняется ли состояние?)
### ⚠️ Слишком много событий
- Уменьши область мониторинга через `Prefix`
- Увеличь интервал до 60-120 секунд
---
## 📊 Финальная проверка
После всех шагов у тебя должно быть:
- ✅ S3 credentials сохранены в n8n
- ✅ Redis credentials сохранены в n8n
- ✅ Workflow "S3 File Monitor" импортирован
- ✅ Workflow активирован (Active = ON)
- ✅ Тестовый файл загружен в S3
- ✅ Событие пришло в Redis канал `crm:file:events`
- ✅ Execution в n8n показывает ✅ success
---
## 🎉 Готово!
Теперь **любые** изменения в твоём S3 bucket будут автоматически:
1. Обнаруживаться (каждые 30 сек)
2. Публиковаться в Redis (`crm:file:events`)
3. Доступны для обработки в n8n, CRM, и других сервисах
---
## 📚 Дополнительные файлы
- `S3_MONITORING_GUIDE.md` - полное руководство
- `ARCHITECTURE.md` - схема архитектуры
- `n8n_s3_monitor_workflow.json` - workflow для импорта
- `get_s3_credentials.sh` - скрипт для получения credentials
---
## 🆘 Нужна помощь?
Если что-то не работает:
1. Проверь логи n8n executions
2. Проверь Redis подключение
3. Проверь S3 credentials
4. Перечитай `S3_MONITORING_GUIDE.md`
**Удачи!** 🚀