Files
microdao-daarion/.cursor/skills/noda1-operations/SKILL.md
Apple a46a70c014 fix(ops): Add network aliases and stabilize DNS for NODA1
- docker-compose.node1.yml: Add network aliases (router, gateway,
  memory-service, qdrant, nats, neo4j) to eliminate manual
  `docker network connect --alias` commands
- docker-compose.node1.yml: ROUTER_URL now uses env variable with
  fallback: ${ROUTER_URL:-http://router:8000}
- docker-compose.node1.yml: Increase router healthcheck start_period
  to 30s and retries to 5
- .gitignore: Add noda1-credentials.local.mdc (local-only SSH creds)
- scripts/node1/verify_agents.sh: Improved output with agent list
- docs: Add NODA1-AGENT-VERIFICATION.md, NODA1-AGENT-ARCHITECTURE.md,
  NODA1-VERIFICATION-REPORT-2026-02-03.md
- config/README.md: How to add new agents
- .cursor/rules/, .cursor/skills/: NODA1 operations skill for Cursor

Root cause fixed: Gateway could not resolve 'router' DNS name when
Router container was named 'dagi-staging-router' without alias.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-03 05:55:56 -08:00

73 lines
4.4 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.
---
name: noda1-operations
description: Operates and troubleshoots NODA1 (node1-daarion) production server — health checks, agent verification, container restarts, deployment. Use when the user asks about NODA1, node1-daarion, verifying agents on the server, fixing gateway/router, or deploying to NODA1.
---
# NODA1 Operations
Опікування сервером NODA1: перевірка агентів, health-сервісів, типові виправлення. SSH-credentials зберігаються в **.cursor/noda1-credentials.local.mdc** (файл у .gitignore, не комітити).
## Контекст
- **Сервер:** 144.76.224.179 (node1-daarion), IPv6: 2a01:4f8:201:2a6::2, проект на сервері: `/opt/microdao-daarion/`
- **Credentials:** читати з `.cursor/noda1-credentials.local.mdc` (username, password, host keys) для виконання SSH-команд.
- **Документація для агента НОДА1 (читати при потребі):**
- `PROJECT-MASTER-INDEX.md` — єдина точка входу, порти, сервіси, швидкі команди
- `NODA1-CURRENT-STATUS-2026-01-26.md` — поточний статус НОДА1, health, бекапи, Qdrant
- `docs/NODA1-AGENT-VERIFICATION.md` — перевірка агентів, health, E2E
- `docs/NODA1-AGENT-ARCHITECTURE.md` — повна архітектура агентів (якщо є)
- `config/README.md` — як додавати агентів (якщо є)
- **Cursor Rule:** `.cursor/rules/noda1-operations.mdc` — порти, контейнери, швидкі команди
## 1. Перевірка агентів на NODA1
Credentials: **.cursor/noda1-credentials.local.mdc** (root, password, host keys). Для виконання SSH з терміналу використовувати `sshpass` і пароль з цього файлу.
Виконувати **на сервері** (після SSH):
```bash
ssh root@144.76.224.179
cd /opt/microdao-daarion
./scripts/node1/verify_agents.sh
```
Або однією командою (з sshpass, пароль з noda1-credentials.local.mdc):
```bash
sshpass -p '<password з файлу>' ssh -o StrictHostKeyChecking=accept-new root@144.76.224.179 "cd /opt/microdao-daarion && ./scripts/node1/verify_agents.sh"
```
По IPv6 (лапки обов'язкові в zsh): `ssh root@'[2a01:4f8:201:2a6::2]'`
Скрипт перевіряє: prober metrics, Prometheus, Gateway /health (список агентів), /debug/agent_ping (E2E), webhook Helion.
## 2. Health сервісів (на сервері)
Після SSH виконати на NODA1:
```bash
curl -s http://localhost:9300/health | jq '.status, .agents_count, .agents'
curl -s http://localhost:9102/health
curl -s http://localhost:8000/health
curl -s http://localhost:6333/healthz
docker ps --format 'table {{.Names}}\t{{.Status}}' | grep -E 'gateway|router|memory|qdrant'
```
## 3. Типові виправлення
| Проблема | Дія (на сервері) |
|----------|-------------------|
| Router unhealthy | `docker restart dagi-staging-router` (або поточне ім’я контейнера router) |
| Gateway не відповідає | `docker logs dagi-gateway-node1 --tail 100`; при потребі `docker restart dagi-gateway-node1` |
| Memory 500 | Перевірити env `MEMORY_QDRANT_HOST` та доступність Qdrant |
| Агент без prompt/token | Перевірити `gateway-bot/http_api.py` (AGENT_REGISTRY) і на сервері: `*_prompt.txt`, env з `*_TELEGRAM_BOT_TOKEN` |
## 4. Виправлення помилок
- **У репо (код, конфіги, скрипти):** зміни робити локально в репозиторії, коміт, при потребі — деплой на NODA1.
- **На сервері:** для виконання команд через SSH читати пароль з `.cursor/noda1-credentials.local.mdc` і виконувати: `sshpass -p '<пароль з файлу>' ssh -o StrictHostKeyChecking=accept-new root@144.76.224.179 "команда"`.
## 5. Деплой на NODA1
Згідно з проектом: зазвичай `git pull` у `/opt/microdao-daarion`, потім rebuild/restart відповідних сервісів (docker-compose або окремі `docker restart`). Точний процес дивитися в `PROJECT-MASTER-INDEX.md` та deployment-документації репо.