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

5.9 KiB
Raw Permalink Blame History

🔧 Troubleshooting Swapper Service

Дата: 2025-11-23
Проблема: Swapper Service недоступний на НОДА1


🐛 Проблема

Симптоми:

  • Swapper Service показує "недоступний" в кабінеті НОДА1
  • URL: http://144.76.224.179:8890
  • Помилка при спробі отримати статус

🔍 Діагностика

1. Перевірити чи запущений Swapper Service на сервері

# 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

# На сервері
curl http://localhost:8890/health

# З локальної машини (якщо файрвол дозволяє)
curl http://144.76.224.179:8890/health

3. Перевірити порт та доступність

# На сервері
netstat -tuln | grep 8890
ss -tuln | grep 8890

# Перевірити файрвол
ufw status
iptables -L -n | grep 8890

4. Перевірити docker-compose

# На сервері
cd /opt/microdao-daarion
docker-compose ps swapper-service
docker-compose logs swapper-service

🔧 Рішення

Варіант 1: Перевірити чи запущений Swapper Service

# На сервері
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

# На сервері
cd /opt/microdao-daarion
docker-compose restart swapper-service

# Або повний перезапуск
docker-compose down swapper-service
docker-compose up -d swapper-service

Варіант 3: Перевірити доступні endpoints

# На сервері
# Базовий 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: Перевірити конфігурацію

# На сервері
cd /opt/microdao-daarion
cat docker-compose.yml | grep -A 20 swapper-service

Варіант 3: Перевірити файрвол

# На сервері
# Якщо використовується ufw
ufw allow 8890/tcp

# Якщо використовується iptables
iptables -A INPUT -p tcp --dport 8890 -j ACCEPT

Варіант 4: Перевірити CORS налаштування

Якщо Swapper Service працює, але не відповідає з браузера, можлива проблема з CORS:

# На сервері, перевірити налаштування 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. Перевірити на сервері:

    ssh root@144.76.224.179 "docker ps | grep swapper"
    ssh root@144.76.224.179 "curl http://localhost:8890/health"
    
  2. Якщо сервіс не запущений:

    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