{"repo": "arry8/openclaw-edge", "files": {"nemoclaw-deploy/README.md": {"07f42a62409b3e8758218886d4c27aacdda5c8c9": {"t": 1785746421.5402772, "n": 4182, "h": "6f47f9bf5c3fd546", "c": "# NemoClaw Deploy\n\nСкрипт для развертывания OpenClaw в изолированной Docker-песочнице (NemoClaw / OpenShell) с интеграцией context-hub и DeepSeek Reasoner в качестве LLM-бэкенда.\n\n## Требования\n\n- **Git**\n- **Node.js 20+**\n- **npm**\n- **Docker** (запущенный демон)\n- **DeepSeek API-ключ** — получить на https://platform.deepseek.com/api_keys\n\n## Быстрый старт\n\n```bash\n# 1. Только клонировать репозитории (без запуска sandbox)\n./deploy-openclaw-nemoclaw.sh --clone-only\n\n# 2. Полное развертывание\nDEEPSEEK_API_KEY=\"sk-ваш-ключ\" ./deploy-openclaw-nemoclaw.sh\n```\n\nЕсли `DEEPSEEK_API_KEY` не задан, скрипт запросит ключ интерактивно.\n\n## Что делает скрипт\n\n| Шаг | Описание |\n|-----|----------|\n| 0 | Проверяет наличие git, node, npm, docker, нужных папок |\n| 1 | Клонирует/обновляет 3 репозитория в `~/.nemoclaw-deploy/` |\n| 2 | Устанавливает зависимости и собирает проекты |\n| 3 | Сохраняет DeepSeek API-ключ в `~/.nemoclaw/credentials.json` |\n| 4 | Генерирует политику файловой системы (deny-by-default) |\n| 5 | Генерирует политику сети (только разрешенные эндпоинты) |\n| 6 | Создает Docker-контейнер с bind-mount только разрешенных папок |\n| 7 | Настраивает CLI `openclaw` и `chub` внутри контейнера |\n| 8 | Конфигурирует OpenClaw gateway (DeepSeek, workspace paths) |\n| 9 | Проверяет сетевой доступ к DeepSeek API |\n| 10 | Запускает OpenClaw gateway на порту 18789 |\n| 11 | Выводит сводку |\n\n## Репозитории\n\n| Проект | URL |\n|--------|-----|\n| OpenClaw | https://github.com/openclaw/openclaw |\n| NemoClaw | https://github.com/romannekrasovaillm/NemoClaw |\n| context-hub | https://github.com/romannekrasovaillm/context-hub |\n\n## Структура файлов\n\n```\n~/.nemoclaw-deploy/ # Клонированные репозитории\n openclaw/\n NemoClaw/\n context-hub/\n bin/ # Симлинки на CLI (chub)\n\n~/.nemoclaw/ # Состояние и конфигурация\n credentials.json # DeepSeek API-ключ (chmod 600)\n policies/\n restricted-fs.yaml # Политика файловой системы\n network-egress.yaml # Политика сети\n```\n\n## Безопасность: доступ к файлам\n\nВнутри sandbox доступны **только** эти директории хоста:\n\n| Путь в sandbox | Путь на хосте | Доступ |\n|----------------|---------------|--------|\n| `/workspace/razborы` | `/home/roman/Документы/КОД/gigachat/РАЗБОРЫ` | чтение/запись |\n| `/workspace/biblioteka` | `/home/roman/Документы/БИБЛИОТЕКА` | чтение/запись |\n| `/workspace/recipes_taxonomy` | `.../РАЗБОРЫ/recipes_taxonomy` | чтение/запись |\n| `/workspace/context-hub` | `~/.nemoclaw-deploy/context-hub` | только чтение |\n\nВсе остальные папки хоста **заблокированы**.\n\n## Безопасность: сеть\n\nРазрешен исходящий трафик только к:\n\n- `api.deepseek.com` (inference)\n- `*.openclaw.ai` (OpenClaw services)\n- `github.com`, `raw.githubusercontent.com` (context-hub)\n- `registry.npmjs.org` (npm)\n- DNS (порт 53/udp)\n\n## Переменные окружения\n\n| Переменная | По умолчанию | Описание |\n|------------|-------------|----------|\n| `DEEPSEEK_API_KEY` | _(нет)_ | API-ключ DeepSeek (обязательно) |\n| `NEMOCLAW_SANDBOX_NAME` | `openclaw-dev` | Имя Docker-контейнера |\n| `NEMOCLAW_INSTALL_DIR` | `~/.nemoclaw-deploy` | Каталог установки репозиториев |\n\n## Управление sandbox\n\n```bash\n# Подключиться к sandbox\ndocker exec -it openclaw-dev bash\n\n# Логи gateway\ndocker exec openclaw-dev cat /tmp/openclaw-gateway.log\n\n# Статус gateway\ndocker exec openclaw-dev openclaw gateway status --deep\n\n# Остановить\ndocker stop openclaw-dev\n\n# Удалить\ndocker rm -f openclaw-dev\n\n# Пересоздать с нуля\nDEEPSEEK_API_KEY=\"sk-...\" ./deploy-openclaw-nemoclaw.sh\n```\n\n## context-hub CLI (внутри sandbox)\n\n```bash\nchub search <запрос> # Поиск документации\nchub get --lang py # Получить API-документ\nchub annotate <заметка> # Добавить аннотацию\n```\n\n## Устранение проблем\n\n| Проблема | Решение |\n|----------|---------|\n| Docker не запущен | `sudo systemctl start docker` |\n| Node.js < 20 | Обновить через `nvm install 22` |\n| DeepSeek API недоступен | Проверить ключ и сеть: `curl https://api.deepseek.com` |\n| Sandbox не запускается | Проверить логи: `docker logs openclaw-dev` |\n| Папки хоста не смонтированы | Убедиться что папки существуют до запуска скрипта |\n"}, "6588f2704f757adbac0096d99d4b6c8e1df89ed0": {"t": 1785763974.2041981, "n": 4182, "h": "6f47f9bf5c3fd546", "c": "# NemoClaw Deploy\n\nСкрипт для развертывания OpenClaw в изолированной Docker-песочнице (NemoClaw / OpenShell) с интеграцией context-hub и DeepSeek Reasoner в качестве LLM-бэкенда.\n\n## Требования\n\n- **Git**\n- **Node.js 20+**\n- **npm**\n- **Docker** (запущенный демон)\n- **DeepSeek API-ключ** — получить на https://platform.deepseek.com/api_keys\n\n## Быстрый старт\n\n```bash\n# 1. Только клонировать репозитории (без запуска sandbox)\n./deploy-openclaw-nemoclaw.sh --clone-only\n\n# 2. Полное развертывание\nDEEPSEEK_API_KEY=\"sk-ваш-ключ\" ./deploy-openclaw-nemoclaw.sh\n```\n\nЕсли `DEEPSEEK_API_KEY` не задан, скрипт запросит ключ интерактивно.\n\n## Что делает скрипт\n\n| Шаг | Описание |\n|-----|----------|\n| 0 | Проверяет наличие git, node, npm, docker, нужных папок |\n| 1 | Клонирует/обновляет 3 репозитория в `~/.nemoclaw-deploy/` |\n| 2 | Устанавливает зависимости и собирает проекты |\n| 3 | Сохраняет DeepSeek API-ключ в `~/.nemoclaw/credentials.json` |\n| 4 | Генерирует политику файловой системы (deny-by-default) |\n| 5 | Генерирует политику сети (только разрешенные эндпоинты) |\n| 6 | Создает Docker-контейнер с bind-mount только разрешенных папок |\n| 7 | Настраивает CLI `openclaw` и `chub` внутри контейнера |\n| 8 | Конфигурирует OpenClaw gateway (DeepSeek, workspace paths) |\n| 9 | Проверяет сетевой доступ к DeepSeek API |\n| 10 | Запускает OpenClaw gateway на порту 18789 |\n| 11 | Выводит сводку |\n\n## Репозитории\n\n| Проект | URL |\n|--------|-----|\n| OpenClaw | https://github.com/openclaw/openclaw |\n| NemoClaw | https://github.com/romannekrasovaillm/NemoClaw |\n| context-hub | https://github.com/romannekrasovaillm/context-hub |\n\n## Структура файлов\n\n```\n~/.nemoclaw-deploy/ # Клонированные репозитории\n openclaw/\n NemoClaw/\n context-hub/\n bin/ # Симлинки на CLI (chub)\n\n~/.nemoclaw/ # Состояние и конфигурация\n credentials.json # DeepSeek API-ключ (chmod 600)\n policies/\n restricted-fs.yaml # Политика файловой системы\n network-egress.yaml # Политика сети\n```\n\n## Безопасность: доступ к файлам\n\nВнутри sandbox доступны **только** эти директории хоста:\n\n| Путь в sandbox | Путь на хосте | Доступ |\n|----------------|---------------|--------|\n| `/workspace/razborы` | `/home/roman/Документы/КОД/gigachat/РАЗБОРЫ` | чтение/запись |\n| `/workspace/biblioteka` | `/home/roman/Документы/БИБЛИОТЕКА` | чтение/запись |\n| `/workspace/recipes_taxonomy` | `.../РАЗБОРЫ/recipes_taxonomy` | чтение/запись |\n| `/workspace/context-hub` | `~/.nemoclaw-deploy/context-hub` | только чтение |\n\nВсе остальные папки хоста **заблокированы**.\n\n## Безопасность: сеть\n\nРазрешен исходящий трафик только к:\n\n- `api.deepseek.com` (inference)\n- `*.openclaw.ai` (OpenClaw services)\n- `github.com`, `raw.githubusercontent.com` (context-hub)\n- `registry.npmjs.org` (npm)\n- DNS (порт 53/udp)\n\n## Переменные окружения\n\n| Переменная | По умолчанию | Описание |\n|------------|-------------|----------|\n| `DEEPSEEK_API_KEY` | _(нет)_ | API-ключ DeepSeek (обязательно) |\n| `NEMOCLAW_SANDBOX_NAME` | `openclaw-dev` | Имя Docker-контейнера |\n| `NEMOCLAW_INSTALL_DIR` | `~/.nemoclaw-deploy` | Каталог установки репозиториев |\n\n## Управление sandbox\n\n```bash\n# Подключиться к sandbox\ndocker exec -it openclaw-dev bash\n\n# Логи gateway\ndocker exec openclaw-dev cat /tmp/openclaw-gateway.log\n\n# Статус gateway\ndocker exec openclaw-dev openclaw gateway status --deep\n\n# Остановить\ndocker stop openclaw-dev\n\n# Удалить\ndocker rm -f openclaw-dev\n\n# Пересоздать с нуля\nDEEPSEEK_API_KEY=\"sk-...\" ./deploy-openclaw-nemoclaw.sh\n```\n\n## context-hub CLI (внутри sandbox)\n\n```bash\nchub search <запрос> # Поиск документации\nchub get --lang py # Получить API-документ\nchub annotate <заметка> # Добавить аннотацию\n```\n\n## Устранение проблем\n\n| Проблема | Решение |\n|----------|---------|\n| Docker не запущен | `sudo systemctl start docker` |\n| Node.js < 20 | Обновить через `nvm install 22` |\n| DeepSeek API недоступен | Проверить ключ и сеть: `curl https://api.deepseek.com` |\n| Sandbox не запускается | Проверить логи: `docker logs openclaw-dev` |\n| Папки хоста не смонтированы | Убедиться что папки существуют до запуска скрипта |\n"}}}}