feat: Add presence heartbeat for Matrix online status
- matrix-gateway: POST /internal/matrix/presence/online endpoint - usePresenceHeartbeat hook with activity tracking - Auto away after 5 min inactivity - Offline on page close/visibility change - Integrated in MatrixChatRoom component
This commit is contained in:
211
SWAPPER-SERVICE-TROUBLESHOOTING.md
Normal file
211
SWAPPER-SERVICE-TROUBLESHOOTING.md
Normal file
@@ -0,0 +1,211 @@
|
||||
# 🔧 Troubleshooting Swapper Service
|
||||
|
||||
**Дата:** 2025-11-23
|
||||
**Проблема:** Swapper Service недоступний на НОДА1
|
||||
|
||||
---
|
||||
|
||||
## 🐛 Проблема
|
||||
|
||||
**Симптоми:**
|
||||
- Swapper Service показує "недоступний" в кабінеті НОДА1
|
||||
- URL: `http://144.76.224.179:8890`
|
||||
- Помилка при спробі отримати статус
|
||||
|
||||
---
|
||||
|
||||
## 🔍 Діагностика
|
||||
|
||||
### 1. Перевірити чи запущений Swapper Service на сервері
|
||||
|
||||
```bash
|
||||
# SSH до НОДА1
|
||||
ssh root@144.76.224.179
|
||||
|
||||
# Перевірити контейнер
|
||||
docker ps | grep swapper
|
||||
|
||||
# Перевірити логи
|
||||
docker logs swapper-service --tail 50
|
||||
|
||||
# Перевірити статус
|
||||
docker inspect swapper-service | grep Status
|
||||
```
|
||||
|
||||
### 2. Перевірити health endpoint
|
||||
|
||||
```bash
|
||||
# На сервері
|
||||
curl http://localhost:8890/health
|
||||
|
||||
# З локальної машини (якщо файрвол дозволяє)
|
||||
curl http://144.76.224.179:8890/health
|
||||
```
|
||||
|
||||
### 3. Перевірити порт та доступність
|
||||
|
||||
```bash
|
||||
# На сервері
|
||||
netstat -tuln | grep 8890
|
||||
ss -tuln | grep 8890
|
||||
|
||||
# Перевірити файрвол
|
||||
ufw status
|
||||
iptables -L -n | grep 8890
|
||||
```
|
||||
|
||||
### 4. Перевірити docker-compose
|
||||
|
||||
```bash
|
||||
# На сервері
|
||||
cd /opt/microdao-daarion
|
||||
docker-compose ps swapper-service
|
||||
docker-compose logs swapper-service
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔧 Рішення
|
||||
|
||||
### Варіант 1: Перевірити чи запущений Swapper Service
|
||||
|
||||
```bash
|
||||
# На сервері
|
||||
ssh root@144.76.224.179
|
||||
|
||||
# Перевірити контейнер
|
||||
docker ps | grep swapper
|
||||
|
||||
# Якщо не запущений - запустити
|
||||
cd /opt/microdao-daarion
|
||||
docker-compose up -d swapper-service
|
||||
|
||||
# Перевірити логи
|
||||
docker-compose logs swapper-service --tail 50
|
||||
```
|
||||
|
||||
### Варіант 2: Перезапустити Swapper Service
|
||||
|
||||
```bash
|
||||
# На сервері
|
||||
cd /opt/microdao-daarion
|
||||
docker-compose restart swapper-service
|
||||
|
||||
# Або повний перезапуск
|
||||
docker-compose down swapper-service
|
||||
docker-compose up -d swapper-service
|
||||
```
|
||||
|
||||
### Варіант 3: Перевірити доступні endpoints
|
||||
|
||||
```bash
|
||||
# На сервері
|
||||
# Базовий health endpoint (має працювати)
|
||||
curl http://localhost:8890/health
|
||||
|
||||
# Базовий status endpoint (має працювати)
|
||||
curl http://localhost:8890/status
|
||||
|
||||
# Cabinet API endpoint (може не працювати, якщо router не підключений)
|
||||
curl http://localhost:8890/api/cabinet/swapper/status
|
||||
```
|
||||
|
||||
**Примітка:** Якщо `/api/cabinet/swapper/status` повертає 404, але `/status` працює - це нормально. Frontend автоматично використає базовий endpoint як fallback.
|
||||
|
||||
### Варіант 2: Перевірити конфігурацію
|
||||
|
||||
```bash
|
||||
# На сервері
|
||||
cd /opt/microdao-daarion
|
||||
cat docker-compose.yml | grep -A 20 swapper-service
|
||||
```
|
||||
|
||||
### Варіант 3: Перевірити файрвол
|
||||
|
||||
```bash
|
||||
# На сервері
|
||||
# Якщо використовується ufw
|
||||
ufw allow 8890/tcp
|
||||
|
||||
# Якщо використовується iptables
|
||||
iptables -A INPUT -p tcp --dport 8890 -j ACCEPT
|
||||
```
|
||||
|
||||
### Варіант 4: Перевірити CORS налаштування
|
||||
|
||||
Якщо Swapper Service працює, але не відповідає з браузера, можлива проблема з CORS:
|
||||
|
||||
```bash
|
||||
# На сервері, перевірити налаштування CORS в Swapper Service
|
||||
docker exec swapper-service cat /app/config.py | grep CORS
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📊 Оновлення коду
|
||||
|
||||
### Покращена обробка помилок
|
||||
|
||||
**Файл:** `src/components/swapper/SwapperComponents.tsx`
|
||||
|
||||
**Зміни:**
|
||||
- ✅ Збільшено таймаут до 10 секунд
|
||||
- ✅ Додано перевірку health endpoint перед основним запитом
|
||||
- ✅ Покращено повідомлення про помилки з детальною інформацією
|
||||
- ✅ Додано інструкції для діагностики
|
||||
|
||||
**Файл:** `src/components/swapper/SwapperDetailedMetrics.tsx`
|
||||
|
||||
**Зміни:**
|
||||
- ✅ Додано перевірку health endpoint
|
||||
- ✅ Покращено обробку помилок
|
||||
- ✅ Додано інструкції для діагностики
|
||||
|
||||
---
|
||||
|
||||
## ✅ Перевірка після виправлення
|
||||
|
||||
1. **Відкрити кабінет НОДА1:**
|
||||
```
|
||||
http://localhost:8899/nodes/node-1-hetzner-gex44
|
||||
```
|
||||
|
||||
2. **Перейти на вкладку "Сервіси"**
|
||||
|
||||
3. **Перевірити Swapper Service:**
|
||||
- Має відображатися статус або детальна помилка
|
||||
- Якщо помилка - слідувати інструкціям в повідомленні
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Наступні кроки
|
||||
|
||||
1. **Перевірити на сервері:**
|
||||
```bash
|
||||
ssh root@144.76.224.179 "docker ps | grep swapper"
|
||||
ssh root@144.76.224.179 "curl http://localhost:8890/health"
|
||||
```
|
||||
|
||||
2. **Якщо сервіс не запущений:**
|
||||
```bash
|
||||
ssh root@144.76.224.179 "cd /opt/microdao-daarion && docker-compose up -d swapper-service"
|
||||
```
|
||||
|
||||
3. **Якщо сервіс працює, але не доступний ззовні:**
|
||||
- Перевірити файрвол
|
||||
- Перевірити налаштування мережі
|
||||
- Перевірити CORS налаштування
|
||||
|
||||
---
|
||||
|
||||
## 📝 Примітки
|
||||
|
||||
- Swapper Service має бути доступний на порту 8890
|
||||
- Health endpoint: `http://144.76.224.179:8890/health`
|
||||
- Status endpoint: `http://144.76.224.179:8890/api/cabinet/swapper/status`
|
||||
- Якщо сервіс працює локально, але не доступний ззовні - проблема в файрволі або мережевих налаштуваннях
|
||||
|
||||
---
|
||||
|
||||
**Оновлено:** 2025-11-23
|
||||
|
||||
Reference in New Issue
Block a user