---
name: hermes-server-profile
description: "Full Hermes profile: how it runs on the server, FS layout, host access methods, ports, limitations, migration. Use when understanding Hermes capabilities or planning a move."
tags:
  - hermes
  - infrastructure
  - deployment
  - server
  - migration
---

# Hermes Server Profile

> ⚠️ **Важно**: Этот скилл описывает **серверную инфраструктуру** (Contabo VPS) и **варианты деплоя** Hermes. Актуальное местоположение Hermes может отличаться — проверь свою память (entry `Я живу на MacBook...` или аналогичную) чтобы узнать, где запущен агент прямо сейчас.
> 
> 🖥️ **На сервере работают ДВА Hermes**: systemd сервис (напрямую на хосте) И Docker контейнер — не путать, не дублировать задачи без явной необходимости.

## 🧠 Серверная инфраструктура

## 📂 Файловая система

### Персистентный volume (моя "душа") — `/opt/data` (72GB SSD, ~33GB свободно)

```
/opt/data/
├── config.yaml            # Главный конфиг (провайдеры, ключи)
├── config.yaml.backup     # Бэкап конфига
├── .env                   # Токены платформ
├── state.db               # История сессий и память (~30MB)
├── state.db-shm / .db-wal
├── memories/              # Воспоминания о пользователе
├── skills/                # Все скиллы
├── home/                  # Домашняя директория
│   ├── .ssh/id_ed25519    # SSH ключ (полный доступ к серверу!)
│   ├── .git-credentials   # GitHub PAT
│   ├── sailor-bar/        # Проект Sailor.bar
│   └── custom-news-digest.md
├── cron/                  # Cron задачи
├── sessions/              # Сессии браузера
├── cache/                 # Кэш
├── scripts/               # Пользовательские скрипты
└── workspace/             # Рабочая директория
```

### Read-only программа — `/opt/hermes`

```
/opt/hermes/
├── hermes_cli/            # Код агента
├── .venv/                 # Python виртуальное окружение
├── .playwright/           # Браузеры Playwright
└── web_dist/              # Веб-интерфейс
```

## 🔑 Доступ к хост-системе (ПОЛНЫЙ!)

Сам контейнер ограничен (no root, no sudo, no apt), но есть **3 способа получить полный доступ к хосту**:

### 1. SSH ключ (прямой shell) с MacBook
```bash
ssh -i ~/.ssh/id_ed25519 root@157.173.122.51
```
⚠️ Логиниться как **root**, а не hermes-agent (ключ для root).
Доступны: apt, systemctl, ufw, любые изменения на хосте.

### 2. Portainer API (localhost:9000)
Скилл `manage-host-via-portainer-docker`:
- Привилегированный контейнер с `/:host:rw`
- `chroot /host` для команд от имени хоста
- `PidMode: host` для systemctl

### 3. ZeroTier (f3797ba7a80b18e7)
- MacBook (10.245.107.74), другие сервисы в сети

## 🌐 Сервисы на сервере

| Сервис | Порт | Тип запуска |
|---|---|---|
| **Hermes (systemd)** | — | systemd сервис `hermes.service` |
| **Hermes (Docker)** | — | Docker `--restart unless-stopped` |
| Portainer | :9000 | Docker |
| n8n | :5678 | Docker |
| goclaw | :18790 | Docker |
| pgvector | :5432 | Docker |
| chrome | :9222 | Docker |
| Sailor.bar API | :3001 | systemd |
| nginx | 80/443 | systemd |

## 🚚 Как перенести Hermes

1. Скопировать `/opt/data` на target сервер (rsync/tar/scp)
2. Установить Hermes Agent (Docker или `pip install hermes-cli`)
3. Запустить с тем же volume — всё восстановится:
   - Конфиги, ключи, токены
   - Память и история сессий
   - Скиллы
   - Cron задачи

## ⚙️ Ключевые ENV

```
HERMES_HOME=/opt/data
HERMES_MAX_ITERATIONS=90
HERMES_AGENT_TIMEOUT=1800
HERMES_EXEC_ASK=1
PLAYWRIGHT_BROWSERS_PATH=/opt/hermes/.playwright
```

## 💡 Ключевые возможности

- **Управление хостом** через SSH/Portainer (apt, systemctl, ufw, docker)
- **Управление MacBook** (10.245.107.74) — мышь Python+Quartz, клава AppleScript, скриншоты, vision
- **GitHub** — все операции через gh CLI и git
- **Telegram от лица пользователя** через управление Mac
- **LinkedIn** — через li_at cookie или управление Mac
- **Деплой** Vite+React сайтов, GitHub Pages
- **Мониторинг сервера** (cpu, ram, disk, containers)
- **n8n** — просмотр и редактирование воркфлоу через API
- **Playwright** — веб-автоматизация
- **Vision AI** — анализ скриншотов и изображений
