docs: add Cursor Agent SSH access instructions for NODE1
- Add detailed SSH connection guide for Cursor agents - Include common commands, safety checks, and troubleshooting - Add interactive session example and best practices - Update INFRASTRUCTURE.md with section for Cursor agents - Update infrastructure_quick_ref.ipynb with SSH access configuration - Provide complete workflow examples for remote operations Co-Authored-By: Warp <agent@warp.dev>
This commit is contained in:
@@ -86,6 +86,159 @@ git fetch daarion-city
|
||||
|
||||
---
|
||||
|
||||
## 🤖 Для агентів Cursor: Робота на НОДА1
|
||||
|
||||
### SSH підключення до НОДА1
|
||||
|
||||
**Базова команда:**
|
||||
```bash
|
||||
ssh root@144.76.224.179
|
||||
```
|
||||
|
||||
**Важливо для агентів:**
|
||||
- SSH ключ має бути налаштований на локальній машині користувача
|
||||
- Якщо ключа немає, підключення запитає пароль (який має надати користувач)
|
||||
- Після підключення ви працюєте від імені `root`
|
||||
|
||||
### Робочі директорії на НОДА1
|
||||
|
||||
```bash
|
||||
# Основний проєкт
|
||||
cd /opt/microdao-daarion
|
||||
|
||||
# Docker контейнери
|
||||
docker ps # список запущених контейнерів
|
||||
docker logs <container_name> # логи контейнера
|
||||
docker exec -it <container_name> bash # зайти в контейнер
|
||||
|
||||
# Логи системи
|
||||
cd /var/log
|
||||
tail -f /var/log/syslog # системні логи
|
||||
journalctl -u docker -f # Docker логи в реальному часі
|
||||
|
||||
# Скрипти безпеки
|
||||
ls -la /root/*.sh # firewall та моніторинг скрипти
|
||||
```
|
||||
|
||||
### Типові завдання для агентів
|
||||
|
||||
**1. Перевірити статус сервісів:**
|
||||
```bash
|
||||
ssh root@144.76.224.179 "docker ps --format 'table {{.Names}}\\t{{.Status}}'"
|
||||
```
|
||||
|
||||
**2. Перезапустити сервіс:**
|
||||
```bash
|
||||
ssh root@144.76.224.179 "docker restart <service_name>"
|
||||
```
|
||||
|
||||
**3. Переглянути логи:**
|
||||
```bash
|
||||
ssh root@144.76.224.179 "docker logs --tail 50 <service_name>"
|
||||
```
|
||||
|
||||
**4. Виконати команду в контейнері:**
|
||||
```bash
|
||||
ssh root@144.76.224.179 "docker exec <container_name> <command>"
|
||||
```
|
||||
|
||||
**5. Git operations:**
|
||||
```bash
|
||||
ssh root@144.76.224.179 "cd /opt/microdao-daarion && git pull origin main"
|
||||
ssh root@144.76.224.179 "cd /opt/microdao-daarion && git status"
|
||||
```
|
||||
|
||||
**6. Перезапустити Docker Compose:**
|
||||
```bash
|
||||
ssh root@144.76.224.179 "cd /opt/microdao-daarion && docker compose restart"
|
||||
```
|
||||
|
||||
### Interactive режим (для складних завдань)
|
||||
|
||||
Якщо потрібно виконати кілька команд підряд, використовуйте interactive SSH:
|
||||
|
||||
```bash
|
||||
# Запустіть інтерактивну сесію
|
||||
ssh root@144.76.224.179
|
||||
|
||||
# Тепер ви на сервері, можете виконувати команди:
|
||||
cd /opt/microdao-daarion
|
||||
docker ps
|
||||
docker logs dagi-router --tail 20
|
||||
exit # вийти з SSH
|
||||
```
|
||||
|
||||
### Важливі нотатки для агентів
|
||||
|
||||
1. **Завжди перевіряйте, де ви знаходитесь:**
|
||||
```bash
|
||||
hostname # має показати назву сервера Hetzner
|
||||
pwd # поточна директорія
|
||||
```
|
||||
|
||||
2. **Не виконуйте деструктивні команди без підтвердження:**
|
||||
- `docker rm -f` (видалення контейнерів)
|
||||
- `rm -rf` (видалення файлів)
|
||||
- Будь-які зміни в production без backup
|
||||
|
||||
3. **Перевіряйте статус перед змінами:**
|
||||
```bash
|
||||
docker ps # що зараз працює
|
||||
docker compose ps # статус docker compose сервісів
|
||||
systemctl status docker # статус Docker daemon
|
||||
```
|
||||
|
||||
4. **Логування ваших дій:**
|
||||
- Всі важливі зміни документуйте
|
||||
- Використовуйте `git commit` з детальними повідомленнями
|
||||
- Включайте `Co-Authored-By: Cursor Agent <agent@cursor.sh>`
|
||||
|
||||
### Приклад сесії для Cursor Agent
|
||||
|
||||
```bash
|
||||
# 1. Підключення
|
||||
ssh root@144.76.224.179
|
||||
|
||||
# 2. Перехід до проєкту
|
||||
cd /opt/microdao-daarion
|
||||
|
||||
# 3. Перевірка статусу
|
||||
git status
|
||||
docker ps --format "table {{.Names}}\\t{{.Status}}"
|
||||
|
||||
# 4. Оновлення коду (якщо потрібно)
|
||||
git pull origin main
|
||||
|
||||
# 5. Перезапуск сервісів (якщо потрібно)
|
||||
docker compose restart dagi-router
|
||||
|
||||
# 6. Перевірка логів
|
||||
docker logs dagi-router --tail 20
|
||||
|
||||
# 7. Вихід
|
||||
exit
|
||||
```
|
||||
|
||||
### Troubleshooting
|
||||
|
||||
**Якщо SSH не підключається:**
|
||||
1. Перевірте, чи сервер онлайн: `ping 144.76.224.179`
|
||||
2. Перевірте SSH ключі: `ls -la ~/.ssh/`
|
||||
3. Спробуйте з verbose: `ssh -v root@144.76.224.179`
|
||||
|
||||
**Якщо контейнери не працюють:**
|
||||
1. Перевірте Docker: `systemctl status docker`
|
||||
2. Перевірте логи: `journalctl -u docker --no-pager -n 50`
|
||||
3. Перезапустіть Docker: `systemctl restart docker`
|
||||
|
||||
**Якщо потрібен rescue mode:**
|
||||
1. Зайдіть в Hetzner Robot: https://robot.hetzner.com
|
||||
2. Активуйте rescue system
|
||||
3. Зробіть Reset
|
||||
4. Підключіться через SSH з rescue паролем
|
||||
|
||||
---
|
||||
|
||||
|
||||
## 🚀 Services & Ports (Docker Compose)
|
||||
|
||||
|
||||
@@ -210,7 +210,76 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## 🎨 Vision Encoder Service (NEW)\n",
|
||||
"🤖 Для агентів Cursor: SSH доступ до НОДА1\n",
|
||||
"\n",
|
||||
"### Підключення до Production Server\n",
|
||||
"\n",
|
||||
"**SSH команда:**\n",
|
||||
"```bash\n",
|
||||
"ssh root@144.76.224.179\n",
|
||||
"```\n",
|
||||
"\n",
|
||||
"**Робоча директорія:** `/opt/microdao-daarion`\n",
|
||||
"\n",
|
||||
"**Важливо:**\n",
|
||||
"- SSH ключ має бути налаштований локально\n",
|
||||
"- Працюєте від імені `root`\n",
|
||||
"- Завжди перевіряйте `hostname` і `pwd` перед виконанням команд\n",
|
||||
"- Не виконуйте деструктивні команди без підтвердження\n",
|
||||
"\n",
|
||||
"**Повна інструкція:** див. `INFRASTRUCTURE.md` → Для агентів Cursor"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"# SSH Access for Cursor Agents\n",
|
||||
"NODE1_ACCESS = {\n",
|
||||
" \"host\": \"144.76.224.179\",\n",
|
||||
" \"user\": \"root\",\n",
|
||||
" \"ssh_command\": \"ssh root@144.76.224.179\",\n",
|
||||
" \"project_root\": \"/opt/microdao-daarion\",\n",
|
||||
" \"auth\": \"SSH key (configured locally)\",\n",
|
||||
" \"common_commands\": [\n",
|
||||
" \"docker ps\",\n",
|
||||
" \"docker compose ps\",\n",
|
||||
" \"docker logs <container_name> --tail 50\",\n",
|
||||
" \"git status\",\n",
|
||||
" \"git pull origin main\",\n",
|
||||
" \"systemctl status docker\"\n",
|
||||
" ],\n",
|
||||
" \"safety_checks\": [\n",
|
||||
" \"Always verify hostname before executing commands\",\n",
|
||||
" \"Never use 'rm -rf' without confirmation\",\n",
|
||||
" \"Never use 'docker rm -f' on production containers\",\n",
|
||||
" \"Always check current directory with 'pwd'\",\n",
|
||||
" \"Document all changes in git commits\"\n",
|
||||
" ]\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"print(\"🔐 SSH Access to NODE1:\")\n",
|
||||
"print(\"=\"*60)\n",
|
||||
"print(f\"Host: {NODE1_ACCESS['host']}\")\n",
|
||||
"print(f\"User: {NODE1_ACCESS['user']}\")\n",
|
||||
"print(f\"Command: {NODE1_ACCESS['ssh_command']}\")\n",
|
||||
"print(f\"Project: {NODE1_ACCESS['project_root']}\")\n",
|
||||
"print(f\"Auth: {NODE1_ACCESS['auth']}\")\n",
|
||||
"print(\"\\nCommon Commands:\")\n",
|
||||
"for cmd in NODE1_ACCESS['common_commands']:\n",
|
||||
" print(f\" - {cmd}\")\n",
|
||||
"print(\"\\n⚠️ Safety Checks:\")\n",
|
||||
"for check in NODE1_ACCESS['safety_checks']:\n",
|
||||
" print(f\" • {check}\")\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"⌘ Vision Encoder Service (NEW)\n",
|
||||
"\n",
|
||||
"### Overview\n",
|
||||
"- **Service:** Vision Encoder (OpenCLIP ViT-L/14)\n",
|
||||
|
||||
Reference in New Issue
Block a user