- 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
212 lines
5.9 KiB
Markdown
212 lines
5.9 KiB
Markdown
# 🔧 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
|
||
|