Files
microdao-daarion/SWAPPER-SERVICE-TROUBLESHOOTING.md
Apple 3de3c8cb36 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
2025-11-27 00:19:40 -08:00

212 lines
5.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🔧 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