# 🔧 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