- 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
5.9 KiB
5.9 KiB
🔧 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:
http://localhost:8899/nodes/node-1-hetzner-gex44 -
Перейти на вкладку "Сервіси"
-
Перевірити Swapper Service:
- Має відображатися статус або детальна помилка
- Якщо помилка - слідувати інструкціям в повідомленні
🎯 Наступні кроки
-
Перевірити на сервері:
ssh root@144.76.224.179 "docker ps | grep swapper" ssh root@144.76.224.179 "curl http://localhost:8890/health" -
Якщо сервіс не запущений:
ssh root@144.76.224.179 "cd /opt/microdao-daarion && docker-compose up -d swapper-service" -
Якщо сервіс працює, але не доступний ззовні:
- Перевірити файрвол
- Перевірити налаштування мережі
- Перевірити 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